Advertisement
lelejau

Untitled

Dec 29th, 2015
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.99 KB | None | 0 0
  1. char __thiscall sub_1030E680(int this, int a2, int a3)
  2. {
  3.   int v3; // ebp@1
  4.   char result; // al@1
  5.   unsigned __int16 v5; // dx@2
  6.   int v6; // ebx@2
  7.   unsigned __int16 v7; // cx@2
  8.   int v8; // ecx@2
  9.   signed int v9; // esi@2
  10.   int v10; // eax@2
  11.   int v11; // edi@3
  12.   int v12; // edx@4
  13.   int v13; // esi@4
  14.   bool v14; // zf@4
  15.   int v15; // esi@6
  16.   signed int v16; // ebx@6
  17.   int v17; // eax@6
  18.   int v18; // esi@6
  19.   signed int v19; // edx@6
  20.   signed int v20; // edx@6
  21.   signed int v21; // edx@6
  22.   int v22; // [sp+4h] [bp-14h]@2
  23.   int v23; // [sp+8h] [bp-10h]@2
  24.   unsigned int v24; // [sp+Ch] [bp-Ch]@2
  25.   unsigned int v25; // [sp+10h] [bp-8h]@2
  26.   int v26; // [sp+1Ch] [bp+4h]@3
  27.  
  28.   v3 = this;
  29.   result = *(_BYTE *)(this + 4);
  30.   if ( result )
  31.   {
  32.     LOBYTE(v5) = 0;
  33.     HIBYTE(v5) = *(_BYTE *)(a2 + 2);
  34.     v6 = *(_DWORD *)(this + 8) ^ (*(_BYTE *)(a2 + 3) | v5 | (*(_BYTE *)(a2 + 1) << 16) | (*(_BYTE *)a2 << 24));
  35.     LOBYTE(v7) = 0;
  36.     HIBYTE(v7) = *(_BYTE *)(a2 + 6);
  37.     LOBYTE(v5) = 0;
  38.     HIBYTE(v5) = *(_BYTE *)(a2 + 10);
  39.     v22 = *(_DWORD *)(v3 + 12) ^ (*(_BYTE *)(a2 + 7) | v7 | (*(_BYTE *)(a2 + 5) << 16) | (*(_BYTE *)(a2 + 4) << 24));
  40.     v24 = v6;
  41.     v8 = *(_DWORD *)(v3 + 16) ^ (*(_BYTE *)(a2 + 11) | v5 | (*(_BYTE *)(a2 + 9) << 16) | (*(_BYTE *)(a2 + 8) << 24));
  42.     HIBYTE(v5) = *(_BYTE *)(a2 + 14);
  43.     v25 = v8;
  44.     LOBYTE(v5) = *(_BYTE *)(a2 + 15);
  45.     v9 = *(_DWORD *)(v3 + 976);
  46.     v10 = *(_DWORD *)(v3 + 20) ^ ((*(_BYTE *)(a2 + 13) << 16) | (*(_BYTE *)(a2 + 12) << 24) | v5);
  47.     v23 = *(_DWORD *)(v3 + 20) ^ ((*(_BYTE *)(a2 + 13) << 16) | (*(_BYTE *)(a2 + 12) << 24) | v5);
  48.     if ( v9 > 1 )
  49.     {
  50.       v11 = v3 + 48;
  51.       v26 = v9 - 1;
  52.       do
  53.       {
  54.         v10 = *(_DWORD *)(v11 - 4) ^ dword_103B8210[(unsigned __int8)v6] ^ dword_103B7610[BYTE3(v22)] ^ dword_103B7A10[(unsigned __int8)(v25 >> 16)] ^ dword_103B7E10[BYTE1(v10)];
  55.         v12 = dword_103B8210[(unsigned __int8)v22] ^ dword_103B7E10[BYTE1(v6)] ^ dword_103B7610[BYTE3(v25)] ^ dword_103B7A10[(unsigned __int8)((unsigned int)v23 >> 16)];
  56.         v13 = *(_DWORD *)(v11 + 4) ^ dword_103B8210[(unsigned __int8)v8] ^ dword_103B7A10[BYTE2(v24)] ^ dword_103B7E10[BYTE1(v22)] ^ dword_103B7610[BYTE3(v23)];
  57.         v6 = dword_103B8210[(unsigned __int8)v23] ^ dword_103B7610[BYTE3(v24)] ^ dword_103B7A10[BYTE2(v22)] ^ dword_103B7E10[BYTE1(v8)] ^ *(_DWORD *)(v11 - 8);
  58.         v8 = *(_DWORD *)v11 ^ v12;
  59.         v22 = v10;
  60.         v11 += 32;
  61.         BYTE1(v10) = BYTE1(v13);
  62.         v14 = v26 == 1;
  63.         v24 = v6;
  64.         v25 = v8;
  65.         v23 = v13;
  66.         --v26;
  67.       }
  68.       while ( !v14 );
  69.       v9 = *(_DWORD *)(v3 + 976);
  70.     }
  71.     v15 = 32 * v9;
  72.     v16 = *(_DWORD *)(v15 + v3 + 8);
  73.     v17 = *(_DWORD *)(v15 + v3 + 8);
  74.     v18 = v15 + v3 + 8;
  75.     result = a3;
  76.     *(_BYTE *)a3 = byte_103B7510[v24 >> 24] ^ BYTE3(v17);
  77.     *(_BYTE *)(a3 + 1) = byte_103B7510[(unsigned __int8)((unsigned int)v22 >> 16)] ^ (v16 >> 16);
  78.     *(_BYTE *)(a3 + 2) = byte_103B7510[BYTE1(v8)] ^ BYTE1(v16);
  79.     *(_BYTE *)(a3 + 3) = v16 ^ byte_103B7510[(unsigned __int8)v23];
  80.     v19 = *(_DWORD *)(v18 + 4);
  81.     *(_BYTE *)(a3 + 4) = byte_103B7510[BYTE3(v22)] ^ (*(_DWORD *)(v18 + 4) >> 24);
  82.     *(_BYTE *)(a3 + 5) = byte_103B7510[BYTE2(v25)] ^ (v19 >> 16);
  83.     *(_BYTE *)(a3 + 6) = byte_103B7510[BYTE1(v23)] ^ BYTE1(v19);
  84.     *(_BYTE *)(a3 + 7) = v19 ^ byte_103B7510[(unsigned __int8)v24];
  85.     v20 = *(_DWORD *)(v18 + 8);
  86.     *(_BYTE *)(a3 + 8) = byte_103B7510[BYTE3(v25)] ^ (*(_DWORD *)(v18 + 8) >> 24);
  87.     *(_BYTE *)(a3 + 9) = byte_103B7510[BYTE2(v23)] ^ (v20 >> 16);
  88.     *(_BYTE *)(a3 + 10) = byte_103B7510[BYTE1(v24)] ^ BYTE1(v20);
  89.     *(_BYTE *)(a3 + 11) = v20 ^ byte_103B7510[(unsigned __int8)v22];
  90.     v21 = *(_DWORD *)(v18 + 12);
  91.     *(_BYTE *)(a3 + 12) = byte_103B7510[BYTE3(v23)] ^ BYTE3(v21);
  92.     *(_BYTE *)(a3 + 13) = byte_103B7510[BYTE2(v24)] ^ (v21 >> 16);
  93.     *(_BYTE *)(a3 + 14) = byte_103B7510[BYTE1(v22)] ^ BYTE1(v21);
  94.     *(_BYTE *)(a3 + 15) = v21 ^ byte_103B7510[(unsigned __int8)v8];
  95.   }
  96.   return result;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement