Function at 0x481400
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 0x4ccf08
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x504c94]
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.004b1f60
mov ecx, dword [ebp + 0x24]
push ecx
push ebx
push edx
push eax
call fcn.004b1fa0
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.00466a00
add esp, 0x18
call fcn.00480e60
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 [0x509e88], edi
jne 0x4814db
push 0x509e6c
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edx, dword [0x509e88]
push edi
push edx
push ebx
push esi
call fcn.004b8300
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 0x481515
sub eax, edi
add eax, esi
jmp 0x481519
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 0x481560
xor eax, eax
cmp eax, dword [esp + 0x30]
jg 0x481558
jl 0x48154e
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x2c]
jae 0x481558
mov eax, dword [esp + 0x18]
mov dword [esp + 0x10], eax
jmp 0x481560
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x10], edx
cmp dword [esp + 0x14], ecx
jne 0x48158c
xor eax, eax
cmp eax, dword [esp + 0x38]
jg 0x481584
jl 0x48157a
mov eax, dword [esp + 0x18]
cmp eax, dword [esp + 0x34]
jae 0x481584
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], ecx
jmp 0x48158c
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 [0x509e88], 0
mov dword [esp + 0x24], ecx
jne 0x4815bb
push 0x509e6c
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edx, dword [0x509e88]
mov eax, dword [esp + 0x58]
push 0
push edx
push eax
push esi
call fcn.004b8300
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 0x48177c
mov edx, dword [esp + 0x14]
sub eax, edi
add eax, esi
cmp dword [0x509e88], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], edx
jne 0x48161d
push 0x509e6c
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [0x509e88]
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
push 0
push eax
push ebx
push edi
call fcn.004b8300
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 0x4817b4
push esi
push edi
lea ecx, [esp + 0x28]
push str.DestCurOfs_d__VfcCurOfs_d
push ecx
add ebx, eax
call fcn.00466a00
mov dword [esp + 0x78], 0
mov edx, dword [esp + 0x30]
push edx
push str.VfcReader
call fcn.004643c0
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 0x4816b9
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 0x48170a
jg 0x481700
cmp dword [esp + 0x2c], ecx
jbe 0x48170a
sub dword [esp + 0x2c], ecx
sbb dword [esp + 0x30], eax
jmp 0x481714
xor edi, edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], edi
cmp dword [esp + 0x38], ebx
jl 0x48172c
jg 0x481722
cmp dword [esp + 0x34], edx
jbe 0x48172c
sub dword [esp + 0x34], edx
sbb dword [esp + 0x38], ebx
jmp 0x481736
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 0x4817ec
jg 0x48176e
cmp dword [esp + 0x2c], 0
jbe 0x4817ec
mov ebx, dword [esp + 0x58]
mov eax, dword [ebp + 8]
xor edi, edi
jmp 0x4814c1
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.00466a00
add esp, 0xc
call fcn.00480e60
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.00466a00
add esp, 0xc
call fcn.00480e60
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