Function at 0x10007eeb
Capabilities:
Read file on windows

Disassembly:
sub esp, 0x38
mov eax, dword [0x1003102c]
xor eax, esp
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x40]
push ebp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x48]
push 0x30032
mov dword [esp + 8], eax
call fcn.10019322
mov ebp, eax
pop ecx
test ebp, ebp
jne 0x10007f23
or eax, 0xffffffff
jmp 0x100080a6
push ebx
push esi
push edi
mov edi, dword [esp + 0x4c]
push ebp
push edi
call fcn.100078f5
pop ecx
pop ecx
mov ecx, eax
mov dword [esp + 0x18], eax
and ecx, edx
mov dword [esp + 0x1c], edx
cmp ecx, 0xffffffff
je 0x10008097
mov eax, 0x400
push eax
push ebp
push edi
call fcn.10017328
mov esi, eax
add esp, 0xc
test esi, esi
js 0x10008097
movzx edx, byte [ebp + 3]
mov ebx, ebp
movzx ecx, byte [ebp + 2]
movzx eax, byte [ebp + 1]
shl edx, 8
or edx, ecx
shl edx, 8
or edx, eax
movzx eax, byte [ebp]
shl edx, 8
or edx, eax
cmp edx, 0x2014b50
jne 0x10008097
cmp esi, 0x2e
jge 0x10007fbb
push esi
push ebx
push ebp
call fcn.1000ba80
mov ebx, eax
lea ecx, [esi + ebp]
mov eax, 0x400
push eax
push ecx
push edi
call fcn.10017328
add esp, 0x18
test eax, eax
jle 0x10008097
add esi, eax
movzx edx, byte [ebx + 0x21]
movzx eax, byte [ebx + 0x20]
movzx ecx, byte [ebx + 0x1f]
shl edx, 8
or edx, eax
shl ecx, 8
movzx eax, byte [ebx + 0x1e]
or ecx, eax
movzx eax, byte [ebx + 0x1c]
add edx, ecx
movzx ecx, byte [ebx + 0x1d]
shl ecx, 8
or eax, ecx
add eax, 0x2e
add eax, edx
mov dword [esp + 0x14], eax
add eax, 4
cmp esi, eax
jge 0x1000802c
cmp ebx, ebp
je 0x10008005
push esi
push ebx
push ebp
call fcn.1000ba80
add esp, 0xc
mov ebx, eax
mov eax, dword [esp + 0x14]
mov ecx, 0x400
sub eax, esi
add eax, 4
cmp eax, ecx
cmovl eax, ecx
push eax
lea eax, [esi + ebp]
push eax
push edi
call fcn.10017328
add esp, 0xc
test eax, eax
jle 0x10008097
add esi, eax
push dword [esp + 0x10]
call fcn.10013dc0
movzx edx, byte [ebx + 0x1d]
pop ecx
movzx ecx, byte [ebx + 0x1c]
shl edx, 8
or edx, ecx
cmp edx, eax
jne 0x10008065
push dword [esp + 0x10]
call fcn.10013dc0
push eax
push dword [esp + 0x18]
lea eax, [ebx + 0x2e]
push eax
call fcn.10019322
add esp, 0x10
test eax, eax
je 0x100080b6
add ebx, dword [esp + 0x14]
sub esi, dword [esp + 0x14]
movzx ecx, byte [ebx + 3]
movzx eax, byte [ebx + 2]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx]
shl ecx, 8
or ecx, eax
cmp ecx, 0x2014b50
je 0x10007f8f
or esi, 0xffffffff
push ebp
call fcn.10019322
pop ecx
pop edi
mov eax, esi
pop esi
pop ebx
mov ecx, dword [esp + 0x38]
pop ebp
xor ecx, esp
call fcn.10009534
add esp, 0x38
ret
movzx eax, byte [ebx + 0x2d]
cdq
mov esi, eax
mov ecx, edx
movzx eax, byte [ebx + 0x2c]
shld ecx, esi, 8
cdq
shl esi, 8
or ecx, edx
or esi, eax
movzx eax, byte [ebx + 0x2b]
shld ecx, esi, 8
cdq
shl esi, 8
or ecx, edx
or esi, eax
movzx eax, byte [ebx + 0x2a]
shld ecx, esi, 8
cdq
shl esi, 8
or ecx, edx
or esi, eax
add esi, dword [esp + 0x18]
push 0
adc ecx, dword [esp + 0x20]
push ecx
push esi
push edi
call fcn.10019322
xor esi, esi
add esp, 0x10
cmp edx, esi
jl 0x10008097
jg 0x10008110
cmp eax, esi
jb 0x10008097
push 0x1e
lea eax, [esp + 0x28]
push eax
push edi
call fcn.10017328
add esp, 0xc
test eax, eax
js 0x10008097
movzx ecx, byte [esp + 0x27]
movzx eax, byte [esp + 0x26]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x25]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x24]
shl ecx, 8
or ecx, eax
cmp ecx, 0x4034b50
jne 0x10008097
movzx ecx, byte [ebx + 0x1b]
movzx eax, byte [ebx + 0x1a]
mov edx, dword [esp + 0x20]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x19]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x18]
shl ecx, 8
or ecx, eax
mov dword [edx], ecx
movzx ecx, byte [ebx + 0x17]
movzx eax, byte [ebx + 0x16]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x15]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x14]
shl ecx, 8
or ecx, eax
mov dword [edx + 4], ecx
movzx eax, byte [ebx + 0x2d]
cdq
movzx ecx, byte [esp + 0x3f]
mov esi, eax
movzx eax, byte [ebx + 0x2c]
mov edi, edx
shld edi, esi, 8
cdq
or edi, edx
shl esi, 8
or esi, eax
shl ecx, 8
movzx eax, byte [ebx + 0x2b]
shld edi, esi, 8
cdq
or edi, edx
shl esi, 8
or esi, eax
movzx eax, byte [ebx + 0x2a]
shld edi, esi, 8
cdq
shl esi, 8
or edi, edx
or esi, eax
movzx eax, byte [esp + 0x3e]
or ecx, eax
movzx eax, byte [esp + 0x40]
add esi, ecx
movzx ecx, byte [esp + 0x41]
push 0
pop edx
adc edi, edx
shl ecx, 8
or ecx, eax
add esi, ecx
adc edi, edx
add esi, dword [esp + 0x18]
adc edi, dword [esp + 0x1c]
add esi, 0x1e
adc edi, edx
mov edx, dword [esp + 0x20]
mov dword [edx + 8], esi
mov dword [edx + 0xc], edi
movzx ecx, byte [ebx + 0xb]
movzx eax, byte [ebx + 0xa]
shl ecx, 8
or ecx, eax
xor esi, esi
mov dword [edx + 0x10], ecx
jmp 0x1000809a