Function at 0x45b6d0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
push esi
push edi
cmp eax, 0x10016
jl 0x45b6e8
mov eax, 0x10016
mov ebx, dword [ebp + 8]
push 2
neg eax
push eax
push ebx
call dword [sym.imp.MSVCR100.dll_fseek]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x45b720
call dword [sym.imp.MSVCR100.dll__errno]
cmp dword [eax], 0x1b
je 0x45b720
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x45b717
mov dword [eax], 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
call dword [sym.imp.MSVCR100.dll_ftell]
add esp, 4
push 0x10016
mov dword [esp + 0x20], eax
call dword [sym.imp.MSVCR100.dll_malloc]
mov esi, eax
add esp, 4
mov dword [esp + 0x14], esi
test esi, esi
jne 0x45b75c
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x45b753
mov dword [eax], 0xe
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
call dword [sym.imp.MSVCR100.dll_clearerr]
add esp, 4
push ebx
push 0x10016
push 1
push esi
call dword [sym.imp.MSVCR100.dll_fread]
mov edi, eax
push ebx
mov dword [esp + 0x2c], edi
call dword [sym.imp.MSVCR100.dll_ferror]
add esp, 0x14
test eax, eax
je 0x45b7a9
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x45b796
mov dword [eax], 5
push esi
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor eax, eax
add edi, 0xffffffee
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], 0x13
mov dword [esp + 0x28], eax
call fcn.0045b8f0
mov esi, eax
test esi, esi
je 0x45b8a9
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x24]
push eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x24]
inc esi
lea edx, [esi - 1]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x2c]
push ebx
call fcn.0045af20
mov edi, eax
add esp, 0x18
test edi, edi
je 0x45b88c
mov eax, dword [esp + 0x10]
test eax, eax
je 0x45b865
cmp dword [esp + 0xc], 0
jg 0x45b826
lea edx, [esp + 0x24]
push edx
push eax
push ebx
call fcn.0045b270
add esp, 0xc
mov dword [esp + 0xc], eax
lea eax, [esp + 0x24]
push eax
push edi
push ebx
call fcn.0045b270
add esp, 0xc
mov dword [esp + 0x20], eax
cmp dword [esp + 0xc], eax
jge 0x45b859
mov ebx, dword [esp + 0x10]
call fcn.0045bdc0
mov ecx, dword [esp + 0x20]
mov ebx, dword [ebp + 8]
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ecx
jmp 0x45b88c
mov ebx, edi
call fcn.0045bdc0
mov ebx, dword [ebp + 8]
jmp 0x45b88c
test byte [ebp + 0xc], 4
mov dword [esp + 0x10], edi
je 0x45b884
lea edx, [esp + 0x24]
push edx
push edi
push ebx
call fcn.0045b270
add esp, 0xc
mov dword [esp + 0xc], eax
jmp 0x45b88c
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
sub eax, esi
lea edi, [eax + ecx - 0x12]
call fcn.0045b8f0
mov esi, eax
test esi, esi
jne 0x45b7d5
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.MSVCR100.dll_free]
add esp, 4
cmp dword [esp + 0xc], 0
jge 0x45b8de
mov ebx, dword [ebp + 0x10]
xor ecx, ecx
lea eax, [esp + 0x24]
call fcn.0045aee0
mov ebx, dword [esp + 0x10]
call fcn.0045bdc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret