Function at 0x10007f90
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
test esi, esi
je 0x10008053
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x10008053
cmp dword [esi + 8], 1
jne 0x1000801c
mov edx, dword [edi]
mov ecx, dword [esi + 0x10]
cmp edx, ecx
jae 0x10007ffb
mov eax, dword [0x10099970]
cmp eax, 0x10099970
je 0x100080f5
test byte [eax + 0x1c], 0x10
je 0x100080f5
cmp byte [eax + 0x19], 2
jb 0x100080f5
push ecx
push edx
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.10007ca0
add esp, 0x10
mov eax, 0xfffffffe
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
test ecx, ecx
je 0x10008011
push ecx
push dword [esi + 0xc]
push dword [ebp + 0xc]
call fcn.1002f550
mov ecx, dword [esi + 0x10]
add esp, 0xc
mov dword [edi], ecx
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
mov ecx, dword [esi + 0xc]
test ecx, ecx
jne 0x1000805f
mov eax, dword [0x10099970]
cmp eax, 0x10099970
je 0x10008053
test byte [eax + 0x1c], 0x10
je 0x10008053
cmp byte [eax + 0x19], 2
jb 0x10008053
push dword [eax + 0x14]
mov edx, 0x10090010
mov ecx, 0xb
push dword [eax + 0x10]
call fcn.10007c80
add esp, 8
pop edi
pop esi
mov eax, 0xfffffffd
pop ebx
pop ebp
ret 0xc
call fcn.10002a00
mov dword [ebp + 0x10], edx
mov ecx, eax
mov dword [ebp + 8], ecx
test edx, edx
jg 0x100080be
jl 0x10008076
test ecx, ecx
jae 0x100080be
mov eax, dword [0x10099970]
cmp eax, 0x10099970
je 0x10008155
test byte [eax + 0x1c], 0x10
je 0x10008155
cmp byte [eax + 0x19], 2
jb 0x10008155
push dword [eax + 0x14]
mov edx, 0x10090010
mov ecx, 0xc
push dword [eax + 0x10]
call fcn.10007c80
add esp, 8
mov eax, 0xfffffff8
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
mov ebx, dword [edi]
xor eax, eax
cmp eax, edx
jg 0x10008101
jl 0x100080cc
cmp ebx, ecx
jae 0x10008101
mov eax, dword [0x10099970]
cmp eax, 0x10099970
je 0x100080f5
test byte [eax + 0x1c], 0x10
je 0x100080f5
cmp byte [eax + 0x19], 2
jb 0x100080f5
push edx
push ecx
push ebx
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.10007cd0
add esp, 0x14
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
pop ebp
ret 0xc
push 0x1008fda0
push dword [esi + 0xc]
call fcn.1004ecf7
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x10008161
mov eax, dword [0x10099970]
cmp eax, 0x10099970
je 0x10008155
test byte [eax + 0x1c], 0x10
je 0x10008155
cmp byte [eax + 0x19], 2
jb 0x10008155
mov esi, dword [esi + 0xc]
call fcn.1004dfce
push esi
mov edx, 0x10090010
lea ecx, [ebx + 0xe]
push dword [eax]
mov eax, dword [0x10099970]
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.10001840
add esp, 0x10
pop edi
pop esi
mov eax, 0xfffffff8
pop ebx
pop ebp
ret 0xc
push ebx
push dword [ebp + 8]
push 1
push dword [ebp + 0xc]
call fcn.1005013f
add esp, 0x10
xor ecx, ecx
cmp eax, dword [ebp + 8]
jne 0x1000817e
cmp ecx, dword [ebp + 0x10]
je 0x100081e0
push ebx
call fcn.1004ea0d
add esp, 4
test eax, eax
je 0x100081e0
mov eax, dword [0x10099970]
cmp eax, 0x10099970
je 0x100081cb
test byte [eax + 0x1c], 0x10
je 0x100081cb
cmp byte [eax + 0x19], 2
jb 0x100081cb
mov esi, dword [esi + 0xc]
call fcn.1004dfce
push esi
mov edx, 0x10090010
mov ecx, 0xf
push dword [eax]
mov eax, dword [0x10099970]
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.10001840
add esp, 0x10
push ebx
call fcn.1004f416
add esp, 4
mov eax, 0xfffffff8
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
push ebx
call fcn.1004f416
mov eax, dword [ebp + 8]
add esp, 4
mov dword [edi], eax
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0xc