Function at 0x4543e0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, ecx
push edi
push esi
push ebx
sub esp, 0x2c
mov ebx, dword [esp + 0x40]
mov dword [esp + 4], str.read
mov dword [esp], ebx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x454480
mov eax, dword [esp + 0x48]
mov ecx, dword [ebp + 0x60]
mov ebx, dword [ebp + 0x64]
cdq
cmp ecx, eax
sbb ebx, edx
mov ebx, ecx
cmovge ebx, eax
mov eax, ebx
test ebx, ebx
je 0x454476
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 0x400d4]
mov eax, dword [ecx]
mov esi, dword [eax + 0x18]
mov eax, dword [ebp + 0x400d0]
cmp esi, 0x4c9860
jne 0x454652
mov eax, dword [esp + 0x44]
mov dword [esp + 8], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x58]
mov eax, dword [eax + 8]
mov dword [esp], eax
call sub.msvcrt.dll__read
test eax, eax
js 0x4545b8
je 0x454476
mov ebx, eax
sar ebx, 0x1f
sub dword [ebp + 0x60], eax
sbb dword [ebp + 0x64], ebx
add dword [ebp + 0x400d0], eax
adc dword [ebp + 0x400d4], ebx
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov dword [esp + 4], str.write
mov dword [esp], ebx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x454693
mov eax, dword [ebp + 0x74]
cmp dword [ebp + 0x6c], eax
jg 0x454689
mov eax, dword [esp + 0x48]
mov dword [esp + 0x14], eax
test eax, eax
jg 0x4544d0
jmp 0x4545e0
mov edi, dword [esp + 0x18]
sub dword [esp + 0x14], edi
mov eax, dword [esp + 0x14]
add dword [esp + 0x44], ebx
test eax, eax
jle 0x4545e0
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 0x400b0]
mov ebx, dword [ebp + 0x400b4]
cdq
cmp ecx, eax
sbb ebx, edx
cmovge ecx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], ecx
mov ebx, ecx
mov dword [esp], eax
mov dword [esp + 0x18], ecx
mov ecx, ebp
call fcn.00451d70
sub esp, 8
test al, al
je 0x4545a6
mov eax, dword [ebp + 0x400c4]
fild qword [ebp + 0x400b8]
fild qword [ebp + 0x400c0]
test eax, eax
jns 0x454527
fadd dword [0x5a9414]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
mov eax, dword [ebp + 0x400c8]
mov dword [esp], eax
fdivp st(1)
fstp dword [esp + 4]
call fcn.004057e0
mov esi, dword [esp + 0x18]
mov eax, dword [ebp + 0x400b0]
mov edx, dword [ebp + 0x400b4]
mov edi, esi
sar edi, 0x1f
sub eax, esi
sbb edx, edi
mov dword [ebp + 0x400b0], eax
mov dword [ebp + 0x400b4], edx
or edx, eax
jne 0x4544b8
mov ecx, ebp
call fcn.00451ee0
test al, al
je 0x4545a6
mov eax, dword [ebp + 0x6c]
add eax, 1
mov dword [ebp + 0x6c], eax
cmp eax, dword [ebp + 0x74]
jg 0x454689
mov dword [esp], 1
mov ecx, ebp
call fcn.00453130
sub esp, 4
test al, al
jne 0x4544b8
add esp, 0x2c
mov eax, 0xfffffff6
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov edx, dword [0x678a20]
test edx, edx
je 0x4545ee
mov dword [esp + 4], 1
mov dword [esp], 0x6789e0
call dword [sym.imp.msvcrt.dll_longjmp]
lea esi, [esi]
nop
mov eax, dword [esp + 0x48]
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov esi, eax
test eax, eax
je 0x45469d
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov ebx, eax
test eax, eax
je 0x45469d
mov dword [esp + 4], str.ERROR:_file_read_operation_failed
mov dword [esp], esi
call fcn.004c1a60
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.00432f50
mov dword [esp + 4], ebx
mov dword [esp], 0x5a8fcc
call fcn.004c19d0
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [esp], eax
mov dword [esp + 4], edx
call esi
sub esp, 8
test al, al
jne 0x45443b
mov dword [esp + 4], 0x5a9343
mov ecx, ebp
mov dword [esp], 0xfffffff6
call fcn.00452f40
mov eax, 0xfffffff6
sub esp, 8
jmp 0x454476
mov eax, 0xfffffff7
jmp 0x454476
mov eax, 0xfffffff8
jmp 0x454476
cmp dword [0x678a20], 0
jne 0x4545c2
mov eax, 0x40000
call fcn.0044f640
mov esi, eax
mov eax, 0x40000
call fcn.0044f640
mov dword [esp + 8], 0x40000
mov dword [esp + 4], str.ERROR:_cant_alloc__lu_memory_bytes
mov ebx, eax
mov dword [esp], esi
call fcn.004c1a60
jmp 0x45462a