Function at 0x47cf20
Capabilities:
Get system information on windows
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x30]
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x24]
push ebx
push esi
mov esi, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 0x20]
xor ebx, ebx
push ebx
push 0x64
push eax
push esi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edx
call fcn.004b42e0
mov ecx, dword [ebp + 0x24]
push ecx
push edi
push edx
push eax
call fcn.004b4320
mov ecx, 0x64
sub ecx, eax
mov eax, dword [ebp + 0x10]
push ecx
mov edx, esp
mov dword [esp + 0x24], esp
push ecx
push edi
push esi
push eax
push str.Extract:_VfcPointer_d__CompSize_d__UncompSize_d__compression_ratio_d___
push edx
call fcn.00464a80
add esp, 0x18
call fcn.0047cb00
mov eax, dword [ebp + 8]
mov esi, dword [eax + 8]
add esi, dword [ebp + 0x10]
mov edi, dword [eax + 0xc]
adc edi, dword [ebp + 0x14]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x44], edi
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x1c], ecx
cmp dword [0x518be8], ebx
jne 0x47cfdb
push 0x518bcc
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov edx, dword [0x518be8]
push ebx
push edx
push edi
push esi
call fcn.004ba680
mov ebx, esi
sub ebx, eax
mov eax, edi
sbb eax, edx
mov edx, dword [esp + 0x1c]
mov ecx, esi
sub ecx, ebx
add ecx, 0x10
push ecx
push ebx
push eax
push 4
push edx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, eax
test edi, edi
je 0x47d017
sub eax, ebx
add eax, esi
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x28]
mov edx, dword [ecx]
mov edx, dword [edx + 8]
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x20]
push eax
call edx
or ecx, 0xffffffff
cmp dword [esp + 0xc], ecx
jne 0x47d062
xor eax, eax
cmp eax, dword [esp + 0x2c]
jg 0x47d05a
jl 0x47d050
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x28]
jae 0x47d05a
mov edx, dword [esp + 0x14]
mov dword [esp + 0xc], edx
jmp 0x47d062
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
cmp dword [esp + 0x10], ecx
jne 0x47d08e
xor eax, eax
cmp eax, dword [esp + 0x34]
jg 0x47d086
jl 0x47d07c
mov ecx, dword [esp + 0x14]
cmp ecx, dword [esp + 0x30]
jae 0x47d086
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], edx
jmp 0x47d08e
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
push edi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov edi, dword [esp + 0xc]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x24]
add edi, 0x2000
cmp dword [0x518be8], 0
mov dword [esp + 0x1c], edx
jne 0x47d0bd
push 0x518bcc
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [0x518be8]
mov ecx, dword [esp + 0x44]
push 0
push eax
push ecx
push esi
call fcn.004ba680
mov ebx, esi
sub ebx, eax
mov eax, dword [esp + 0x44]
sbb eax, edx
mov edx, dword [esp + 0x1c]
sub edi, ebx
add edi, esi
push edi
push ebx
push eax
push 4
push edx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x47d245
mov edi, dword [esp + 0x10]
sub eax, ebx
add eax, esi
cmp dword [0x518be8], 0
mov dword [esp + 0x18], eax
jne 0x47d11a
push 0x518bcc
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [0x518be8]
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
push 0
push eax
push ecx
push ebx
call fcn.004ba680
sub ebx, eax
mov eax, dword [esp + 0x3c]
sbb eax, edx
mov edx, dword [ebp + 0xc]
sub edi, ebx
add edi, dword [esp + 0x38]
push edi
push ebx
push eax
push 6
push edx
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov dword [esp + 0x20], eax
test eax, eax
je 0x47d271
push ecx
mov edi, eax
mov eax, esp
mov dword [esp + 0x28], esp
sub edi, ebx
mov ebx, dword [esp + 0x3c]
push esi
push ebx
push str.DestCurOfs_d__VfcCurOfs_d
push eax
add edi, ebx
call fcn.00464a80
add esp, 0x10
call fcn.0047cb00
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x28]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x10]
push eax
mov eax, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x24]
push esi
push edi
push eax
call edx
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
xor eax, eax
add esi, ecx
adc dword [esp + 0x44], eax
xor edi, edi
add ebx, edx
adc dword [esp + 0x3c], edi
cmp dword [esp + 0x2c], eax
mov dword [esp + 0x38], ebx
jl 0x47d1d7
jg 0x47d1cd
cmp dword [esp + 0x28], ecx
jbe 0x47d1d7
sub dword [esp + 0x28], ecx
sbb dword [esp + 0x2c], eax
jmp 0x47d1e1
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
cmp dword [esp + 0x34], edi
jl 0x47d1f9
jg 0x47d1ef
cmp dword [esp + 0x30], edx
jbe 0x47d1f9
sub dword [esp + 0x30], edx
sbb dword [esp + 0x34], edi
jmp 0x47d203
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
add dword [esp + 0x48], ecx
adc dword [esp + 0x4c], eax
add dword [esp + 0x50], edx
mov eax, dword [esp + 0x1c]
push eax
adc dword [esp + 0x58], edi
mov edi, dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
call edi
mov ecx, dword [esp + 0x20]
push ecx
call edi
cmp dword [esp + 0x2c], 0
jl 0x47d29d
jg 0x47d237
cmp dword [esp + 0x28], 0
jbe 0x47d29d
mov edi, dword [esp + 0x44]
mov eax, dword [ebp + 8]
xor ebx, ebx
jmp 0x47cfc1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ecx
mov edx, esp
mov dword [esp + 0x28], esp
push eax
push str._Extract:_Src_mapping_failed__LE_d
push edx
call fcn.00464a80
add esp, 0xc
call fcn.0047cb00
xor eax, eax
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 + 0x28], esp
push eax
push str._Extract:_Dest_mapping_failed__LE_d
push ecx
call fcn.00464a80
add esp, 0xc
call fcn.0047cb00
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x20