Function at 0x4853a0
Capabilities:
Access peb ldr_data
Get number of processors
Get system information on windows
Read file via mapping
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4d0f58
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x50cc94]
xor eax, esp
push eax
lea eax, [esp + 0x60]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
mov eax, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x18]
mov edx, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x20]
xor edi, edi
push edi
push 0x64
push eax
push esi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], edx
call fcn.004b5eb0
mov ecx, dword [ebp + 0x24]
push ecx
push ebx
push edx
push eax
call fcn.004b5ef0
mov ecx, 0x64
sub ecx, eax
mov eax, dword [ebp + 0x10]
push ecx
mov edx, esp
mov dword [esp + 0x2c], esp
push ecx
push ebx
push esi
push eax
push str.Extract:_VfcPointer_d__CompSize_d__UncompSize_d__compression_ratio_d___
push edx
call fcn.00468c80
add esp, 0x18
call fcn.00484e00
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
add esi, dword [ebp + 0x10]
mov ebx, dword [eax + 0xc]
adc ebx, dword [ebp + 0x14]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x58], ebx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x24], ecx
cmp dword [0x511e88], edi
jne 0x48547b
push 0x511e6c
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edx, dword [0x511e88]
push edi
push edx
push ebx
push esi
call fcn.004bc250
mov edi, esi
sub edi, eax
mov eax, ebx
sbb eax, edx
mov edx, dword [esp + 0x24]
mov ecx, esi
sub ecx, edi
add ecx, 0x10
push ecx
push edi
push eax
push 4
push edx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ebx, eax
test ebx, ebx
je 0x4854b5
sub eax, edi
add eax, esi
jmp 0x4854b9
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x28]
mov edx, dword [ecx]
lea edi, [esp + 0x14]
push edi
lea edi, [esp + 0x14]
push edi
push eax
mov eax, dword [edx + 8]
call eax
or ecx, 0xffffffff
cmp dword [esp + 0x10], ecx
jne 0x485500
xor eax, eax
cmp eax, dword [esp + 0x30]
jg 0x4854f8
jl 0x4854ee
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x2c]
jae 0x4854f8
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
jmp 0x485500
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
cmp dword [esp + 0x14], ecx
jne 0x48552c
xor eax, eax
cmp eax, dword [esp + 0x38]
jg 0x485524
jl 0x48551a
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x34]
jae 0x485524
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
jmp 0x48552c
mov edx, dword [esp + 0x34]
mov dword [esp + 0x14], edx
push ebx
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov ebx, dword [esp + 0x10]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x24]
add ebx, 0x2000
cmp dword [0x511e88], 0
mov dword [esp + 0x24], ecx
jne 0x48555b
push 0x511e6c
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edx, dword [0x511e88]
mov eax, dword [esp + 0x58]
push 0
push edx
push eax
push esi
call fcn.004bc250
mov ecx, dword [esp + 0x24]
mov edi, esi
sub edi, eax
mov eax, dword [esp + 0x58]
sbb eax, edx
sub ebx, edi
add ebx, esi
push ebx
push edi
push eax
push 4
push ecx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esp + 0x28], eax
test eax, eax
je 0x48571c
mov edx, dword [esp + 0x14]
sub eax, edi
add eax, esi
cmp dword [0x511e88], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edx
jne 0x4855bd
push 0x511e6c
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [0x511e88]
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
push 0
push eax
push ebx
push edi
call fcn.004bc250
mov ecx, edi
sub ecx, eax
mov eax, ebx
sbb eax, edx
mov edx, dword [esp + 0x24]
mov ebx, edi
sub ebx, ecx
add edx, ebx
push edx
push ecx
push eax
mov eax, dword [ebp + 0xc]
push 6
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esp + 0x24], eax
test eax, eax
je 0x485754
push esi
push edi
lea ecx, [esp + 0x28]
push str.DestCurOfs_d__VfcCurOfs_d
push ecx
add ebx, eax
call fcn.00468c80
mov dword [esp + 0x78], 0
mov edx, dword [esp + 0x30]
push edx
push str.VfcReader
call fcn.00466250
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
add esp, 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x485659
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x28]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x24]
push ebx
push eax
call edx
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
xor eax, eax
add esi, ecx
adc dword [esp + 0x58], eax
xor ebx, ebx
add edi, edx
adc dword [esp + 0x40], ebx
cmp dword [esp + 0x30], eax
mov dword [esp + 0x3c], edi
jl 0x4856aa
jg 0x4856a0
cmp dword [esp + 0x2c], ecx
jbe 0x4856aa
sub dword [esp + 0x2c], ecx
sbb dword [esp + 0x30], eax
jmp 0x4856b4
xor edi, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
cmp dword [esp + 0x38], ebx
jl 0x4856cc
jg 0x4856c2
cmp dword [esp + 0x34], edx
jbe 0x4856cc
sub dword [esp + 0x34], edx
sbb dword [esp + 0x38], ebx
jmp 0x4856d6
xor edi, edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
add dword [esp + 0x44], ecx
mov edi, dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
adc dword [esp + 0x48], eax
add dword [esp + 0x4c], edx
mov eax, dword [esp + 0x28]
push eax
adc dword [esp + 0x54], ebx
call edi
mov ecx, dword [esp + 0x24]
push ecx
call edi
cmp dword [esp + 0x30], 0
jl 0x48578c
jg 0x48570e
cmp dword [esp + 0x2c], 0
jbe 0x48578c
mov ebx, dword [esp + 0x58]
mov eax, dword [ebp + 8]
xor edi, edi
jmp 0x485461
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ecx
mov edx, esp
mov dword [esp + 0x2c], esp
push eax
push str._Extract:_Src_mapping_failed__LE_d
push edx
call fcn.00468c80
add esp, 0xc
call fcn.00484e00
xor eax, eax
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push eax
push str._Extract:_Dest_mapping_failed__LE_d
push ecx
call fcn.00468c80
add esp, 0xc
call fcn.00484e00
xor eax, eax
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, 1
mov ecx, dword [esp + 0x60]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20