Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Start of CompileFile() method:
- ((void (__thiscall *)(char *))CCUString::CCUString)(&v5);
- LOBYTE(v6) = 1;
- if ( !sub_30908B05((int)&v4, (int)&v5, (int)sub_30918036) )
- CCUString::Empty(&v5);
- v1 = CCSGdString::Allocate(&v5);
- CCSCommandContext::SetReturnValueNoRef(a1, v1);
- LOBYTE(v6) = 0;
- CCUString::~CCUString(&v5);
- End
- int __cdecl sub_30908B05(int a1, int a2, int a3)
- {
- LPLONG v3; // esi@1
- int v4; // edi@2
- int result; // eax@2
- v3 = sub_3090E5D2(a1, 1, a3, 1, 0, 0);
- if ( v3 )
- {
- v4 = (unsigned __int8)sub_30911940(); // This line throws a C++ Error.
- sub_3091086D(v3);
- result = v4;
- }
- else
- {
- result = 0;
- }
- return result;
- }
- LPLONG __cdecl sub_3090E5D2(int a1, int a2, int a3, int a4, int a5, LPLONG lpAddend)
- {
- struct _RTL_CRITICAL_SECTION *v6; // edi@1
- LPLONG v7; // ebx@1
- int v8; // eax@1
- int *v9; // esi@1
- int v11; // ecx@5
- int *v12; // eax@9
- int *v13; // eax@10
- int v14; // eax@10
- int v15; // esi@10
- int v16; // ecx@10
- int v17; // eax@10
- int *v18; // eax@13
- int v19; // esi@14
- int *v20; // eax@15
- int *v21; // eax@17
- void *v22; // esi@18
- int *v23; // eax@19
- int v24; // eax@19
- int v25; // eax@26
- int v26; // [sp+14h] [bp-14h]@9
- LPLONG v27; // [sp+18h] [bp-10h]@11
- int v28; // [sp+38h] [bp+10h]@10
- v6 = sub_3090B3DA();
- v7 = 0;
- EnterCriticalSection(v6);
- ++v6[1].DebugInfo;
- dword_309508A8 = a5;
- dword_3095068C = 0;
- dword_30950678 = (int (__cdecl *)(_DWORD, _DWORD, _DWORD))a3;
- dword_309508AC = 0;
- dword_309508A0 = 0;
- v8 = (int)sub_3090C109();
- sub_3090B739(v8, (int)&a5, *(_DWORD *)v8, *(_DWORD *)(v8 + 4));
- v9 = &dword_309508D0;
- sub_30920CB2((int)&dword_309508D0, lpAddend != 0);
- dword_309508B4 = (int (__cdecl *)(_DWORD, _DWORD))lpAddend;
- if ( sub_3092237B(&dword_309508D0, a1, a2) )
- {
- sub_3090BD5B((char *)CUPchNil, 0, 1, 0, 0);
- sub_3090C13B(0);
- if ( a4 )
- {
- CCUString::CCUString(&lpAddend, "Parameters");
- sub_3090B10C((int)&lpAddend, (void *)0x11);
- CCUString::~CCUString(&lpAddend);
- }
- if ( sub_3090C202() || dword_3095068C )
- {
- ++dword_3095068C;
- sub_30922A2D(dword_309508A4, 0);
- }
- while ( sub_3090BA4B(v11) )
- ;
- v26 = sub_3090BF6B();
- lpAddend = 0;
- v12 = sub_3090C109();
- if ( *v12 != v12[1] )
- {
- v28 = 0;
- v13 = sub_3090C109();
- v14 = (v13[1] - *v13) / 36;
- v15 = v14;
- v16 = 36 * v14 | -(36 * (unsigned __int64)(unsigned int)v14 >> 32 != 0);
- v17 = unknown_libname_43((v16 + 4) | -__CFADD__(v16, 4));
- a5 = v17;
- if ( v17 )
- {
- *(_DWORD *)v17 = v15;
- lpAddend = (LPLONG)(v17 + 4);
- `eh vector constructor iterator'((void *)(v17 + 4), 0x24u, v15, (int)sub_3090AF28, sub_3090B003);
- v27 = lpAddend;
- }
- else
- {
- v27 = 0;
- }
- a5 = 0;
- v18 = sub_3090C109();
- if ( (v18[1] - *v18) / 36 )
- {
- v19 = (int)v27;
- lpAddend = 0;
- do
- {
- v20 = sub_3090C109();
- sub_3090B00C(v19, (int)((char *)lpAddend + *v20));
- if ( *(_DWORD *)(v19 + 32) == 2 )
- ++v28;
- ++a5;
- lpAddend += 9;
- v19 += 36;
- v21 = sub_3090C109();
- }
- while ( a5 < (unsigned int)((v21[1] - *v21) / 36) );
- }
- v22 = operator new(0x18u);
- if ( v22 )
- {
- v23 = sub_3090C109();
- v24 = (v23[1] - *v23) / 36;
- *(_DWORD *)v22 = 0;
- *((_DWORD *)v22 + 3) = 0;
- *((_BYTE *)v22 + 16) = 0;
- *((_DWORD *)v22 + 1) = v24;
- *((_DWORD *)v22 + 2) = v28;
- *((_DWORD *)v22 + 5) = v27;
- }
- else
- {
- v22 = 0;
- }
- lpAddend = (LPLONG)v22;
- v9 = &dword_309508D0;
- }
- lpAddend = (LPLONG)sub_309230F4((void *)v26, lpAddend);
- if ( v26 )
- {
- sub_30922C55(v26);
- operator delete((void *)v26);
- }
- if ( dword_3095068C )
- {
- sub_3091086D(lpAddend);
- lpAddend = 0;
- }
- sub_309228B3(v9);
- v25 = (int)sub_3090C109();
- sub_3090B739(v25, (int)&a5, *(_DWORD *)v25, *(_DWORD *)(v25 + 4));
- v7 = lpAddend;
- }
- --v6[1].DebugInfo;
- LeaveCriticalSection(v6);
- return v7;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement