Advertisement
Guest User

Name Function

a guest
Jan 22nd, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.67 KB | None | 0 0
  1. int __fastcall nameFunction(_DWORD *a1, int a2, _DWORD *a3, _WORD *a4)
  2. {
  3.   _DWORD *v4; // r10
  4.   _DWORD *v5; // r6
  5.   __int64 v6; // r0
  6.   int v7; // r9
  7.   signed int v8; // r0
  8.   __int64 v9; // r0
  9.   int v10; // r0
  10.   int v11; // r1
  11.   _BYTE *v12; // r5
  12.   int v13; // r12
  13.   int result; // r0
  14.   unsigned int v15; // r2
  15.   int v16; // r1
  16.   unsigned int v17; // r2
  17.   _DWORD *v18; // r5
  18.   int v19; // r5
  19.   _DWORD *v20; // r4
  20.   _WORD *v21; // [sp+Ch] [bp-34h]
  21.   int v22; // [sp+10h] [bp-30h]
  22.   int v23; // [sp+14h] [bp-2Ch]
  23.   int v24; // [sp+18h] [bp-28h]
  24.   __int16 v25; // [sp+1Ch] [bp-24h]
  25.   __int16 v26; // [sp+1Eh] [bp-22h]
  26.   unsigned __int16 v27; // [sp+22h] [bp-1Eh]
  27.   int v28; // [sp+28h] [bp-18h]
  28.   int v29; // [sp+30h] [bp-10h]
  29.  
  30.   v4 = a1;
  31.   v21 = a4;
  32.   v5 = a3;
  33.   v22 = a2;
  34.   (*(void (**)(void))(*(_DWORD *)*a3 + 12))();
  35.   LODWORD(v6) = (*(int (__cdecl **)(_DWORD, int *))(*(_DWORD *)*v5 + 8))(*v5, &v24);
  36.   v7 = 0;
  37.   if ( v6 != 1 )
  38.     goto LABEL_14;
  39.   v7 = 0;
  40.   v8 = 0;
  41.   if ( v24 != 1145128770 )
  42.     v8 = 1;
  43.   if ( v8 )
  44.     goto LABEL_14;
  45.   if ( (unsigned __int16)(v25 - 1) > 1u )
  46.   {
  47.     v7 = 0;
  48. LABEL_14:
  49.     v23 = v7;
  50.     (*(void (**)(void))(**(_DWORD **)(v22 + 40) + 24))();
  51.     *v4 = 0;
  52.     v4[1] = 0;
  53.     goto LABEL_15;
  54.   }
  55.   v23 = (v27 + 4) & 0x1FFFC;
  56.   v7 = (*(int (**)(void))(**(_DWORD **)(v22 + 16) + 24))();
  57.   if ( !v7 )
  58.     goto LABEL_14;
  59.   (*(void (__cdecl **)(_DWORD))(*(_DWORD *)*v5 + 16))(*v5);
  60.   LODWORD(v9) = (*(int (__cdecl **)(_DWORD, int))(*(_DWORD *)*v5 + 8))(*v5, v7);
  61.   if ( v9 != 1 )
  62.     goto LABEL_14;
  63.   if ( v25 != 1 )
  64.     goto LABEL_16;
  65.   v10 = v27;
  66.   if ( v27 )
  67.   {
  68.     v11 = v28;
  69.     v12 = (_BYTE *)v7;
  70.     do
  71.     {
  72.       v11 = 1664525 * v11 + 1013904223;
  73.       --v10;
  74.       *v12++ ^= v11;
  75.     }
  76.     while ( v10 );
  77.     v13 = v27;
  78.   }
  79.   else
  80.   {
  81.     v13 = 0;
  82.   }
  83.   while ( 1 )
  84.   {
  85.     *(_BYTE *)(v7 + v13) = 0;
  86.     if ( v21 )
  87.       *v21 = v26;
  88.     (*(void (__cdecl **)(_DWORD))(*(_DWORD *)*v5 + 16))(*v5);
  89.     v19 = v27;
  90.     v20 = (_DWORD *)operator new(0x38u);
  91.     v20[1] = 0;
  92.     v20[2] = 0;
  93.     *v20 = &ref_sub_2324C0;
  94.     v20[4] = &off_EB16AC;
  95.     v5 = v20 + 4;
  96.     v20[5] = v7;
  97.     v20[6] = v19 + 1;
  98.     sub_231E80((int)(v20 + 8), v22 + 24);
  99.     *v4 = v20 + 4;
  100.     v4[1] = v20;
  101. LABEL_15:
  102.     result = _stack_chk_guard - v29;
  103.     if ( _stack_chk_guard == v29 )
  104.       break;
  105. LABEL_16:
  106.     v13 = v27;
  107.     v15 = v27 + 3;
  108.     if ( v15 >> 2 )
  109.     {
  110.       v16 = v28;
  111.       v17 = v15 >> 2;
  112.       v18 = (_DWORD *)v7;
  113.       do
  114.       {
  115.         v16 = 0x19660D * v16 + 0x3C6EF35F;
  116.         --v17;
  117.         *v18 ^= v16;
  118.         ++v18;
  119.       }
  120.       while ( v17 );
  121.     }
  122.   }
  123.   return result;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement