Function at 0x510550
Capabilities:
Access peb ldr_data
Check for peb ntglobalflag flag
Get ntdll base address
Get process heap flags
Get process heap force flags

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ca33b
mov eax, dword fs:[0]
push eax
sub esp, 0x10
mov eax, dword [0x70c0f0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebp - 0x10]
call fcn.00449de0
mov ecx, dword [ebp - 0x10]
add ecx, 4
call fcn.00449e20
mov ecx, dword [ebp - 0x10]
add ecx, 8
call fcn.00449590
mov ecx, dword [ebp - 0x10]
add ecx, 0xc
call fcn.00449e40
mov ecx, dword [ebp - 0x10]
add ecx, 0x10
call fcn.00447970
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x10]
mov dword [eax], vtable.CArchiveExtractCallback.2.0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], vtable.CArchiveExtractCallback.3.0
mov edx, dword [ebp - 0x10]
mov dword [edx + 8], vtable.CArchiveExtractCallback.1.0
mov eax, dword [ebp - 0x10]
mov dword [eax + 0xc], vtable.CArchiveExtractCallback.0
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 0x14], 0
mov ecx, dword [ebp - 0x10]
add ecx, 0x18
call fcn.004497d0
mov ecx, dword [ebp - 0x10]
add ecx, 0x28
call fcn.00447970
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x10]
add ecx, 0x2c
call fcn.00447970
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x10]
add ecx, 0x30
call fcn.00447970
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x10]
add ecx, 0x34
call fcn.00447970
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x10]
add ecx, 0x38
call fcn.00447970
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x10]
add ecx, 0x3c
call fcn.00447970
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x10]
add ecx, 0x40
call fcn.00553c20
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x10]
add ecx, 0x4c
call fcn.00553c20
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x10]
add ecx, 0x68
call fcn.00447970
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x10]
add ecx, 0x70
call fcn.00447970
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x10]
add ecx, 0x74
call fcn.00449600
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x10]
add ecx, 0xb4
call fcn.00553c20
mov byte [ebp - 4], 0xc
mov edx, dword [ebp - 0x10]
mov byte [edx + 0xca], 1
mov eax, dword [ebp - 0x10]
mov byte [eax + 0xcb], 1
mov ecx, dword [ebp - 0x10]
mov byte [ecx + 0xcc], 1
mov ecx, dword [ebp - 0x10]
add ecx, 0x108
call fcn.00447970
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x10]
add ecx, 0x110
call fcn.00447970
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x10]
add ecx, 0x118
call fcn.00448600
mov byte [ebp - 4], 0xf
mov edx, dword [ebp - 0x10]
mov byte [edx + 0x12e], 0
mov ecx, dword [ebp - 0x10]
add ecx, 0x130
call fcn.00447970
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x10]
add ecx, 0x14c
call fcn.00448600
mov byte [ebp - 4], 0x11
mov ecx, dword [ebp - 0x10]
add ecx, 0x158
call fcn.00448600
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x10]
add ecx, 0x164
call fcn.00446580
mov byte [ebp - 4], 0x13
mov ecx, dword [ebp - 0x10]
add ecx, 0x1a0
call fcn.00449e60
mov byte [ebp - 4], 0x14
mov ecx, dword [ebp - 0x10]
add ecx, 0x1b8
call fcn.00553c20
mov byte [ebp - 4], 0x15
mov ecx, dword [ebp - 0x10]
add ecx, 0x1c4
call fcn.00448600
mov byte [ebp - 4], 0x16
push 0x38
call fcn.00495c22
add esp, 4
mov dword [ebp - 0x18], eax
mov byte [ebp - 4], 0x17
mov ecx, dword [ebp - 0x18]
call fcn.0054f6f0
mov dword [ebp - 0x14], eax
jmp 0x5107a7
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
mov dword [ecx + 0x174], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 0x174]
push ecx
mov ecx, dword [ebp - 0x10]
add ecx, 0x130
call fcn.0044a500
call fcn.00510c40
mov edx, dword [ebp - 0x10]
mov byte [edx + 0x170], al
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret