Advertisement
expired6978

F1

Feb 12th, 2013
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.90 KB | None | 0 0
  1. int __thiscall sub_567430(int this, int a2)
  2. {
  3.   unsigned int v2; // ecx@1
  4.   int v3; // ebx@1
  5.   int v4; // ebp@1
  6.   int v5; // edi@1
  7.   int v6; // esi@1
  8.   int v7; // eax@3
  9.   int v8; // eax@3
  10.   char v9; // zf@3
  11.   int v10; // eax@4
  12.   int v11; // eax@7
  13.   int v12; // eax@9
  14.   int v13; // edx@9
  15.   char v14; // zf@9
  16.   signed int v15; // eax@10
  17.   signed int v16; // edx@10
  18.   unsigned int v17; // ecx@10
  19.   int v18; // edi@10
  20.   int v19; // eax@16
  21.   int v20; // edi@16
  22.   int v21; // eax@17
  23.   int v22; // eax@21
  24.   int v23; // eax@22
  25.   int v24; // ecx@22
  26.   unsigned __int8 v25; // al@25
  27.   void *v26; // ecx@25
  28.   unsigned int v27; // ecx@27
  29.   int v29; // [sp+10h] [bp-30h]@7
  30.   int v30; // [sp+14h] [bp-2Ch]@25
  31.   int *v31; // [sp+18h] [bp-28h]@7
  32.   int *v32; // [sp+1Ch] [bp-24h]@7
  33.   int v33; // [sp+20h] [bp-20h]@7
  34.   int v34; // [sp+24h] [bp-1Ch]@7
  35.   unsigned int v35; // [sp+28h] [bp-18h]@7
  36.   int v36; // [sp+2Ch] [bp-14h]@7
  37.   int v37; // [sp+30h] [bp-10h]@25
  38.   int v38; // [sp+34h] [bp-Ch]@25
  39.   int v39; // [sp+38h] [bp-8h]@25
  40.   unsigned int v40; // [sp+3Ch] [bp-4h]@25
  41.  
  42.   v3 = a2;
  43.   v6 = this;
  44.   v5 = *(_BYTE *)(this + 0x150);
  45.   v4 = 0;
  46.   v2 = 0;
  47.   do
  48.   {
  49.     if ( v2 >= v5 )
  50.       break;
  51.     v8 = *(_DWORD *)(v6 + 0x14C);
  52.     v9 = *(_DWORD *)(v8 + 4 * v2) == 0;
  53.     v7 = v8 + 4 * v2;
  54.     if ( !v9 )
  55.     {
  56.       v10 = *(_DWORD *)v7;
  57.       if ( *(_DWORD *)(a2 + 60) == *(_DWORD *)(v10 + 60) )
  58.         v4 = v10;
  59.     }
  60.     ++v2;
  61.   }
  62.   while ( !v4 );
  63.   v33 = 0;
  64.   v34 = 0;
  65.   v35 = 0;
  66.   unknown_libname_10(&v36);
  67.   v31 = (int *)&BSTArrayAllocatorFunctor_BSScrapArrayAllocator____vftable_;
  68.   v32 = &v33;
  69.   sub_A491D0((int)&v31, v5, 4);
  70.   v11 = 0;
  71.   v29 = 0;
  72.   if ( *(_BYTE *)(v6 + 336) )
  73.   {
  74.     while ( 1 )
  75.     {
  76.       if ( !v4 )
  77.         goto LABEL_16;
  78.       v13 = *(_DWORD *)(v6 + 332);
  79.       v14 = v4 == *(_DWORD *)(v13 + 4 * v11);
  80.       v12 = v13 + 4 * v11;
  81.       if ( !v14 )
  82.       {
  83.         v18 = *(_DWORD *)v12;
  84.         v17 = *(_DWORD *)(v4 + 72);
  85.         v16 = -1;
  86.         v15 = 0;
  87.         if ( v17 )
  88.         {
  89.           while ( v16 == -1 )
  90.           {
  91.             if ( *(_DWORD *)(*(_DWORD *)(v4 + 64) + 4 * v15) == v18 )
  92.               v16 = v15;
  93.             ++v15;
  94.             if ( v15 >= v17 )
  95.             {
  96.               if ( v16 != -1 )
  97.                 goto LABEL_19;
  98.               goto LABEL_16;
  99.             }
  100.           }
  101.           goto LABEL_19;
  102.         }
  103. LABEL_16:
  104.         v20 = *(_DWORD *)(v6 + 332) + 4 * v29;
  105.         v31 = (int *)&BSTArrayAllocatorFunctor_BSScrapArrayAllocator____vftable_;
  106.         v32 = &v33;
  107.         v19 = sub_A491F0(&v36, (int)&v31, v35, 4);
  108.         v31 = (int *)BSTArrayBase__IAllocatorFunctor___vftable_;
  109.         if ( v19 != -1 )
  110.         {
  111.           v21 = v34 + 4 * v19;
  112.           if ( v21 )
  113.             *(_DWORD *)v21 = *(_DWORD *)v20;
  114.         }
  115.       }
  116. LABEL_19:
  117.       v11 = v29 + 1;
  118.       v29 = v11;
  119.       if ( v11 >= (unsigned int)*(_BYTE *)(v6 + 336) )
  120.       {
  121.         v3 = a2;
  122.         break;
  123.       }
  124.     }
  125.   }
  126.   v31 = (int *)&BSTArrayAllocatorFunctor_BSScrapArrayAllocator____vftable_;
  127.   v32 = &v33;
  128.   v22 = sub_A491F0(&v36, (int)&v31, v35, 4);
  129.   if ( v22 == -1 )
  130.   {
  131.     v24 = 0;
  132.   }
  133.   else
  134.   {
  135.     v23 = v34 + 4 * v22;
  136.     v24 = 0;
  137.     if ( v23 )
  138.       *(_DWORD *)v23 = v3;
  139.   }
  140.   v30 = v24;
  141.   v37 = v24;
  142.   v38 = v24;
  143.   v39 = v24;
  144.   unknown_libname_10(&v40);
  145.   v31 = &v37;
  146.   v32 = &v30;
  147.   sub_5666C0(&v31);
  148.   v26 = *(void **)(v6 + 332);
  149.   v25 = *(_BYTE *)(v6 + 336);
  150.   if ( v26 )
  151.   {
  152.     Heap__Free(v26, 0);
  153.     *(_DWORD *)(v6 + 332) = 0;
  154.     v25 = 0;
  155.   }
  156.   v27 = v40;
  157.   *(_BYTE *)(v6 + 336) = v25;
  158.   if ( v27 )
  159.   {
  160.     a2 = v25;
  161.     sub_55FA20(v38, v27, (void **)(v6 + 332), (int)&a2);
  162.     *(_BYTE *)(v6 + 336) = a2;
  163.   }
  164.   if ( v38 )
  165.   {
  166.     sub_A49160((int)&v37);
  167.     v40 = 0;
  168.   }
  169.   nullsub_8(&v40);
  170.   if ( v34 )
  171.   {
  172.     sub_A49160((int)&v33);
  173.     v36 = 0;
  174.   }
  175.   return nullsub_8(&v36);
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement