Function at 0x403086
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
push ebx
push esi
push edi
xor ebx, ebx
push 0x41fa68
push dword [0x41f9f0]
call fcn.004095ad
add esp, 8
or eax, eax
jne 0x4030cb
movzx edi, word [0x41fa6c]
and edi, 0xf000
xor edx, edx
cmp edi, 0x4000
sete dl
mov dword [ebp - 4], edx
mov edi, edx
mov ebx, edi
or edi, edi
je 0x4030de
xor eax, eax
or ebx, ebx
sete al
dec eax
and eax, 0x43
add eax, 9
jmp 0x4036ed
mov eax, dword [0x41fa78]
mov dword [0x41f9f8], eax
call fcn.004056d0
or eax, eax
je 0x4030fb
mov eax, 9
jmp 0x4036ed
cmp dword [0x41f9c8], 0
jne 0x40311c
call fcn.00407090
mov dword [0x41f9c8], eax
or eax, eax
jne 0x40311c
mov eax, 4
jmp 0x4036ed
cmp dword [0x413218], 0
je 0x40315d
cmp dword [0x413290], 0
je 0x40315d
xor eax, eax
cmp dword [0x413230], 0
sete al
mov dword [0x41328c], eax
push 0
push dword [0x413218]
call fcn.00408f0d
add esp, 8
mov ebx, eax
cmp eax, 2
jle 0x40315d
mov eax, ebx
jmp 0x4036ed
xor eax, eax
mov dword [0x41f9fc], eax
mov eax, dword [0x41f9d0]
mov dword [0x41f9d4], eax
cmp dword [0x41f9f8], 0x101d0
jge 0x403184
mov eax, dword [0x41f9f8]
mov dword [ebp - 8], eax
jmp 0x40318b
mov dword [ebp - 8], 0x101d0
push dword [ebp - 8]
call fcn.004036f2
add esp, 4
mov edi, eax
mov esi, edi
or edi, edi
jne 0x4031aa
call fcn.00403a8d
mov esi, eax
cmp eax, 1
jle 0x4031c0
push dword [0x41f9f4]
call sub.CRTDLL.DLL__close
pop ecx
inc dword [ebp + 8]
mov eax, esi
jmp 0x4036ed
cmp dword [0x413270], 0
jle 0x4031e5
cmp dword [0x413220], 0
jne 0x4031e5
push dword [0x41f9f4]
call sub.CRTDLL.DLL__close
pop ecx
mov eax, esi
jmp 0x4036ed
cmp dword [0x413220], 0
jne 0x403201
cmp word [0x41fa54], 0
je 0x403201
mov dword [ebp - 0xc], 1
jmp 0x403208
mov dword [ebp - 0xc], 0
mov ebx, dword [ebp - 0xc]
mov eax, dword [0x413298]
sub eax, dword [0x41329c]
mov dword [0x41fa00], eax
jge 0x403255
neg eax
push eax
push dword [0x41f9f0]
push 0x421102
push 0x4139c8
call sub.CRTDLL.DLL_sprintf
push 0x401
push eax
push 0x4139c8
push 0x413218
call dword [0x41fc00]
add esp, 0x20
mov esi, 2
jmp 0x4032b5
cmp dword [0x41fa00], 0
jle 0x4032b5
cmp dword [0x41fa60], 0
jne 0x4032b5
cmp dword [0x41fa5c], 0
je 0x4032b5
push dword [0x41f9f0]
push 0x421103
push 0x4139c8
call sub.CRTDLL.DLL_sprintf
push 0x401
push eax
push 0x4139c8
push 0x413218
call dword [0x41fc00]
add esp, 0x1c
mov eax, dword [0x41fa00]
mov dword [0x41fa60], eax
xor esi, esi
mov dword [0x41fa00], esi
mov esi, 2
cmp dword [0x41329c], 0
jne 0x403372
cmp dword [0x41fa5c], 0
jne 0x403372
cmp dword [0x413220], 0
je 0x40331f
cmp dword [0x41323c], 9
jle 0x4032ec
lea eax, [0x42110f]
mov dword [ebp - 0x10], eax
jmp 0x4032f5
lea eax, [0x42110e]
mov dword [ebp - 0x10], eax
push dword [ebp - 0x10]
push str._sEmpty_zipfile._n
push 0x4139c8
call sub.CRTDLL.DLL_sprintf
push 0
push eax
push 0x4139c8
push 0x413218
call dword [0x41fc00]
add esp, 0x1c
jmp 0x40334d
push dword [0x41f9f0]
push 0x421104
push 0x4139c8
call sub.CRTDLL.DLL_sprintf
push 0x401
push eax
push 0x4139c8
push 0x413218
call dword [0x41fc00]
add esp, 0x1c
push dword [0x41f9f4]
call sub.CRTDLL.DLL__close
pop ecx
cmp esi, 1
jle 0x403363
mov dword [ebp - 0x14], esi
jmp 0x40336a
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x14]
jmp 0x4036ed
mov eax, dword [0x41fa60]
add eax, dword [0x41fa00]
mov dword [ebp - 0x10], eax
mov ecx, 0x2000
cdq
idiv ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
sub eax, edx
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x10], 0
jge 0x4033d3
push 0x42105e
push dword [0x41f9f0]
push 0x42105b
push 0x4139c8
call sub.CRTDLL.DLL_sprintf
push 1
push eax
push 0x4139c8
push 0x413218
call dword [0x41fc00]
add esp, 0x20
mov eax, 3
jmp 0x4036ed
mov eax, dword [0x41f9fc]
cmp dword [ebp - 0x18], eax
je 0x403437
push 0
push dword [ebp - 0x18]
push dword [0x41f9f4]
call sub.CRTDLL.DLL__lseek
mov dword [0x41f9fc], eax
push 0x2000
push dword [0x41f9d0]
push dword [0x41f9f4]
call sub.CRTDLL.DLL__read
add esp, 0x18
mov dword [0x41f9d8], eax
or eax, eax
jg 0x40341e
mov eax, 0x33
jmp 0x4036ed
mov eax, dword [ebp - 0x14]
add eax, dword [0x41f9d0]
mov dword [0x41f9d4], eax
mov eax, dword [ebp - 0x14]
sub dword [0x41f9d8], eax
jmp 0x403459
mov eax, dword [0x41f9d4]
sub eax, dword [0x41f9d0]
sub eax, dword [ebp - 0x14]
add dword [0x41f9d8], eax
mov eax, dword [ebp - 0x14]
add eax, dword [0x41f9d0]
mov dword [0x41f9d4], eax
push 4
push 0x4132b4
call fcn.004058df
add esp, 8
or eax, eax
je 0x403488
push 4
push 0x421308
push 0x4132b4
call sub.CRTDLL.DLL_strncmp
add esp, 0xc
or eax, eax
je 0x4035ee
xor eax, eax
mov dword [0x41fa00], eax
mov eax, dword [0x41fa60]
add eax, dword [0x41fa00]
mov dword [ebp - 0x10], eax
mov ecx, 0x2000
cdq
idiv ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
sub eax, edx
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x10], 0
jge 0x4034f0
push 0x42105e
push dword [0x41f9f0]
push 0x42105b
push 0x4139c8
call sub.CRTDLL.DLL_sprintf
push 1
push eax
push 0x4139c8
push 0x413218
call dword [0x41fc00]
add esp, 0x20
mov eax, 3
jmp 0x4036ed
mov eax, dword [0x41f9fc]
cmp dword [ebp - 0x18], eax
je 0x403554
push 0
push dword [ebp - 0x18]
push dword [0x41f9f4]
call sub.CRTDLL.DLL__lseek
mov dword [0x41f9fc], eax
push 0x2000
push dword [0x41f9d0]
push dword [0x41f9f4]
call sub.CRTDLL.DLL__read
add esp, 0x18
mov dword [0x41f9d8], eax
or eax, eax
jg 0x40353b
mov eax, 0x33
jmp 0x4036ed
mov eax, dword [ebp - 0x14]
add eax, dword [0x41f9d0]
mov dword [0x41f9d4], eax
mov eax, dword [ebp - 0x14]
sub dword [0x41f9d8], eax
jmp 0x403576
mov eax, dword [0x41f9d4]
sub eax, dword [0x41f9d0]
sub eax, dword [ebp - 0x14]
add dword [0x41f9d8], eax
mov eax, dword [ebp - 0x14]
add eax, dword [0x41f9d0]
mov dword [0x41f9d4], eax
push 4
push 0x4132b4
call fcn.004058df
add esp, 8
or eax, eax
je 0x4035a1
push 4
push 0x421308
push 0x4132b4
call sub.CRTDLL.DLL_strncmp
add esp, 0xc
or eax, eax
je 0x4035e9
push 0x42105e
push dword [0x41f9f0]
push 0x421105
push 0x4139c8
call sub.CRTDLL.DLL_sprintf
push 0x401
push eax
push 0x4139c8
push 0x413218
call dword [0x41fc00]
push dword [0x41f9f4]
call sub.CRTDLL.DLL__close
add esp, 0x24
mov eax, 3
jmp 0x4036ed
mov esi, 2
mov eax, dword [0x41fa60]
add eax, dword [0x41fa00]
mov dword [ebp - 0x10], eax
mov ecx, 0x2000
cdq
idiv ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
sub eax, edx
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x10], 0
jge 0x40364f
push 0x42105e
push dword [0x41f9f0]
push 0x42105b
push 0x4139c8
call sub.CRTDLL.DLL_sprintf
push 1
push eax
push 0x4139c8
push 0x413218
call dword [0x41fc00]
add esp, 0x20
mov eax, 3
jmp 0x4036ed
mov eax, dword [0x41f9fc]
cmp dword [ebp - 0x18], eax
je 0x4036b0
push 0
push dword [ebp - 0x18]
push dword [0x41f9f4]
call sub.CRTDLL.DLL__lseek
mov dword [0x41f9fc], eax
push 0x2000
push dword [0x41f9d0]
push dword [0x41f9f4]
call sub.CRTDLL.DLL__read
add esp, 0x18
mov dword [0x41f9d8], eax
or eax, eax
jg 0x403697
mov eax, 0x33
jmp 0x4036ed
mov eax, dword [ebp - 0x14]
add eax, dword [0x41f9d0]
mov dword [0x41f9d4], eax
mov eax, dword [ebp - 0x14]
sub dword [0x41f9d8], eax
jmp 0x4036d2
mov eax, dword [0x41f9d4]
sub eax, dword [0x41f9d0]
sub eax, dword [ebp - 0x14]
add dword [0x41f9d8], eax
mov eax, dword [ebp - 0x14]
add eax, dword [0x41f9d0]
mov dword [0x41f9d4], eax
call fcn.0040123c
mov ebx, eax
cmp ebx, esi
jle 0x4036df
mov esi, ebx
push dword [0x41f9f4]
call sub.CRTDLL.DLL__close
pop ecx
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret