Advertisement
MiaMyLove

modelcheck 1.44

Oct 17th, 2018
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.16 KB | None | 0 0
  1. int __fastcall sub_1406ED100(__int64 a1, float a2, float a3, float a4, char a5, char a6, signed int a7, _DWORD *a8, char a9, char a10, char a11)
  2. {
  3.   _DWORD *v11; // r13@1
  4.   float v12; // xmm6_4@1
  5.   char v13; // si@1
  6.   __int64 v14; // rax@1
  7.   char v15; // r12@1
  8.   float v16; // xmm0_4@4
  9.   __int64 v17; // rdi@9
  10.   __int64 v18; // rax@12
  11.   __int64 v19; // rax@13
  12.   __int64 v20; // rax@14
  13.   char v21; // r14@15
  14.   int v22; // er8@18
  15.   signed int v23; // ebx@18
  16.   int v24; // edx@18
  17.   int v25; // ecx@19
  18.   unsigned int v26; // er9@19
  19.   __int64 v27; // rax@28
  20.   __int64 v28; // rax@29
  21.   __int64 v29; // rax@32
  22.   __int64 v30; // rbx@35
  23.   __int64 v31; // rdx@36
  24.   __int64 v32; // r8@36
  25.   __int64 v33; // rcx@36
  26.   __int64 v34; // rax@40
  27.   __int64 *v35; // rcx@40
  28.   int v36; // eax@40
  29.   __int64 v37; // rax@42
  30.   __int64 v38; // rdx@43
  31.   __int64 v39; // r8@43
  32.   __int64 v40; // r9@43
  33.   signed int v42; // [sp+30h] [bp-88h]@1
  34.   float v43; // [sp+40h] [bp-78h]@40
  35.   float v44; // [sp+44h] [bp-74h]@40
  36.   float v45; // [sp+48h] [bp-70h]@40
  37.   __int64 v46; // [sp+50h] [bp-68h]@33
  38.   char v47; // [sp+59h] [bp-5Fh]@33
  39.   char v48; // [sp+5Ah] [bp-5Eh]@35
  40.   char v49; // [sp+5Bh] [bp-5Dh]@35
  41.   char v50; // [sp+5Ch] [bp-5Ch]@35
  42.   signed int v51; // [sp+60h] [bp-58h]@35
  43.  
  44.   v11 = a8;
  45.   *a8 = 0;
  46.   v42 = 0xFFFF;
  47.   v12 = a4;
  48.   LODWORD(a8) = ((unsigned int)a8 | 0xFFFFFFF) & 0xFFFFFFF;
  49.   sub_1410007C4(a1, &v42);
  50.   v13 = a9;
  51.   LOWORD(a8) = v42;
  52.   LODWORD(v14) = ((unsigned int)a8 | 0xFFF0000) & 0xEFFFFFFF;
  53.   LODWORD(a8) = ((unsigned int)a8 | 0xFFF0000) & 0xEFFFFFFF;
  54.   v15 = a9 != 0 ? a10 : 0;
  55.   if ( (unsigned __int16)v42 != 0xFFFF && a2 < 16000.0 && a3 < 16000.0 )
  56.   {
  57.     v16 = a4;
  58.     if ( a4 < 2700.0 )
  59.     {
  60.       if ( !byte_14220A410 || !a9 || (LODWORD(v14) = sub_140420AEC(), v14) || a6 )
  61.       {
  62.         *(_WORD *)&a9 = sub_141000C6C(&a8);
  63.         *(_DWORD *)&a9 = (((unsigned int)a8 ^ (((unsigned int)a8 ^ a9) & 0xFFF0000 ^ a9) & 0xDFFFFFFF) & 0x10000000 ^ (((unsigned int)a8 ^ a9) & 0xFFF0000 ^ a9) & 0xDFFFFFFF) & 0x3FFFFFFF;
  64.         LODWORD(v14) = sub_13FA20854(&a9);
  65.         v17 = v14;
  66.         if ( v14 )
  67.         {
  68.           if ( (*(_DWORD *)(v14 + 80) >> 4) & 1 )
  69.           {
  70.             if ( !v15
  71.               || (LODWORD(v18) = sub_140420AEC(), !v18)
  72.               || (LODWORD(v19) = sub_140420AEC(), !*(_QWORD *)(v19 + 72))
  73.               || (LODWORD(v20) = sub_140420AEC(), LODWORD(v14) = sub_140F744F4(*(_QWORD *)(v20 + 72)), (_BYTE)v14) )
  74.             {
  75.               v21 = a11;
  76.               LODWORD(v14) = *(_DWORD *)(v17 + 80) >> 19;
  77.               if ( !(v14 & 1) || a11 || !byte_14220A410 )
  78.               {
  79.                 v22 = 0;
  80.                 v23 = -1;
  81.                 v24 = (unsigned __int16)dword_141E47EA0 - 1;
  82.                 if ( v24 < 0 )
  83.                 {
  84. LABEL_24:
  85.                   v25 = -1;
  86.                 }
  87.                 else
  88.                 {
  89.                   while ( 1 )
  90.                   {
  91.                     v25 = (v24 + v22) >> 1;
  92.                     LODWORD(v14) = v25;
  93.                     v26 = *(_DWORD *)(qword_141E47E98 + 4i64 * v25);
  94.                     if ( *(_DWORD *)(v17 + 24) == v26 )
  95.                       break;
  96.                     if ( *(_DWORD *)(v17 + 24) >= v26 )
  97.                       v22 = v25 + 1;
  98.                     else
  99.                       v24 = v25 - 1;
  100.                     if ( v22 > v24 )
  101.                       goto LABEL_24;
  102.                   }
  103.                 }
  104.                 if ( v25 == -1 || !byte_14220A410 )
  105.                 {
  106.                   if ( !byte_14220A3FF )
  107.                   {
  108.                     LODWORD(v27) = sub_140420AEC();
  109.                     if ( v27 )
  110.                     {
  111.                       LODWORD(v28) = sub_140420AEC();
  112.                       if ( *(_BYTE *)(v28 + 174) & 4 )
  113.                       {
  114.                         if ( byte_14220A3FD )
  115.                         {
  116.                           v13 = 0;
  117.                         }
  118.                         else
  119.                         {
  120.                           LODWORD(v29) = sub_140420AEC();
  121.                           *(_BYTE *)(v29 + 174) &= 0xFBu;
  122.                         }
  123.                       }
  124.                     }
  125.                   }
  126.                   LOWORD(v42) = sub_141000C6C(&a8);
  127.                   v42 = (((unsigned int)a8 ^ (((unsigned int)a8 ^ v42) & 0xFFF0000 ^ v42) & 0xDFFFFFFF) & 0x10000000 ^ (((unsigned int)a8 ^ v42) & 0xFFF0000 ^ v42) & 0xDFFFFFFF) & 0x3FFFFFFF;
  128.                   sub_13FB15A84(&v46, &v42, 4i64);
  129.                   v47 = 1;
  130.                   if ( a7 >= 0 )
  131.                     v23 = a7;
  132.                   v48 = v13;
  133.                   v49 = v13;
  134.                   v51 = v23;
  135.                   v50 = v21;
  136.                   LODWORD(v14) = sub_14014AB74(&v46);
  137.                   v30 = v14;
  138.                   if ( v14 )
  139.                   {
  140.                     sub_13FB55B48(v14);
  141.                     *(_DWORD *)(v30 + 392) &= 0xFDFFFFFF;
  142.                     v33 = (unsigned int)(v13 == 0) << 25;
  143.                     *(_DWORD *)(v30 + 392) |= v33;
  144.                     if ( a4 <= -200.0 )
  145.                     {
  146.                       v16 = 0.0;
  147.                       sub_14011922C(v33, v31, v32, 4i64);
  148.                       v12 = 0.0;
  149.                     }
  150.                     if ( a5 )
  151.                     {
  152.                       sub_140301734(v30);
  153.                       v12 = v12 + v16;
  154.                     }
  155.                     v34 = *(_QWORD *)v30;
  156.                     v43 = a2;
  157.                     v44 = a3;
  158.                     v45 = v12;
  159.                     LOBYTE(v32) = 1;
  160.                     (*(void (__fastcall **)(__int64, float *, __int64))(v34 + 200))(v30, &v43, v32);
  161.                     (*(void (__fastcall **)(__int64))(*(_QWORD *)v30 + 208i64))(v30);
  162.                     sub_1402E77C4(v30, (unsigned int)dword_1416FD968, 0i64);
  163.                     v35 = (__int64 *)(v30 + 240);
  164.                     v36 = *(_DWORD *)(v30 + 376);
  165.                     if ( !(v36 & 0x10) )
  166.                       *(_DWORD *)(v30 + 376) = v36 & 0xFFFFF7FF | 8;
  167.                     v37 = *v35;
  168.                     *(_OWORD *)&v43 = *(_OWORD *)(v30 + 144);
  169.                     (*(void (__fastcall **)(__int64 *, float *))(v37 + 8))(v35, &v43);
  170.                     (*(void (__fastcall **)(__int64))(*(_QWORD *)v30 + 368i64))(v30);
  171.                     sub_14041AC14(v30);
  172.                     LODWORD(v14) = sub_140420CB0(v30);
  173.                     *v11 = v14;
  174.                     if ( a6 )
  175.                     {
  176.                       LODWORD(v14) = sub_140420B1C();
  177.                       if ( v14 )
  178.                       {
  179.                         *(_DWORD *)(v30 + 176) |= 8u;
  180.                         LOBYTE(v40) = 1;
  181.                         LOBYTE(v39) = v13;
  182.                         LOBYTE(v38) = v15;
  183.                         LODWORD(v14) = sub_140428F64(v30, v38, v39, v40);
  184.                       }
  185.                     }
  186.                     if ( *(_DWORD *)(v17 + 24) == -488621636 )
  187.                       LODWORD(v14) = sub_13FB55B48(v30);
  188.                   }
  189.                 }
  190.               }
  191.             }
  192.           }
  193.         }
  194.       }
  195.     }
  196.   }
  197.   return v14;
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement