Advertisement
Guest User

Untitled

a guest
Oct 9th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | None | 0 0
  1. char __fastcall sub_14002E040(__int64 a1, unsigned int a2, char a3, __int64 a4, char a5)
  2. {
  3.   __int64 v5; // r14@1
  4.   char v6; // si@1
  5.   char v7; // di@1
  6.   __int64 v8; // rbx@1
  7.   __int64 v9; // rcx@3
  8.   int v11; // eax@9
  9.   __int64 v12; // rdx@11
  10.   int v13; // er12@11
  11.   unsigned int v14; // ebp@11
  12.   char v15; // r8@19
  13.   int v16; // ecx@19
  14.   __int64 v17; // rdx@20
  15.  
  16.   v5 = a4;
  17.   v6 = a3;
  18.   v7 = a2;
  19.   v8 = a1;
  20.   *(_DWORD *)(a1 + 8) = 0;
  21.   if ( !*(_BYTE *)(a1 + 12) )
  22.   {
  23.     *(_DWORD *)(a1 + 8) = 1;
  24. LABEL_3:
  25.     v9 = *(_QWORD *)(a1 + 24);
  26. LABEL_4:
  27.     if ( v9 )
  28.     {
  29.       sub_140294FC0(v9);
  30.       *(_QWORD *)(v8 + 24) = 0i64;
  31.       *(_DWORD *)(v8 + 16) = 1;
  32.     }
  33.     *(_DWORD *)(v8 + 16) = 1;
  34.     return 0;
  35.   }
  36.   if ( a2 >= *(_DWORD *)(a1 + 288) )
  37.   {
  38.     *(_DWORD *)(a1 + 8) = 4;
  39.     goto LABEL_3;
  40.   }
  41.   v11 = sub_14002E240();
  42.   if ( (unsigned int)v11 <= 3 )
  43.   {
  44.     v9 = *(_QWORD *)(v8 + 24);
  45.     goto LABEL_4;
  46.   }
  47.   v12 = *(_QWORD *)(v8 + 304);
  48.   v13 = *(_DWORD *)(v8 + 296)
  49.       + *(_BYTE *)((unsigned int)v11 + v12)
  50.       + ((*(_BYTE *)((unsigned int)(v11 + 1) + v12)
  51.         + ((*(_BYTE *)((unsigned int)(v11 + 2) + v12) + (*(_BYTE *)((unsigned int)(v11 + 3) + v12) << 8)) << 8)) << 8);
  52.   v14 = *(_BYTE *)((unsigned int)(v11 + 4) + v12)
  53.       + ((*(_BYTE *)((unsigned int)(v11 + 5) + v12)
  54.         + ((*(_BYTE *)((unsigned int)(v11 + 6) + v12) + (*(_BYTE *)((unsigned int)(v11 + 7) + v12) << 8)) << 8)) << 8);
  55.   if ( *(_DWORD *)(v8 + 16) == 1 )
  56.   {
  57.     *(_DWORD *)(v8 + 8) = 2;
  58.     if ( sub_140295124(v8 + 24, v8 + 32, &unk_140C94B38) || !*(_QWORD *)(v8 + 24) )
  59.       return 0;
  60.     *(_DWORD *)(v8 + 8) = 0;
  61.     *(_DWORD *)(v8 + 16) = 2;
  62.   }
  63.   sub_140295C24(*(_QWORD *)(v8 + 24), (unsigned int)v13, 0i64);
  64.   if ( sub_140295404(v5, v14, 1i64, *(_QWORD *)(v8 + 24)) != 1 )
  65.     return 0;
  66.   if ( !a5 )
  67.   {
  68.     sub_14002E000(v8);
  69.     *(_DWORD *)(v8 + 16) = 1;
  70.   }
  71.   v15 = 7 * (v6 & 0x5F) + 3 * (v7 & 0x7A) + ((v14 >> 3) & 0x5E);
  72.   v16 = v14 - 1;
  73.   if ( v14 != 1 )
  74.   {
  75.     v17 = v5 + (unsigned int)v16;
  76.     do
  77.     {
  78.       --v17;
  79.       *(_BYTE *)(v17 + 1) ^= v15 ^ v16-- & 0xE6;
  80.     }
  81.     while ( v16 );
  82.   }
  83.   *(_BYTE *)((unsigned int)v16 + v5) ^= v15 ^ v16 & 0xE6;
  84.   return 1;
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement