MaxtorCoder

sub_12CE9D0

Jan 9th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.23 KB | None | 0 0
  1. signed int __usercall sub_12CE9D0@<eax>(_DWORD *a1@<edx>, _DWORD *a2@<ecx>, int a3)
  2. {
  3.   _DWORD *v3; // ebx
  4.   int v5; // esi
  5.   int v6; // ecx
  6.   int v7; // eax
  7.   int v8; // eax
  8.   unsigned int v9; // ebx
  9.   int v10; // eax
  10.   _DWORD *v11; // edx
  11.   int v12; // eax
  12.   int v13; // eax
  13.   unsigned int v14; // ebx
  14.   int v15; // ecx
  15.   _DWORD *v16; // [esp+10h] [ebp-10h]
  16.   _DWORD *v17; // [esp+14h] [ebp-Ch]
  17.   int v18; // [esp+18h] [ebp-8h]
  18.  
  19.   v3 = a2;
  20.   v16 = a1;
  21.   v17 = a2;
  22.   if ( !a3 )
  23.     return -2147467259;
  24.   v5 = Packet::ReadBits(a2, &v18, 32);
  25.   *a3 = v18;
  26.   if ( v5 < 0 )
  27.     return v5;
  28.   v5 = Packet::ReadWideString(v3, v16, (a3 + 4));
  29.   if ( v5 < 0 )
  30.     return v5;
  31.   v5 = Packet::ReadWideString(v3, v16, (a3 + 8));
  32.   if ( v5 < 0 )
  33.     return v5;
  34.   v5 = Packet::ReadBitBytes(v3, (a3 + 12), 8);
  35.   if ( v5 < 0 )
  36.     return v5;
  37.   v5 = Packet::ReadBits(v3, &v18, 32);
  38.   *(a3 + 20) = v18;
  39.   if ( v5 < 0 )
  40.     return v5;
  41.   v5 = sub_12A72F0(v3, (a3 + 24), v6);
  42.   if ( v5 < 0 )
  43.     return v5;
  44.   v5 = Packet::ReadBits(v3, &v18, 8);
  45.   *(a3 + 32) = v18;
  46.   if ( v5 < 0 )
  47.     return v5;
  48.   v5 = Packet::ReadBits(v3, &v18, 32);
  49.   v7 = v18;
  50.   *(a3 + 36) = v18;
  51.   if ( v5 < 0 )
  52.     return v5;
  53.   v8 = Packet::AllocateArray(v16, 32 * v7);
  54.   *(a3 + 40) = v8;
  55.   if ( !v8 )
  56.     return -2147467259;
  57.   v9 = 0;
  58.   if ( !*(a3 + 36) )
  59.   {
  60. LABEL_17:
  61.     v5 = Packet::ReadBits(v17, &v18, 32);
  62.     v12 = v18;
  63.     *(a3 + 44) = v18;
  64.     if ( v5 < 0 )
  65.       return v5;
  66.     v13 = Packet::AllocateArray(v16, 16 * v12);
  67.     *(a3 + 48) = v13;
  68.     if ( v13 )
  69.     {
  70.       v14 = 0;
  71.       if ( *(a3 + 44) )
  72.       {
  73.         v15 = 0;
  74.         v18 = 0;
  75.         do
  76.         {
  77.           v5 = sub_12CE890(v16, v17, (v15 + *(a3 + 48)));
  78.           if ( v5 < 0 )
  79.             break;
  80.           ++v14;
  81.           v15 = v18 + 16;
  82.           v18 += 16;
  83.         }
  84.         while ( v14 < *(a3 + 44) );
  85.       }
  86.       return v5;
  87.     }
  88.     return -2147467259;
  89.   }
  90.   v10 = 0;
  91.   v18 = 0;
  92.   while ( 1 )
  93.   {
  94.     v11 = (v10 + *(a3 + 40));
  95.     if ( !v11 )
  96.       return -2147467259;
  97.     v5 = sub_12CE910(v17, v11);
  98.     if ( v5 < 0 )
  99.       return v5;
  100.     ++v9;
  101.     v10 = v18 + 32;
  102.     v18 += 32;
  103.     if ( v9 >= *(a3 + 36) )
  104.       goto LABEL_17;
  105.   }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment