Skip to content

Instantly share code, notes, and snippets.

@Auscitte
Created November 27, 2020 19:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Auscitte/7eca2748b90224bb885f2c671e7cfd19 to your computer and use it in GitHub Desktop.
Save Auscitte/7eca2748b90224bb885f2c671e7cfd19 to your computer and use it in GitHub Desktop.
basesrv::ServerDllInitialization() decompiled by retdec plugin for radare2
// Address range: 0x180004f72 - 0x180004f77
int64_t function_180004f72(void) {
// 0x180004f72
int64_t result; // 0x180004f72
return result;
}
// Address range: 0x180004f77 - 0x180004f8a
int64_t function_180004f77(void) {
// 0x180004f77
return RtlDeleteCriticalSection(&g56);
}
// Address range: 0x180004d06 - 0x180004d16
int64_t function_180004d06(void) {
int64_t result = (int64_t)g46; // 0x180004d06
int64_t v1; // 0x180004d06
*(int32_t *)(result + 54) = (int32_t)v1;
return result;
}
// Address range: 0x180004d16 - 0x180004d27
int64_t function_180004d16(void) {
int64_t result = (int64_t)g46; // 0x180004d16
int64_t v1; // 0x180004d16
*(int16_t *)(result + 58) = (int16_t)v1;
return result;
}
// Address range: 0x180004d27 - 0x180004dcf
int64_t function_180004d27(void) {
// 0x180004d27
int64_t v1; // 0x180004d27
int64_t * v2 = (int64_t *)(v1 - 16); // 0x180004d27
int64_t v3 = *v2; // 0x180004d27
int64_t v4; // 0x180004d27
if ((int32_t)NtQueryValueKey(v3, (int64_t)L"$&", 2, v1 + 128, (int32_t)v4, (int32_t *)(v1 + 48)) < 0) {
// 0x180004dbf
return NtClose((int64_t *)*v2);
}
int32_t v5 = (int32_t)*(int64_t *)(v1 + 132); // 0x180004d5e
if (v5 == 4) {
int32_t v6 = *(int32_t *)(v1 + 140); // 0x180004d63
int64_t v7; // 0x180004d27
*(char *)((int64_t)g46 + 2392) = (char)(v6 != (int32_t)v7);
// 0x180004dbf
return NtClose((int64_t *)*v2);
}
if (v5 != 1) {
// 0x180004dbf
return NtClose((int64_t *)*v2);
}
int16_t * v8 = (int16_t *)(v1 + 140); // 0x180004d8f
if (_wcsicmp(v8, L"yes") == 0) {
// 0x180004db1
*(char *)((int64_t)g46 + 2392) = 1;
// 0x180004dbf
return NtClose((int64_t *)*v2);
}
// 0x180004d99
if (_wcsicmp(v8, (int16_t *)&g16) != 0) {
// 0x180004dbf
return NtClose((int64_t *)*v2);
}
// 0x180004db1
*(char *)((int64_t)g46 + 2392) = 1;
// 0x180004dbf
return NtClose((int64_t *)*v2);
}
// Address range: 0x180004e4c - 0x180004edd
int64_t function_180004e4c(void) {
// 0x180004e4c
int64_t v1; // 0x180004e4c
int16_t * v2 = (int16_t *)(v1 + 2464); // 0x180004e6a
swprintf_s(v2, 256, L"%ws\\%ld\\BaseNamedObjects");
RtlInitUnicodeString((struct _UNICODE_STRING *)(v1 + 72), v2);
int32_t v3 = 48; // bp+96, 0x180004e85
*(int64_t *)(v1 - 120) = 0;
int64_t * v4 = (int64_t *)(v1 - 112); // 0x180004eba
NtCreateSymbolicLinkObject(v4, 0xf0001, (int64_t *)&v3, L"\"$");
NtClose((int64_t *)*v4);
return g47;
}
// Address range: 0x180004edd - 0x180004f2c
int64_t function_180004edd(void) {
int32_t v1 = 48; // bp+96, 0x180004ef0
int64_t v2; // 0x180004edd
*(int64_t *)(v2 - 120) = 0;
int64_t v3 = NtCreateDirectoryObject(&g55, 0xf000f, (int64_t *)&v1); // 0x180004f1b
int64_t result = v3; // 0x180004f25
if ((int32_t)v3 < 0) {
result = function_180004f77();
}
// 0x180004f27
return result;
}
// Address range: 0x180004f2c - 0x180004f33
int64_t function_180004f2c(int64_t a1) {
// 0x180004f2c
int64_t result; // 0x180004f2c
return result;
}
// Address range: 0x180004dcf - 0x180004e2b
int64_t function_180004dcf(void) {
int64_t v1 = RtlAllocateHeap(g38, (int64_t)(uint32_t)g39, 40); // 0x180004de2
int64_t v2; // 0x180004dcf
*(int64_t *)(v2 + 8) = v1;
int64_t v3 = v1; // 0x180004df2
if (v1 == 0) {
v3 = function_180004f72();
}
// 0x180004df8
if ((int32_t)RtlCreateSecurityDescriptor(v3, 1) < 0) {
function_180004f77();
}
// 0x180004e10
return v2 - 56;
}
// Address range: 0x180004e2b - 0x180004e4c
int64_t function_180004e2b(int64_t a1, int64_t a2, int64_t a3, int64_t a4) {
// 0x180004e2b
int64_t v1; // 0x180004e2b
int64_t v2 = *(int64_t *)(v1 - 56); // 0x180004e2b
int64_t v3; // 0x180004e2b
int64_t v4 = RtlSetDaclSecurityDescriptor(v3, (int64_t *)(a2 & -256 | 1), v2, 0); // 0x180004e37
int64_t result = v4; // 0x180004e41
if ((int32_t)v4 < 0) {
result = function_180004f77();
}
// 0x180004e47
return result;
}
// Address range: 0x180001680 - 0x180004f8a
void BASESRV_dll_ServerDllInitialization(int64_t arg1) {
int32_t v1 = 4; // bp-3488, 0x1800016aa
int128_t v2 = 0; // bp-3640, 0x1800016b1
int32_t v3 = *(int32_t *)(__readgsqword(96) + 704); // 0x1800016e6
g47 = v3;
g60 = RtlGetCurrentServiceSessionId(v3);
g38 = *(int64_t *)(__readgsqword(96) + 48);
int64_t v4 = RtlCreateTagHeap(); // 0x180001738
int64_t * v5 = (int64_t *)(arg1 + 96); // 0x18000173e
g40 = *v5;
g39 = v4;
int64_t v6 = RtlCreateTagHeap(); // 0x18000175f
*(int32_t *)(arg1 + 32) = 0;
g41 = v6;
*(int64_t *)(arg1 + 40) = (int64_t)&g5;
*(int64_t *)(arg1 + 48) = (int64_t)&g15;
*(int64_t *)(arg1 + 72) = 0x180003eb0;
*(int64_t *)(arg1 + 80) = 0x180003cf0;
*(int32_t *)(arg1 + 36) = 29;
*(int32_t *)(arg1 + 64) = 8;
if ((int32_t)RtlInitializeCriticalSection(&g56) < 0) {
// 0x18000233d
pdb___security_check_cookie((int32_t)g17);
return;
}
int64_t v7 = 0x3200000; // bp-3560, 0x1800017f1
int64_t v8; // bp-3464, 0x180001680
RtlExpandEnvironmentStrings_U(0, &g4, &v7, 0, 0x3200000, &v8);
int64_t v9 = v7 % 0x10000; // 0x18000180c
if ((int16_t)v7 >= 800) {
v9 = function_180004f72();
}
uint64_t v10 = v9 & 0xfffe; // 0x180001815
if (v10 >= 800) {
// 0x1800023ec
pdb___report_rangecheckfailure();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
__asm_int3();
return;
}
// 0x180001822
int64_t var_30h_2; // bp-3592, 0x180001680
int64_t v11 = &var_30h_2; // 0x180001688
*(int16_t *)(v11 + 128 + v10) = 0;
if ((char)RtlCreateUnicodeString(&g42, &v8) == 0) {
function_180004f72();
}
// 0x180001847
wcscat_s((int16_t *)&v8, 400, L"\\system32");
if ((char)RtlCreateUnicodeString(&g44, &v8) == 0) {
function_180004f72();
}
// 0x18000187c
int64_t v12; // bp-2664, 0x180001680
if (g47 == g60) {
// 0x18000236a
wcscpy_s((int16_t *)&v12, 256, L"\\BaseNamedObjects");
} else {
// 0x18000189a
swprintf_s((int16_t *)&v12, 256, L"%ws\\%ld\\BaseNamedObjects");
}
// 0x1800018b2
int64_t v13; // bp-1640, 0x180001680
swprintf_s((int16_t *)&v13, 256, L"%ws\\%ld\\AppContainerNamedObjects");
int64_t v14; // bp-2152, 0x180001680
pdb_RtlStringCchPrintfW((int64_t)&v14, 256, (int64_t)L"%ws\\%ld\\BaseNamedObjects", (int64_t)L"\\Sessions");
int64_t var_dd0h; // bp-3696, 0x180001680
RtlInitUnicodeString((struct _UNICODE_STRING *)&var_dd0h, (int16_t *)&v12);
RtlInitUnicodeString((struct _UNICODE_STRING *)&v2, (int16_t *)&v14);
int64_t v15; // bp-3624, 0x180001680
RtlInitUnicodeString((struct _UNICODE_STRING *)&v15, (int16_t *)&v13);
int64_t v16 = RtlAllocateHeap(g40, (int64_t)g41, 2920); // 0x18000194b
g46 = (int128_t *)v16;
int64_t v17 = v16; // 0x18000195b
if (v16 == 0) {
v17 = function_180004f72();
}
int64_t v18 = v17;
*v5 = v18;
*(int64_t *)(v18 + 2896) = v18;
*(int32_t *)(v18 + 2864) = -1;
*(int32_t *)(v18 + 2872) = 0;
if (NtQuerySystemInformation(3, (int64_t *)(v18 + 320), 48, NULL) < 0) {
function_180004f77();
}
// 0x18000199f
__asm_movups_1(*g46, __asm_movups(*(int128_t *)&g42));
uint16_t v19 = *(int16_t *)&g43; // 0x1800019bd
int64_t v20 = RtlAllocateHeap(g40, (int64_t)g41, (int64_t)v19); // 0x1800019c5
int64_t v21 = v20; // 0x1800019d1
if (v20 == 0) {
v21 = function_180004f72();
}
int64_t v22 = (int64_t)g46; // 0x1800019d7
uint16_t v23 = *(int16_t *)&g43; // 0x1800019e1
int64_t * v24 = (int64_t *)(v22 + 8); // 0x1800019e9
memcpy((int64_t *)v21, (int64_t *)*v24, (int32_t)v23);
*v24 = v20;
__asm_movups_1(*(int128_t *)(v22 + 16), __asm_movups(*(int128_t *)&g44));
uint16_t v25 = *(int16_t *)&g45; // 0x180001a0e
int64_t v26 = RtlAllocateHeap(g40, (int64_t)g41, (int64_t)v25); // 0x180001a16
int64_t v27 = v26; // 0x180001a22
if (v26 == 0) {
v27 = function_180004f72();
}
int64_t v28 = (int64_t)g46; // 0x180001a28
uint16_t v29 = *(int16_t *)&g45; // 0x180001a32
int64_t * v30 = (int64_t *)(v28 + 24); // 0x180001a3a
memcpy((int64_t *)v27, (int64_t *)*v30, (int32_t)v29);
*v30 = v26;
*(int64_t *)(v28 + 2408) = 0;
*(int32_t *)(v28 + 2400) = 0;
__asm_movups_1(*(int128_t *)(v28 + 32), __asm_movups((int128_t)var_dd0h));
*(int16_t *)(v28 + 34) = (int16_t)var_dd0h + 2;
int64_t v31 = RtlAllocateHeap(g40, (int64_t)g41, var_dd0h % 0x10000 + 2); // 0x180001a7f
int64_t v32 = v31; // 0x180001a8b
if (v31 == 0) {
v32 = function_180004f72();
}
int64_t v33 = (int64_t)g46; // 0x180001a91
uint16_t v34 = *(int16_t *)(v33 + 34); // 0x180001a9b
int64_t * v35 = (int64_t *)(v33 + 40); // 0x180001aa0
memcpy((int64_t *)v32, (int64_t *)*v35, (int32_t)v34);
*v35 = v31;
__asm_movups_1(*(int128_t *)(v33 + 2880), __asm_movups((int128_t)v15));
*(int16_t *)(v33 + 2882) = (int16_t)v15 + 2;
int64_t v36 = RtlAllocateHeap(g40, (int64_t)g41, v15 % 0x10000 + 2); // 0x180001add
int64_t v37 = v36; // 0x180001ae9
if (v36 == 0) {
v37 = function_180004f72();
}
int64_t v38 = (int64_t)g46; // 0x180001aef
uint16_t v39 = *(int16_t *)(v38 + 2882); // 0x180001af9
int64_t * v40 = (int64_t *)(v38 + 2888); // 0x180001b01
memcpy((int64_t *)v37, (int64_t *)*v40, (int32_t)v39);
*v40 = v36;
int128_t v41 = __asm_movups(0); // 0x180001b21
__asm_movups_1(*(int128_t *)(v38 + 2904), v41);
*(int16_t *)(v38 + 2906) = (int16_t)v2 + 2;
int64_t v42 = RtlAllocateHeap(g40, (int64_t)g41, (int64_t)v2 % 0x10000 + 2); // 0x180001b44
int64_t v43 = v42; // 0x180001b50
if (v42 == 0) {
v43 = function_180004f72();
}
int64_t v44 = (int64_t)g46; // 0x180001b56
uint16_t v45 = *(int16_t *)(v44 + 2906); // 0x180001b60
int64_t * v46 = (int64_t *)(v44 + 2912); // 0x180001b68
memcpy((int64_t *)v43, (int64_t *)*v46, (int32_t)v45);
*v46 = v42;
*(char *)(v44 + 2416) = 0;
int64_t v47; // bp-2864, 0x180001680
g49 = (int16_t *)&v47;
*(int32_t *)&g48 = 0xc80000;
if ((int32_t)RtlQueryRegistryValuesEx(3, &g14, &g3, 0, 0) < 0) {
function_180004d06();
}
int64_t v48 = (int64_t)g46; // 0x180001bc9
*(int16_t *)(v48 + 54) = g50;
*(int16_t *)(v48 + 56) = g51;
if ((int32_t)RtlQueryRegistryValuesEx(3, &g14, &g2, 0, 0) < 0) {
function_180004d16();
}
uint16_t v49 = *(int16_t *)&g48; // 0x180001c07
wcsncpy_s((int16_t *)((int64_t)g46 + 58), 128, g49, (int32_t)(v49 / 2));
if ((int32_t)RtlInitUnicodeStringEx(&g48, 0) < 0) {
function_180004f77();
}
// 0x180001c48
if (NtQuerySystemInformation(0, &g58, 64, NULL) < 0) {
function_180004f77();
}
// 0x180001c68
pdb_BaseSrvInitializeIniFileMappings();
if (((int32_t)&g71 & (int32_t)&g71) < 0) {
function_180004f77();
}
int128_t v50 = __asm_xorps(v41, v41); // 0x180001c83
*(char *)((int64_t)g46 + 2392) = 0;
int64_t Handle = 48; // bp-3752, 0x180001ca2
int128_t v51; // 0x180001680
__asm_movdqu(v51, v50);
int64_t var_20h; // bp-3608, 0x180001680
int64_t v52 = NtOpenKey((int64_t)&var_20h, 0x20019, (int64_t)&Handle); // 0x180001cbc
if ((int32_t)v52 >= 0) {
function_180004d27();
}
// 0x180001cca
*(char *)((int64_t)g46 + 2393) = 0;
RtlQueryRegistryValuesEx(2, (int64_t *)L"Session Manager\\NamespaceSeparation", &g1, 0, 0);
int64_t v53 = RtlAllocateHeap(g38, (int64_t)g39, 1024); // 0x180001d0b
int64_t v54 = v53; // 0x180001d17
if (v53 == 0) {
v54 = function_180004f72();
}
// 0x180001d1d
if ((int32_t)RtlCreateSecurityDescriptor(v54, 1) < 0) {
function_180004f77();
}
int64_t v55 = RtlAllocateHeap(g38, (int64_t)g39, 40); // 0x180001d48
int64_t v56 = v55; // 0x180001d54
if (v55 == 0) {
v56 = function_180004f72();
}
// 0x180001d5a
if ((int32_t)RtlCreateSecurityDescriptor(v56, 1) < 0) {
function_180004f77();
}
// 0x180001d72
if (g68 != 0) {
function_180004dcf();
}
// 0x180001d7f
int32_t v57; // bp-3664, 0x180001680
int64_t var_10h; // bp-3656, 0x180001680
int64_t var_28h_2; // bp-3600, 0x180001680
pdb_CreateBaseAcls((int64_t)&var_10h, v11, (int64_t)&var_28h_2, (int64_t)&v57, 0);
if (((int32_t)&g71 & (int32_t)&g71) < 0) {
function_180004f77();
}
// 0x180001da3
int64_t v58; // bp-3839, 0x180001680
if ((int32_t)RtlSetDaclSecurityDescriptor(v53, &v58, var_10h, 0) < 0) {
function_180004f77();
}
int64_t v59 = v57; // 0x180001dbf
if ((int32_t)RtlSetSaclSecurityDescriptor(v53, &v58, v59, 0) < 0) {
function_180004f77();
}
// 0x180001dde
if ((int32_t)RtlSetDaclSecurityDescriptor(v55, &v58, var_28h_2, 0) < 0) {
function_180004f77();
}
// 0x180001dfd
if (g68 != 0) {
function_180004e2b(v55, (int64_t)&v58, var_28h_2, 0);
}
// 0x180001e0a
Handle = 48;
if ((int32_t)NtCreateDirectoryObject(&g52, 0xf000f, &Handle) < 0) {
function_180004f77();
}
// 0x180001e4f
Handle = 48;
if ((int32_t)NtCreateDirectoryObject(&g54, 0xf000f, &Handle) < 0) {
function_180004f77();
}
// 0x180001e94
if (g47 == g60) {
// 0x18000237c
if ((int32_t)NtSetInformationObject(g52, 5, 0, 0) < 0) {
function_180004f77();
}
// 0x18000239d
if (g47 != 0) {
// 0x1800023ab
function_180004e4c();
return;
}
}
// 0x180001ea6
if (g68 != 0) {
function_180004edd();
}
// 0x180001eb5
int64_t var_28h; // bp-3680, 0x180001680
if (NtQueryInformationProcess((int64_t *)-1, 28, &var_28h, 4, NULL) < 0) {
function_180004f33(-1);
}
// 0x180001edd
if ((int32_t)var_28h == 0) {
function_180004f2c(-1);
}
// 0x180001ee7
*(char *)((int64_t)g46 + 2868) = 1;
if ((int32_t)RtlInitializeCriticalSectionAndSpinCount(&g59, 0x80000000) < 0) {
function_180004f77();
}
// 0x180001f17
Handle = 48;
int64_t var_40h; // bp-3704, 0x180001680
if ((int32_t)NtCreateSymbolicLinkObject(&var_40h, 0xf0001, &Handle, L"\"$") < 0) {
function_180004f77();
}
// 0x180001f68
if (g47 == g60) {
// 0x1800023b0
NtClose((int64_t *)var_40h);
}
// 0x180001f7a
int64_t var_68h; // bp-3536, 0x180001680
RtlInitUnicodeString((struct _UNICODE_STRING *)&var_68h, (int16_t *)&v12);
Handle = 48;
int64_t v60 = NtCreateSymbolicLinkObject(&var_40h, 0xf0001, &Handle, (int16_t *)&var_68h); // 0x180001fc9
if ((int32_t)v60 < 0) {
function_180004f77();
}
// 0x180001fd9
if (g47 == g60) {
// 0x1800023bf
NtClose((int64_t *)var_40h);
}
// 0x180001feb
Handle = 48;
int64_t v61 = NtCreateSymbolicLinkObject(&var_40h, 0xf0001, &Handle, (int16_t *)&v15); // 0x180002029
if ((int32_t)v61 < 0) {
function_180004f77();
}
// 0x180002039
if (g47 == g60) {
// 0x1800023ce
NtClose((int64_t *)var_40h);
}
// 0x18000204b
RtlInitUnicodeString((struct _UNICODE_STRING *)&var_dd0h, L"Session");
RtlInitUnicodeString((struct _UNICODE_STRING *)&var_68h, L"\\Sessions\\BNOLINKS");
Handle = 48;
int64_t v62 = NtCreateSymbolicLinkObject(&var_40h, 0xf0001, &Handle, (int16_t *)&var_68h); // 0x1800020a8
if ((int32_t)v62 < 0) {
function_180004f77();
}
// 0x1800020b8
if (g47 == g60) {
// 0x1800023dd
NtClose((int64_t *)var_40h);
}
// 0x1800020ca
RtlInitUnicodeString((struct _UNICODE_STRING *)&var_dd0h, L"Restricted");
if ((int32_t)RtlSetDaclSecurityDescriptor(v53, (int64_t *)((int64_t)L"Restricted" & -256 || 1), var_30h_2, 0) < 0) {
function_180004f77();
}
// 0x1800020fa
Handle = 48;
if ((int32_t)NtCreateDirectoryObject(&g53, 0xf000f, &Handle) < 0) {
function_180004f77();
}
int64_t v63 = *(int64_t *)(v55 + 32); // 0x180002146
int64_t var_20h_2; // bp-3672, 0x180001680
int64_t v64 = RtlGetAce(v63, 0, &var_20h_2); // 0x180002157
int64_t v65 = v59; // 0x18000215f
if ((int32_t)v64 >= 0) {
int64_t v66 = var_20h_2 + 4; // 0x18000216c
*(int16_t *)v66 = 0;
int64_t v67 = &v1;
int32_t v68 = 4;
int32_t * v69; // 0x180002362
if ((*(int32_t *)v66 % 0x10000 & v68) == v68) {
// 0x18000235b
v69 = (int32_t *)(var_20h_2 + 4);
*v69 = *v69 | *(int32_t *)(v67 + 4);
}
int64_t v70 = v67 + 8; // 0x18000218a
int32_t v71 = *(int32_t *)v70; // 0x18000218a
while (v71 != 0) {
// 0x18000217a
v67 = v70;
v68 = v71;
if ((*(int32_t *)v66 % 0x10000 & v68) == v68) {
// 0x18000235b
v69 = (int32_t *)(var_20h_2 + 4);
*v69 = *v69 | *(int32_t *)(v67 + 4);
}
// 0x18000218a
v70 = v67 + 8;
v71 = *(int32_t *)v70;
}
int64_t v72 = 1; // 0x180002195
int64_t v73 = RtlGetAce(v63, (int32_t)v72, &var_20h_2); // 0x1800021a0
int64_t v74 = v72 & 0xffffffff; // 0x1800021a8
while ((int32_t)v73 >= 0) {
// 0x180002164
v66 = var_20h_2 + 4;
*(int16_t *)v66 = 0;
v67 = &v1;
v68 = 4;
if ((*(int32_t *)v66 % 0x10000 & v68) == v68) {
// 0x18000235b
v69 = (int32_t *)(var_20h_2 + 4);
*v69 = *v69 | *(int32_t *)(v67 + 4);
}
// 0x18000218a
v70 = v67 + 8;
v71 = *(int32_t *)v70;
while (v71 != 0) {
// 0x18000217a
v67 = v70;
v68 = v71;
if ((*(int32_t *)v66 % 0x10000 & v68) == v68) {
// 0x18000235b
v69 = (int32_t *)(var_20h_2 + 4);
*v69 = *v69 | *(int32_t *)(v67 + 4);
}
// 0x18000218a
v70 = v67 + 8;
v71 = *(int32_t *)v70;
}
// 0x180002195
v72 = v74 + 1;
v73 = RtlGetAce(v63, (int32_t)v72, &var_20h_2);
v74 = v72 & 0xffffffff;
}
// 0x1800021aa
v65 = v57;
}
int32_t v75 = 0x2240000; // bp-3576, 0x1800021b5
RtlAppendUnicodeToString(&v75, L"\\Device\\NamedPipe");
RtlAppendUnicodeStringToString(&v75, &v15);
Handle = 48;
int64_t v76; // bp-3504, 0x180001680
int32_t v77 = NtCreateFile((int64_t **)&g57, 0x1f01ff, (struct _OBJECT_ATTRIBUTES *)&Handle, (struct _IO_STATUS_BLOCK *)&v76, NULL, 128, 3, 2, 1, NULL, 0); // 0x18000224a
if (v77 < 0) {
function_180004f77();
}
// 0x18000225a
RtlFreeHeap(g38, 0, var_10h);
RtlFreeHeap(g38, 0, var_30h_2);
RtlFreeHeap(g38, 0, var_28h_2);
RtlFreeHeap(g38, 0, v65);
RtlFreeHeap(g38, 0, v53);
RtlFreeHeap(g38, 0, v55);
RtlInitializeCriticalSection(&g35);
RtlInitializeCriticalSection(&g36);
if ((int32_t)RtlInitializeCriticalSection(&g31) >= 0) {
// 0x180002313
g32 = (int64_t)g46 + 376;
}
// 0x18000233d
pdb___security_check_cookie((int32_t)g17);
}
@Auscitte
Copy link
Author

Auscitte commented Jul 3, 2021

What the heck is this? The answer is here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment