Advertisement
BarelyAmelia86

ATCL Decompiled Code

Aug 20th, 2015
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.30 KB | None | 0 0
  1. Start of CompileFile() method:
  2.     ((void (__thiscall *)(char *))CCUString::CCUString)(&v5);
  3.     LOBYTE(v6) = 1;
  4.     if ( !sub_30908B05((int)&v4, (int)&v5, (int)sub_30918036) )
  5.       CCUString::Empty(&v5);
  6.     v1 = CCSGdString::Allocate(&v5);
  7.     CCSCommandContext::SetReturnValueNoRef(a1, v1);
  8.     LOBYTE(v6) = 0;
  9.     CCUString::~CCUString(&v5);
  10. End
  11.  
  12. int __cdecl sub_30908B05(int a1, int a2, int a3)
  13. {
  14.   LPLONG v3; // esi@1
  15.   int v4; // edi@2
  16.   int result; // eax@2
  17.  
  18.   v3 = sub_3090E5D2(a1, 1, a3, 1, 0, 0);
  19.   if ( v3 )
  20.   {
  21.     v4 = (unsigned __int8)sub_30911940(); // This line throws a C++ Error.
  22.     sub_3091086D(v3);
  23.     result = v4;
  24.   }
  25.   else
  26.   {
  27.     result = 0;
  28.   }
  29.   return result;
  30. }
  31.  
  32. LPLONG __cdecl sub_3090E5D2(int a1, int a2, int a3, int a4, int a5, LPLONG lpAddend)
  33. {
  34.   struct _RTL_CRITICAL_SECTION *v6; // edi@1
  35.   LPLONG v7; // ebx@1
  36.   int v8; // eax@1
  37.   int *v9; // esi@1
  38.   int v11; // ecx@5
  39.   int *v12; // eax@9
  40.   int *v13; // eax@10
  41.   int v14; // eax@10
  42.   int v15; // esi@10
  43.   int v16; // ecx@10
  44.   int v17; // eax@10
  45.   int *v18; // eax@13
  46.   int v19; // esi@14
  47.   int *v20; // eax@15
  48.   int *v21; // eax@17
  49.   void *v22; // esi@18
  50.   int *v23; // eax@19
  51.   int v24; // eax@19
  52.   int v25; // eax@26
  53.   int v26; // [sp+14h] [bp-14h]@9
  54.   LPLONG v27; // [sp+18h] [bp-10h]@11
  55.   int v28; // [sp+38h] [bp+10h]@10
  56.  
  57.   v6 = sub_3090B3DA();
  58.   v7 = 0;
  59.   EnterCriticalSection(v6);
  60.   ++v6[1].DebugInfo;
  61.   dword_309508A8 = a5;
  62.   dword_3095068C = 0;
  63.   dword_30950678 = (int (__cdecl *)(_DWORD, _DWORD, _DWORD))a3;
  64.   dword_309508AC = 0;
  65.   dword_309508A0 = 0;
  66.   v8 = (int)sub_3090C109();
  67.   sub_3090B739(v8, (int)&a5, *(_DWORD *)v8, *(_DWORD *)(v8 + 4));
  68.   v9 = &dword_309508D0;
  69.   sub_30920CB2((int)&dword_309508D0, lpAddend != 0);
  70.   dword_309508B4 = (int (__cdecl *)(_DWORD, _DWORD))lpAddend;
  71.   if ( sub_3092237B(&dword_309508D0, a1, a2) )
  72.   {
  73.     sub_3090BD5B((char *)CUPchNil, 0, 1, 0, 0);
  74.     sub_3090C13B(0);
  75.     if ( a4 )
  76.     {
  77.       CCUString::CCUString(&lpAddend, "Parameters");
  78.       sub_3090B10C((int)&lpAddend, (void *)0x11);
  79.       CCUString::~CCUString(&lpAddend);
  80.     }
  81.     if ( sub_3090C202() || dword_3095068C )
  82.     {
  83.       ++dword_3095068C;
  84.       sub_30922A2D(dword_309508A4, 0);
  85.     }
  86.     while ( sub_3090BA4B(v11) )
  87.       ;
  88.     v26 = sub_3090BF6B();
  89.     lpAddend = 0;
  90.     v12 = sub_3090C109();
  91.     if ( *v12 != v12[1] )
  92.     {
  93.       v28 = 0;
  94.       v13 = sub_3090C109();
  95.       v14 = (v13[1] - *v13) / 36;
  96.       v15 = v14;
  97.       v16 = 36 * v14 | -(36 * (unsigned __int64)(unsigned int)v14 >> 32 != 0);
  98.       v17 = unknown_libname_43((v16 + 4) | -__CFADD__(v16, 4));
  99.       a5 = v17;
  100.       if ( v17 )
  101.       {
  102.         *(_DWORD *)v17 = v15;
  103.         lpAddend = (LPLONG)(v17 + 4);
  104.         `eh vector constructor iterator'((void *)(v17 + 4), 0x24u, v15, (int)sub_3090AF28, sub_3090B003);
  105.        v27 = lpAddend;
  106.      }
  107.      else
  108.      {
  109.        v27 = 0;
  110.      }
  111.      a5 = 0;
  112.      v18 = sub_3090C109();
  113.      if ( (v18[1] - *v18) / 36 )
  114.      {
  115.        v19 = (int)v27;
  116.        lpAddend = 0;
  117.        do
  118.        {
  119.          v20 = sub_3090C109();
  120.          sub_3090B00C(v19, (int)((char *)lpAddend + *v20));
  121.          if ( *(_DWORD *)(v19 + 32) == 2 )
  122.            ++v28;
  123.          ++a5;
  124.          lpAddend += 9;
  125.          v19 += 36;
  126.          v21 = sub_3090C109();
  127.        }
  128.        while ( a5 < (unsigned int)((v21[1] - *v21) / 36) );
  129.      }
  130.      v22 = operator new(0x18u);
  131.      if ( v22 )
  132.      {
  133.        v23 = sub_3090C109();
  134.        v24 = (v23[1] - *v23) / 36;
  135.        *(_DWORD *)v22 = 0;
  136.        *((_DWORD *)v22 + 3) = 0;
  137.        *((_BYTE *)v22 + 16) = 0;
  138.        *((_DWORD *)v22 + 1) = v24;
  139.        *((_DWORD *)v22 + 2) = v28;
  140.        *((_DWORD *)v22 + 5) = v27;
  141.      }
  142.      else
  143.      {
  144.        v22 = 0;
  145.      }
  146.      lpAddend = (LPLONG)v22;
  147.      v9 = &dword_309508D0;
  148.    }
  149.    lpAddend = (LPLONG)sub_309230F4((void *)v26, lpAddend);
  150.    if ( v26 )
  151.    {
  152.      sub_30922C55(v26);
  153.      operator delete((void *)v26);
  154.    }
  155.    if ( dword_3095068C )
  156.    {
  157.      sub_3091086D(lpAddend);
  158.      lpAddend = 0;
  159.    }
  160.    sub_309228B3(v9);
  161.    v25 = (int)sub_3090C109();
  162.    sub_3090B739(v25, (int)&a5, *(_DWORD *)v25, *(_DWORD *)(v25 + 4));
  163.    v7 = lpAddend;
  164.  }
  165.  --v6[1].DebugInfo;
  166.  LeaveCriticalSection(v6);
  167.  return v7;
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement