Function at 0x44ff10
Capabilities:
Read file on windows

Disassembly:
push ebp
push edi
mov edi, str.read
push esi
push ebx
mov ebx, ecx
mov ecx, 5
sub esp, 0x2c
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov esi, eax
repe cmpsb byte [esi], byte es:[edi]
seta dl
sbb dl, 0
test dl, dl
jne 0x44ffb0
mov eax, dword [esp + 0x48]
mov esi, dword [ebx + 0x60]
cdq
cmp dword [esp + 0x48], esi
mov eax, edx
sbb eax, dword [ebx + 0x64]
mov eax, esi
cmovl eax, dword [esp + 0x48]
mov esi, eax
test eax, eax
je 0x44ffa2
mov ecx, dword [ebx + 4]
mov eax, dword [ecx]
mov edi, dword [eax + 0x18]
cmp edi, 0x4c70d0
jne 0x450172
mov dword [esp + 8], esi
mov dword [esp + 4], ebp
mov eax, dword [ebx + 0x58]
mov eax, dword [eax + 8]
mov dword [esp], eax
call sub.msvcrt.dll__read
test eax, eax
js 0x4500e0
je 0x44ffa2
mov edi, eax
sar edi, 0x1f
sub dword [ebx + 0x60], eax
sbb dword [ebx + 0x64], edi
add dword [ebx + 0x400d0], eax
adc dword [ebx + 0x400d4], edi
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov esi, eax
mov edi, str.write
mov ecx, 6
repe cmpsb byte [esi], byte es:[edi]
seta al
sbb al, 0
test al, al
jne 0x4501bf
mov eax, dword [ebx + 0x74]
cmp dword [ebx + 0x6c], eax
jg 0x4501b5
mov edi, dword [esp + 0x48]
test edi, edi
jg 0x44fff4
jmp 0x450100
sub edi, esi
add ebp, esi
test edi, edi
jle 0x450100
mov esi, dword [ebx + 0x400b0]
mov eax, edi
mov ecx, ebx
cdq
mov eax, edx
cmp edi, esi
sbb eax, dword [ebx + 0x400b4]
mov dword [esp], ebp
cmovl esi, edi
mov dword [esp + 4], esi
call fcn.0044d8b0
sub esp, 8
test al, al
je 0x4500ca
mov eax, dword [ebx + 0x400c4]
fild qword [ebx + 0x400b8]
fild qword [ebx + 0x400c0]
test eax, eax
jns 0x45003f
fadd dword [0x5a7174]
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fdivp st(1)
fstp dword [esp + 4]
mov eax, dword [ebx + 0x400c8]
mov dword [esp], eax
call fcn.00405a90
mov eax, esi
mov edx, dword [ebx + 0x400b0]
mov ecx, dword [ebx + 0x400b4]
sar eax, 0x1f
mov dword [esp + 0x18], esi
sub edx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
sbb ecx, dword [esp + 0x1c]
mov eax, edx
mov dword [ebx + 0x400b0], edx
mov edx, ecx
or edx, eax
mov dword [ebx + 0x400b4], ecx
jne 0x44ffe8
mov ecx, ebx
call fcn.0044da20
test al, al
je 0x4500ca
mov eax, dword [ebx + 0x6c]
add eax, 1
mov dword [ebx + 0x6c], eax
cmp eax, dword [ebx + 0x74]
jg 0x4501b5
mov dword [esp], 1
mov ecx, ebx
call fcn.0044ec80
sub esp, 4
test al, al
jne 0x44ffe8
add esp, 0x2c
mov eax, 0xfffffff6
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov edx, dword [0x677e60]
test edx, edx
je 0x45010e
mov dword [esp + 4], 1
mov dword [esp], 0x677e20
call dword [sym.imp.msvcrt.dll_longjmp]
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 0x4501c9
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov ebx, eax
test eax, eax
je 0x4501c9
mov dword [esp + 4], str.ERROR:_file_read_operation_failed
mov dword [esp], esi
call fcn.004bf1f0
mov dword [esp + 4], ebx
mov dword [esp], esi
call fcn.0042e7f0
mov dword [esp + 4], ebx
mov dword [esp], 0x5a6d2c
call fcn.004bf160
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov eax, dword [ebx + 0x400d0]
mov edx, dword [ebx + 0x400d4]
mov dword [esp], eax
mov dword [esp + 4], edx
call edi
sub esp, 8
test al, al
jne 0x44ff6b
mov dword [esp + 4], 0x5a70a3
mov ecx, ebx
mov dword [esp], 0xfffffff6
call fcn.0044ea90
mov eax, 0xfffffff6
sub esp, 8
jmp 0x44ffa2
mov eax, 0xfffffff7
jmp 0x44ffa2
mov eax, 0xfffffff8
jmp 0x44ffa2
cmp dword [0x677e60], 0
jne 0x4500ea
mov eax, 0x40000
call fcn.0044b100
mov esi, eax
mov eax, 0x40000
call fcn.0044b100
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.004bf1f0
jmp 0x45014a