Function at 0x427e40
Capabilities:
Get file size

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x52a6dc
mov eax, dword fs:[0]
push eax
sub esp, 0xa0
mov eax, dword [0x56fcac]
xor eax, esp
mov dword [esp + 0x98], eax
push ebx
push esi
push edi
mov eax, dword [0x56fcac]
xor eax, esp
push eax
lea eax, [esp + 0xb0]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xb8], 0
cmp dword [eax + 0x18], 8
jb 0x427ea0
mov eax, dword [eax + 4]
jmp 0x427ea3
add eax, 4
push 0
push 0x80
push 3
push 0
push 1
push 0x120089
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
mov dword [esp + 0x14], esi
je 0x4281d1
lea ecx, [esp + 0x1c]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x427eec
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x4281ca
mov edx, dword [esp + 0x1c]
push 1
push 0
push 0
push edx
call fcn.004f4500
mov edi, eax
xor eax, eax
add edi, ebx
adc edx, eax
mov ecx, edi
or ecx, edx
je 0x4281ca
test edx, edx
ja 0x4281ca
jb 0x427f24
cmp edi, 0x100000
ja 0x4281ca
test edx, edx
ja 0x427f33
jb 0x427f2f
cmp edi, 2
jae 0x427f33
xor bl, bl
jmp 0x427f8d
lea edx, [esp + 0x1c]
push edx
push 2
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], 0
mov dword [esp + 0x28], 0
call fcn.0043b9c0
test al, al
je 0x427fee
cmp dword [esp + 0x1c], 2
jne 0x427fee
mov al, byte [esp + 0x18]
cmp al, 0xff
mov cl, byte [esp + 0x19]
jne 0x427f82
cmp cl, 0xfe
jne 0x427f82
mov bl, 1
jmp 0x427f8d
xor bl, bl
cmp al, 0xfe
jne 0x427f8d
cmp cl, 0xff
je 0x427fee
lea ecx, [esp + 0x14]
call fcn.0043bb70
test bl, bl
je 0x427fb4
push 1
push 0
push 2
lea esi, [esp + 0x28]
lea eax, [esp + 0x20]
call fcn.0043bb10
test al, al
je 0x427fee
add edi, 0xfffffffe
lea esi, [esp + 0x1c]
mov dword [esp + 0x34], 0
call fcn.004038c0
lea ecx, [esp + 0x34]
push ecx
mov byte [esp + 0xbc], 1
mov esi, dword [esp + 0x28]
push edi
push esi
lea ecx, [esp + 0x20]
call fcn.0043b9c0
test al, al
jne 0x427ffc
lea ecx, [esp + 0x1c]
call fcn.00403950
lea ecx, [esp + 0x14]
call fcn.0043b960
jmp 0x4281d1
xor eax, eax
mov dword [esp + 0xa4], 7
mov dword [esp + 0xa0], eax
mov word [esp + 0x90], ax
test bl, bl
mov byte [esp + 0xb8], 2
je 0x42803b
shr edi, 1
mov ecx, esi
push edi
lea esi, [esp + 0x58]
call fcn.0042d1c0
mov ecx, esi
call fcn.00401e70
jmp 0x42808e
push edi
push esi
lea ecx, [esp + 0x5c]
call fcn.0042d170
lea eax, [esp + 0x54]
lea ecx, [esp + 0x38]
mov byte [esp + 0xb8], 3
call fcn.0043ebc0
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x98]
mov byte [esp + 0xc4], 4
call fcn.00403310
lea ecx, [esp + 0x38]
call fcn.00401e70
lea ecx, [esp + 0x54]
mov byte [esp + 0xb8], 2
call fcn.00401de0
lea edx, [esp + 0x8c]
push edx
lea esi, [esp + 0x74]
call fcn.0043f360
add esp, 4
push 0x54dc18
mov ebx, 0x54dc1c
mov eax, esi
mov byte [esp + 0xbc], 5
call fcn.00404a10
xor ebx, ebx
add esp, 4
cmp dword [esp + 0x84], ebx
je 0x42819f
mov esi, dword [esp + 0x30]
add esi, 0x164
jmp 0x4280e2
xor ebx, ebx
push 0x548018
lea edi, [esp + 0x74]
call fcn.00404b40
add esp, 4
push 0x54dc18
lea ecx, [esp + 0x3c]
call fcn.00401e30
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x58]
push ecx
mov ecx, edi
mov byte [esp + 0xc0], 6
call fcn.00405160
add esp, 8
mov eax, 8
mov byte [esp + 0xb8], al
cmp dword [esp + 0x50], eax
jb 0x42813c
mov edx, dword [esp + 0x3c]
push edx
call fcn.004aaa59
add esp, 4
push 0x548018
lea edi, [esp + 0x58]
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], ebx
mov word [esp + 0x40], bx
call fcn.00404b40
add esp, 4
push 0x548018
mov ebx, edi
call fcn.00404bb0
add esp, 4
mov eax, edi
push eax
call fcn.004020c0
mov byte [esp + 0xb8], 5
cmp dword [esp + 0x6c], 8
jb 0x428191
mov ecx, dword [esp + 0x58]
push ecx
call fcn.004aaa59
add esp, 4
cmp dword [esp + 0x84], 0
jne 0x4280e0
lea ecx, [esp + 0x70]
call fcn.00401e70
lea ecx, [esp + 0x8c]
call fcn.00401e70
lea ecx, [esp + 0x1c]
call fcn.00403950
lea ecx, [esp + 0x14]
call fcn.0043b960
mov al, 1
jmp 0x4281d3
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor al, al
mov ecx, dword [esp + 0xb0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x98]
xor ecx, esp
call fcn.004ead41
mov esp, ebp
pop ebp
ret 8