Function at 0x101df380
Capabilities:
Read file on windows

Disassembly:
mov ecx, dword [esp + 0x10]
sub esp, 0x28
cmp ecx, 0x16
jge 0x101df3a0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x101df39a
mov dword [eax], 0x13
xor eax, eax
add esp, 0x28
ret
mov eax, 0x1002a
cmp ecx, eax
push ebx
mov ebx, dword [esp + 0x30]
cmovl eax, ecx
push 2
neg eax
push eax
push ebx
call dword [sym.imp.MSVCR110.dll_fseek]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x101df3e3
call dword [sym.imp.MSVCR110.dll__errno]
cmp dword [eax], 0x1b
je 0x101df3e3
mov eax, dword [esp + 0x38]
test eax, eax
je 0x101df3dc
mov dword [eax], 4
xor eax, eax
pop ebx
add esp, 0x28
ret
push ebp
push ebx
call dword [sym.imp.MSVCR110.dll_ftell]
push 0x1002a
mov dword [esp + 0x18], eax
call dword [sym.imp.MSVCR110.dll_malloc]
mov ebp, eax
add esp, 8
mov dword [esp + 0xc], ebp
test ebp, ebp
jne 0x101df41d
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x101df415
mov dword [eax], 0xe
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret
push esi
push ebx
call dword [sym.imp.MSVCR110.dll_clearerr]
push ebx
push 0x1002a
push 1
push ebp
call dword [sym.imp.MSVCR110.dll_fread]
mov esi, eax
push ebx
mov dword [esp + 0x24], esi
call dword [sym.imp.MSVCR110.dll_ferror]
add esp, 0x18
test eax, eax
je 0x101df469
mov eax, dword [esp + 0x40]
test eax, eax
je 0x101df456
mov dword [eax], 5
push ebp
call dword [sym.imp.MSVCR110.dll_free]
add esp, 4
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
push edi
or edi, 0xffffffff
or ebx, edi
cmp esi, 0x1002a
sbb esi, esi
push 0
and esi, 0xffffffec
lea eax, [esp + 0x30]
push 0x13
add esi, 0x14
push eax
mov dword [esp + 0x54], 0
add esi, ebp
call fcn.101dcb20
mov eax, dword [esp + 0x1c]
push 4
sub eax, esi
add ebp, 0xffffffee
push 0x104f422c
add eax, ebp
push eax
push esi
call fcn.101df760
mov ebp, eax
add esp, 0x1c
test ebp, ebp
je 0x101df5c1
jmp 0x101df4c0
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x44]
inc ebp
push dword [esp + 0x18]
lea eax, [ebp - 1]
push eax
push dword [esp + 0x24]
push dword [esp + 0x2c]
push dword [esp + 0x54]
call fcn.101df850
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x101df597
mov eax, dword [esp + 0x48]
test eax, eax
je 0x101df563
test ebx, ebx
jg 0x101df518
jl 0x101df502
test edi, edi
jne 0x101df518
lea ecx, [esp + 0x2c]
push ecx
push eax
push dword [esp + 0x44]
call fcn.101df010
add esp, 0xc
mov edi, eax
mov ebx, edx
lea eax, [esp + 0x2c]
push eax
push esi
push dword [esp + 0x44]
call fcn.101df010
mov ecx, edx
add esp, 0xc
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
cmp ebx, ecx
jg 0x101df558
jl 0x101df53e
cmp edi, eax
jae 0x101df558
push dword [esp + 0x48]
call fcn.101daa70
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x48], esi
jmp 0x101df597
push esi
call fcn.101daa70
add esp, 4
jmp 0x101df597
test byte [esp + 0x40], 4
mov dword [esp + 0x48], esi
je 0x101df586
lea eax, [esp + 0x2c]
push eax
push esi
push dword [esp + 0x44]
call fcn.101df010
add esp, 0xc
mov edi, eax
mov ebx, edx
jmp 0x101df597
xorps xmm0, xmm0
movlpd qword [esp + 0x24], xmm0
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push 4
sub eax, ebp
add ecx, 0xffffffee
push 0x104f422c
add eax, ecx
push eax
push ebp
call fcn.101df760
mov ebp, eax
add esp, 0x10
test ebp, ebp
jne 0x101df4c0
push dword [esp + 0x14]
call dword [sym.imp.MSVCR110.dll_free]
add esp, 4
test ebx, ebx
jg 0x101df5fe
jl 0x101df5d8
test edi, edi
jae 0x101df5fe
push 0
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x4c]
call fcn.101def10
push dword [esp + 0x54]
call fcn.101daa70
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, dword [esp + 0x48]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret