Function at 0x454af0
Capabilities:
Get file size
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x4f4c19
mov eax, dword fs:[0]
push eax
sub esp, 0xe0
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5e4ce0]
xor eax, esp
push eax
lea eax, [esp + 0xf4]
mov dword fs:[0], eax
mov esi, ecx
cmp byte [esi + 4], 0xdb
je 0x454b2c
mov byte [0], 0x78
mov eax, dword [esi + 8]
xor ebx, ebx
cmp eax, ebx
je 0x454b46
cmp byte [esi + 5], bl
jne 0x454b43
push eax
call fcn.004cac16
add esp, 4
mov dword [esi + 8], ebx
lea ecx, [esp + 0x3c]
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov byte [esi + 5], bl
call fcn.004537d0
mov eax, dword [esp + 0x104]
push eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x100], ebx
call fcn.00453a00
mov edi, dword [esp + 0x108]
lea ecx, [esp + 0x3c]
push edi
push ecx
call fcn.00456880
mov ebp, eax
add esp, 8
cmp ebp, 0xffffffff
mov dword [esp + 0x1c], ebp
je 0x454bec
push ebx
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x454c07
test edi, edi
je 0x454be1
lea ecx, [esp + 0x20]
call fcn.00451c20
lea ecx, [esp + 0x20]
mov byte [esp + 0xfc], 1
call fcn.00453240
mov esi, dword [edi]
lea ecx, [esp + 0x20]
call fcn.004c06c0
mov edx, dword [esi + 0x10]
push eax
mov ecx, edi
call edx
lea ecx, [esp + 0x20]
mov byte [esp + 0xfc], 0
call fcn.00451e70
push 0
push ebp
call fcn.004661e0
add esp, 8
lea ecx, [esp + 0x3c]
mov dword [esp + 0xfc], 0xffffffff
call fcn.00453880
xor al, al
jmp 0x454d6e
test ebx, ebx
jne 0x454c30
push ebx
push ebp
call fcn.004661e0
add esp, 8
lea ecx, [esp + 0x3c]
mov dword [esp + 0xfc], 0xffffffff
call fcn.00453880
mov al, 1
jmp 0x454d6e
lea ebp, [ebx + 4]
push ebp
call fcn.004cabe6
push ebp
push 0
push eax
mov dword [esi + 8], eax
call fcn.004db150
mov ecx, dword [esi + 8]
add esp, 0x10
push 0
lea eax, [esp + 0x1c]
push eax
push ebx
mov dword [esi + 0x10], ebp
mov ebp, dword [esp + 0x28]
push ecx
push ebp
mov dword [esi + 0xc], ebx
mov dword [esp + 0x2c], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov byte [esp + 0x17], 1
jne 0x454d2e
test edi, edi
je 0x454d29
lea ecx, [esp + 0x20]
call fcn.00451c20
lea ecx, [esp + 0x20]
mov byte [esp + 0xfc], 2
call fcn.00453240
mov esi, dword [edi]
lea ecx, [esp + 0x20]
call fcn.004c06c0
mov edx, dword [esi + 0x10]
push eax
mov ecx, edi
call edx
mov ecx, dword [esp + 0x104]
mov eax, dword [edi]
mov edx, dword [eax + 0x28]
push ecx
push str.filename
mov ecx, edi
call edx
lea ecx, [esp + 0x98]
call fcn.004537d0
lea eax, [esp + 0x98]
push eax
mov byte [esp + 0x100], 3
call fcn.00455e10
mov esi, dword [edi]
add esp, 4
lea ecx, [esp + 0x98]
call fcn.00453f00
mov edx, dword [esi + 0x28]
push eax
push str.current_dir
mov ecx, edi
call edx
lea ecx, [esp + 0x98]
mov byte [esp + 0xfc], 2
call fcn.00453880
lea ecx, [esp + 0x20]
mov byte [esp + 0xfc], 0
call fcn.00451e70
mov byte [esp + 0x17], 0
cmp dword [esp + 0x18], ebx
je 0x454d4b
test edi, edi
je 0x454d46
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
push str.Failed_to_read_the_entire_file
mov ecx, edi
call edx
mov byte [esp + 0x17], 0
push 0
push ebp
call fcn.004661e0
add esp, 8
lea ecx, [esp + 0x3c]
mov dword [esp + 0xfc], 0xffffffff
call fcn.00453880
mov al, byte [esp + 0x17]
mov ecx, dword [esp + 0xf4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xec
ret 8