Function at 0x404000
Capabilities:
Read file on windows

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xc
mov edi, ecx
push 2
push 0
push dword [ecx]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fseek
add esp, 0xc
push dword [edi]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_ftell
add esp, 4
mov ebx, eax
push dword [edi]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_rewind
add esp, 4
cmp ebx, 0x16
jge 0x404051
push ebx
push str.Length_is__ld____too_small_n
push 0x4aa9d8
push 3
call fcn.0040ab40
add esp, 0x10
mov ebx, 0xffffffd8
jmp 0x4041c1
push 0x10015
call fcn.00405d60
add esp, 4
lea ecx, [ebx - 0x10015]
xor esi, esi
cmp ebx, 0x10015
cmovg esi, ecx
mov dword [esp], eax
mov ebp, 0x10015
cmovle ebp, ebx
push 0
push esi
push dword [edi]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fseek
add esp, 0xc
test eax, eax
je 0x4040ad
push esi
push str.Failure_seeking_to_end_of_zip_at__ld
push 0x4aa9d8
push 3
call fcn.0040ab40
add esp, 0x10
mov ebx, 0x80000000
mov esi, dword [esp]
jmp 0x4041b8
push dword [edi]
push ebp
push 1
mov esi, dword [esp + 0xc]
push esi
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fread
add esp, 0x10
cmp eax, ebp
jne 0x40414a
mov eax, esi
add eax, ebp
add ebp, 0xfffffffd
mov esi, 0xfffffffc
jmp 0x4040ee
add esi, 0xffffffff
add ebp, 0xffffffff
test ebp, ebp
jle 0x40416f
cmp byte [eax + esi], 0x50
jne 0x4040e0
movzx ecx, byte [eax + esi + 1]
shl ecx, 8
movzx edx, byte [eax + esi + 2]
shl edx, 0x10
or edx, ecx
movzx ecx, byte [eax + esi + 3]
shl ecx, 0x18
or ecx, edx
cmp ecx, 0x6054b00
jne 0x4040e0
lea ecx, [edi + 4]
add eax, esi
neg esi
push esi
push eax
call fcn.00404490
test eax, eax
je 0x4041cb
mov ebx, eax
push esi
push str.Failure_reading__ld_bytes_of_EOCD_values
push 0x4aa9d8
push 3
call fcn.0040ab40
add esp, 0x10
mov esi, dword [esp]
jmp 0x4041b8
push dword [edi]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_feof
add esp, 4
test eax, eax
je 0x40418d
push ebp
push str.fread__ld_bytes_failed__unexpected_EOF
push 0x4aa9d8
push 5
call fcn.0040ab40
add esp, 0x10
jmp 0x4041b3
push str.EOCD_not_found__not_Zip_n
push 0x4aa9d8
push 3
call fcn.0040ab40
add esp, 0xc
mov ebx, 0xffffffd8
mov esi, dword [esp]
jmp 0x4041b8
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
push dword [eax]
call sub.api_ms_win_crt_runtime_l1_1_0.dll_strerror
add esp, 4
push eax
push ebp
push str.fread__ld_bytes_failed___s
push 0x4aa9d8
push 5
call fcn.0040ab40
add esp, 0x14
mov ebx, 0x80000000
push esi
call fcn.00405e40
add esp, 4
mov eax, ebx
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
cmp word [edi + 8], 0
jne 0x40420d
cmp word [edi + 0xa], 0
jne 0x40420d
movzx eax, word [edi + 0xc]
cmp ax, word [edi + 0xe]
jne 0x40420d
push 0
push dword [edi + 0x14]
push dword [edi]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fseek
add esp, 0xc
test eax, eax
mov esi, dword [esp]
je 0x404217
push dword [edi + 0x14]
push str.Failure_seeking_to_central_dir_offset__u_n
push 0x4aa9d8
push 3
jmp 0x404165
push str.Archive_spanning_not_supported_n
jmp 0x404174
cmp word [edi + 0xe], 0
je 0x404297
lea ebp, [edi + 0x24]
xor esi, esi
push 0x64
call fcn.00405c70
add esp, 4
mov word [eax], 0
mov dword [eax + 4], 0x4aaec0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov word [eax + 0x10], 0
xorps xmm0, xmm0
movups xmmword [eax + 0x50], xmm0
mov dword [eax + 0x60], 0
movups xmmword [eax + 0x14], xmm0
movups xmmword [eax + 0x24], xmm0
movups xmmword [eax + 0x34], xmm0
movups xmmword [eax + 0x3e], xmm0
mov dword [esp + 8], eax
mov ecx, eax
push dword [edi]
call fcn.0040af90
test eax, eax
jne 0x404302
mov ecx, ebp
lea eax, [esp + 8]
push eax
call fcn.00403440
add esi, 1
movzx eax, word [edi + 0xe]
cmp esi, eax
jb 0x404223
mov dword [esp + 4], 0
lea eax, [esp + 4]
push dword [edi]
push 4
push 1
push eax
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fread
add esp, 0x10
cmp eax, 4
jne 0x4042e3
xor ebx, ebx
cmp dword [esp + 4], 0x6054b50
mov esi, dword [esp]
je 0x4041b8
push str.EOCD_read_check_failed_n
push 0x4aa9d8
push 3
call fcn.0040ab40
add esp, 0xc
jmp 0x4041b3
push dword [edi]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_feof
add esp, 4
test eax, eax
je 0x404341
push str.fread_EOCD_failed__unexpected_EOF
push 0x4aa9d8
push 5
jmp 0x40417b
mov ebx, eax
push str.initFromCDE_failed_n
push 0x4aa9d8
push 3
call fcn.0040ab40
add esp, 0xc
mov esi, dword [esp + 8]
test esi, esi
je 0x404339
lea ecx, [esi + 0x2c]
call fcn.00405aa0
lea ecx, [esi + 4]
call fcn.00405ae0
push esi
call fcn.00405e10
add esp, 4
mov esi, dword [esp]
jmp 0x4041b8
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
push dword [eax]
call sub.api_ms_win_crt_runtime_l1_1_0.dll_strerror
add esp, 4
push eax
push str.fread_EOCD_failed___s
push 0x4aa9d8
push 5
call fcn.0040ab40
add esp, 0x10
jmp 0x404183