Function at 0x41ee60
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x15c
mov eax, dword [0x58f660]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x158], eax
mov eax, dword [edi + 0x58]
mov esi, edx
mov dword [ebp - 0x154], esi
mov dword [ebp - 0x150], ecx
mov dword [ebp - 0x140], 0
test eax, eax
jns 0x41eeae
mov ecx, dword [esi + 0x1c]
add ecx, eax
mov dword [ebp - 0x13c], ecx
jmp 0x41eeb4
mov dword [ebp - 0x13c], eax
cmp dword [edi + 0x4c], 0x10
lea ebx, [edi + 0x38]
jb 0x41eec7
mov edx, dword [ebx]
mov dword [ebp - 0x148], edx
jmp 0x41eecd
mov dword [ebp - 0x148], ebx
cmp byte [esi + 0xe], 0
je 0x41ef10
push 0x103
lea eax, [ebp - 0x10f]
push 0
push eax
mov byte [ebp - 0x110], 0
call fcn.00518380
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x110]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [ebp - 0x110]
mov dword [ebp - 0x148], edx
mov eax, dword [ebp - 0x148]
push 0x56d83c
push eax
call fcn.00514f68
add esp, 8
mov dword [ebp - 0x144], eax
test eax, eax
jne 0x41efd2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0x18]
cmp byte [ecx + 0x54], 0
je 0x41ef52
cmp dword [ebx + 0x14], 0x10
jb 0x41ef49
mov ebx, dword [ebx]
push eax
push ebx
push 0x56f3d0
jmp 0x41ef61
cmp dword [ebx + 0x14], 0x10
jb 0x41ef5a
mov ebx, dword [ebx]
push eax
push ebx
push str.Failed_to_open_file__s
push 0x597f50
call fcn.00515b45
movzx edx, word [esi + 4]
mov eax, dword [esi + 8]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 0x10
and edx, 0xff
push 0x597f50
or edx, 0x100
shl edx, 0x10
push edx
push 0x178c
push eax
call edi
movzx ecx, word [esi + 4]
mov edx, dword [esi + 8]
and ecx, 0xff
push 0x597f50
shl ecx, 0x10
or ecx, 0x1000001
push ecx
push 0x178c
push edx
call edi
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00514194
mov esp, ebp
pop ebp
ret 8
cmp byte [esi + 0xe], 0
push 0
je 0x41efe3
mov ecx, dword [edi + 0x70]
shl ecx, 9
push ecx
jmp 0x41efe5
push 0
push eax
call fcn.005168b0
mov edi, dword [ebp - 0x144]
add esp, 0xc
xor eax, eax
push edi
push 1
lea edx, [ebp - 0x138]
push 0x1c
push edx
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x134], eax
mov dword [ebp - 0x130], eax
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], eax
mov dword [ebp - 0x120], eax
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], eax
call fcn.00516d6f
add esp, 0x10
cmp eax, 1
je 0x41f0f8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 0x18]
cmp byte [ecx + 0x54], 0
je 0x41f06f
cmp dword [ebx + 0x14], 0x10
jb 0x41f066
mov ebx, dword [ebx]
push eax
push ebx
push 0x56f41c
jmp 0x41f07e
cmp dword [ebx + 0x14], 0x10
jb 0x41f077
mov ebx, dword [ebx]
push eax
push ebx
push str.Failed_to_read_file__s
push 0x597f50
call fcn.00515b45
movzx edx, word [esi + 4]
mov eax, dword [esi + 8]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 0x10
and edx, 0xff
push 0x597f50
or edx, 0x100
shl edx, 0x10
push edx
push 0x178c
push eax
call ebx
movzx ecx, word [esi + 4]
mov edx, dword [esi + 8]
and ecx, 0xff
push 0x597f50
shl ecx, 0x10
or ecx, 0x1000001
push ecx
push 0x178c
push edx
call ebx
push edi
call fcn.0051513f
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00514194
mov esp, ebp
pop ebp
ret 8
cmp dword [ebp - 0x138], 0xed26ff3a
je 0x41f1a7
mov eax, dword [esi + 0x18]
cmp byte [eax + 0x54], 0
je 0x41f121
cmp dword [ebx + 0x14], 0x10
jb 0x41f119
mov ebx, dword [ebx]
push ebx
push 0x56f468
jmp 0x41f12f
cmp dword [ebx + 0x14], 0x10
jb 0x41f129
mov ebx, dword [ebx]
push ebx
push str.Incorrect_information_header_of_the_file__s
push 0x597f50
call fcn.00515b45
movzx ecx, word [esi + 4]
mov edx, dword [esi + 8]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 0xc
and ecx, 0xff
push 0x597f50
or ecx, 0x100
shl ecx, 0x10
push ecx
push 0x178c
push edx
call ebx
movzx eax, word [esi + 4]
mov ecx, dword [esi + 8]
and eax, 0xff
push 0x597f50
shl eax, 0x10
or eax, 0x1000001
push eax
push 0x178c
push ecx
call ebx
push edi
call fcn.0051513f
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00514194
mov esp, ebp
pop ebp
ret 8
cmp word [ebp - 0x134], 1
je 0x41f254
mov edx, dword [esi + 0x18]
cmp byte [edx + 0x54], 0
je 0x41f1ce
cmp dword [ebx + 0x14], 0x10
jb 0x41f1c6
mov ebx, dword [ebx]
push ebx
push 0x56f4a8
jmp 0x41f1dc
cmp dword [ebx + 0x14], 0x10
jb 0x41f1d6
mov ebx, dword [ebx]
push ebx
push str.Unknown_information_header_version_of_the_file__s
push 0x597f50
call fcn.00515b45
movzx eax, word [esi + 4]
mov ecx, dword [esi + 8]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
add esp, 0xc
and eax, 0xff
push 0x597f50
or eax, 0x100
shl eax, 0x10
push eax
push 0x178c
push ecx
call ebx
movzx edx, word [esi + 4]
mov eax, dword [esi + 8]
and edx, 0xff
push 0x597f50
shl edx, 0x10
or edx, 0x1000001
push edx
push 0x178c
push eax
call ebx
push edi
call fcn.0051513f
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00514194
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 0x130]
cmp ax, 0x1c
jbe 0x41f272
movzx ecx, ax
push 1
sub ecx, 0x1c
push ecx
push edi
call fcn.005168b0
add esp, 0xc
movzx eax, word [esi + 4]
mov edx, dword [ebp - 0x124]
mov ecx, dword [esi + 8]
and eax, 0xff
push edx
shl eax, 0x10
or eax, 2
push eax
push 0x178c
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
xor ebx, ebx
mov dword [ebp - 0x14c], ebx
cmp dword [ebp - 0x124], ebx
jbe 0x41f453
lea esp, [esp]
push edi
push 1
lea edx, [ebp - 0x11c]
push 0xc
push edx
call fcn.00516d6f
add esp, 0x10
cmp eax, 1
jne 0x41f495
mov cx, word [ebp - 0x12e]
cmp cx, 0xc
jbe 0x41f2f2
push eax
movzx eax, cx
sub eax, 0xc
push eax
push edi
call fcn.005168b0
mov cx, word [ebp - 0x12e]
add esp, 0xc
mov edx, dword [ebp - 0x11c]
movzx eax, dx
sub eax, 0xcac1
je 0x41f369
sub eax, 2
jne 0x41f4ab
push str.Close_file__n
call fcn.0051668e
movzx ecx, word [ebp - 0x12e]
add esp, 4
cmp dword [ebp - 0x114], ecx
jne 0x41f4be
mov eax, dword [ebp - 0x12c]
mov ecx, dword [ebp - 0x118]
imul eax, ecx
mov edx, eax
and edx, 0x800001ff
jns 0x41f34c
dec edx
or edx, 0xfffffe00
inc edx
jne 0x41f4ce
cdq
and edx, 0x1ff
add eax, edx
sar eax, 9
add dword [ebp - 0x13c], eax
jmp 0x41f424
mov eax, dword [ebp - 0x12c]
imul eax, dword [ebp - 0x118]
movzx ecx, cx
add ecx, eax
cmp dword [ebp - 0x114], ecx
jne 0x41f4de
mov edx, eax
and edx, 0x800001ff
jns 0x41f399
dec edx
or edx, 0xfffffe00
inc edx
jne 0x41f50e
mov edi, eax
test edi, edi
je 0x41f418
mov ebx, 0x400000
cmp edi, 0x400000
ja 0x41f3b4
mov ebx, edi
mov eax, dword [ebp - 0x144]
mov esi, dword [ebp - 0x150]
push eax
push 1
push ebx
push esi
call fcn.00516d6f
add esp, 0x10
cmp eax, 1
jne 0x41f4ee
mov eax, dword [ebp - 0x13c]
cdq
shld edx, eax, 9
push edx
shl eax, 9
push eax
push esi
mov esi, dword [ebp - 0x158]
call fcn.0041f540
add esp, 0xc
test eax, eax
jne 0x41f52c
sub edi, ebx
shr ebx, 9
add dword [ebp - 0x13c], ebx
test edi, edi
jne 0x41f3a5
mov ebx, dword [ebp - 0x14c]
mov esi, dword [ebp - 0x154]
mov ecx, dword [ebp - 0x118]
mov edi, dword [ebp - 0x144]
mov edx, dword [esi + 4]
mov eax, dword [esi + 8]
add dword [ebp - 0x140], ecx
push 3
push edx
push eax
xor eax, eax
mov ecx, ebx
call fcn.00416ca0
inc ebx
add esp, 0xc
mov dword [ebp - 0x14c], ebx
cmp ebx, dword [ebp - 0x124]
jb 0x41f2b0
mov eax, dword [ebp - 0x128]
mov ecx, dword [ebp - 0x140]
cmp eax, ecx
je 0x41f521
push eax
push ecx
push str.Wrote__d_blocks__expected_to_write__d_blocks__n
call fcn.0051668e
add esp, 0xc
push edi
call fcn.0051513f
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00514194
mov esp, ebp
pop ebp
ret 8
call fcn.00517747
mov ecx, dword [eax]
mov edx, dword [ebp - 0x148]
push ecx
push edx
push str.read_file__s_failed__errno_d_n
jmp 0x41f46e
movzx eax, dx
push eax
push str.Unkown_chunk_type_0x_x__n
call fcn.0051668e
add esp, 8
jmp 0x41f476
push ebx
push str.Bogus_chunk_size_for_chunk__d__type_Dont_Care__n
call fcn.0051668e
add esp, 8
jmp 0x41f476
push eax
push str.Number_of_bytes_skipped__d_is_not_a_sector_multiple__n
call fcn.0051668e
add esp, 8
jmp 0x41f476
push ebx
push str.Bogus_chunk_size_for_chunk__d__type_RAW__n
call fcn.0051668e
add esp, 8
jmp 0x41f476
call fcn.00517747
mov ecx, dword [eax]
push ecx
push str.Read_file_failed_in_process_raw_chunk__errno_d__n
call fcn.0051668e
mov edi, dword [ebp - 0x144]
add esp, 8
jmp 0x41f476
push eax
push str.File_chunk_size__d_is_not_a_sector_multiple__n
call fcn.0051668e
add esp, 8
jmp 0x41f476
push edi
call fcn.0051513f
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00514194
mov esp, ebp
pop ebp
ret 8