Function at 0x4169c2
Capabilities:
Read file on windows

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x1e0
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
movabs rax, 0xb0
mov r10, rax
mov rcx, r10
call sub.msvcrt.dll_malloc
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
cmp rax, 0
jne 0x416a40
movzx eax, byte [0x00418108]
cmp eax, 0
je 0x416a3b
call sub.user32.dll_GetFocus
mov ecx, 0
mov r9, rcx
lea rcx, [0x0041c137]
mov r8, rcx
lea rcx, [0x0041c128]
mov r11, rcx
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_MessageBoxA
call fcn.00401bf5
mov rax, qword [rbp - 8]
add rax, 0x70
mov ecx, dword [rbp + 0x18]
mov qword [rbp - 0x30], rax
cmp ecx, 0
je 0x416aaf
movabs rax, 0
mov qword [rsp + 0x30], rax
mov eax, 0
mov qword [rsp + 0x28], rax
mov eax, 3
mov qword [rsp + 0x20], rax
movabs rax, 0
mov r9, rax
mov eax, 1
mov r8, rax
mov eax, 0x80000000
mov r11, rax
mov rax, qword [rbp + 0x10]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_CreateFileW
jmp 0x416b06
movabs rax, 0
mov qword [rsp + 0x30], rax
mov eax, 0
mov qword [rsp + 0x28], rax
mov eax, 3
mov qword [rsp + 0x20], rax
movabs rax, 0
mov r9, rax
mov eax, 1
mov r8, rax
mov eax, 0x80000000
mov r11, rax
mov rax, qword [rbp + 0x10]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_CreateFileA
jmp 0x416b06
mov rcx, qword [rbp - 0x30]
mov qword [rcx], rax
mov rax, qword [rbp - 8]
add rax, 0x70
mov rcx, qword [rax]
cmp rcx, 0xffffffffffffffff
jne 0x416bc8
mov eax, dword [rbp + 0x18]
cmp eax, 0
je 0x416b59
mov rax, qword [rbp + 0x10]
mov r8, rax
lea rax, str.Failed_to_open_image_file__ws._n
mov r11, rax
lea rax, [rbp - 0x130]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_wsprintfA
jmp 0x416b84
mov rax, qword [rbp + 0x10]
mov r8, rax
lea rax, str.Failed_to_open_image_file__s._n
mov r11, rax
lea rax, [rbp - 0x130]
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_wsprintfA
jmp 0x416b84
movzx eax, byte [0x00418108]
cmp eax, 0
je 0x416bc3
call sub.user32.dll_GetFocus
mov ecx, 0
mov r9, rcx
lea rcx, [0x0041c17c]
mov r8, rcx
lea rcx, [rbp - 0x130]
mov r11, rcx
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_MessageBoxA
call fcn.00401bf5
mov rax, qword [rbp - 8]
add rax, 0x70
movabs rcx, 0
mov qword [rsp + 0x20], rcx
lea rcx, [rbp - 0x24]
mov r9, rcx
mov ecx, 0xc
mov r8, rcx
mov rcx, qword [rbp - 8]
mov r11, rcx
mov rcx, qword [rax]
mov r10, rcx
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_ReadFile
mov rax, qword [rbp - 8]
movzx ecx, word [rax]
cmp ecx, 0xda01
jne 0x416d68
mov rax, qword [rbp - 8]
add rax, 2
mov rcx, qword [rbp - 8]
add rcx, 2
movzx edx, word [rcx]
and edx, 0xff
shl edx, 8
mov rcx, qword [rbp - 8]
add rcx, 2
mov qword [rbp - 0x138], rax
movzx eax, word [rcx]
and eax, 0xff00
sar eax, 8
or edx, eax
mov rax, qword [rbp - 0x138]
mov word [rax], dx
mov rax, qword [rbp - 8]
add rax, 4
mov rcx, qword [rbp - 8]
add rcx, 4
movzx edx, word [rcx]
and edx, 0xff
shl edx, 8
mov rcx, qword [rbp - 8]
add rcx, 4
mov qword [rbp - 0x140], rax
movzx eax, word [rcx]
and eax, 0xff00
sar eax, 8
or edx, eax
mov rax, qword [rbp - 0x140]
mov word [rax], dx
mov rax, qword [rbp - 8]
add rax, 6
mov rcx, qword [rbp - 8]
add rcx, 6
movzx edx, word [rcx]
and edx, 0xff
shl edx, 8
mov rcx, qword [rbp - 8]
add rcx, 6
mov qword [rbp - 0x148], rax
movzx eax, word [rcx]
and eax, 0xff00
sar eax, 8
or edx, eax
mov rax, qword [rbp - 0x148]
mov word [rax], dx
mov rax, qword [rbp - 8]
add rax, 8
mov rcx, qword [rbp - 8]
add rcx, 8
movzx edx, word [rcx]
and edx, 0xff
shl edx, 8
mov rcx, qword [rbp - 8]
add rcx, 8
mov qword [rbp - 0x150], rax
movzx eax, word [rcx]
and eax, 0xff00
sar eax, 8
or edx, eax
mov rax, qword [rbp - 0x150]
mov word [rax], dx
mov rax, qword [rbp - 8]
add rax, 0xa
mov rcx, qword [rbp - 8]
add rcx, 0xa
movzx edx, word [rcx]
and edx, 0xff
shl edx, 8
mov rcx, qword [rbp - 8]
add rcx, 0xa
mov qword [rbp - 0x158], rax
movzx eax, word [rcx]
and eax, 0xff00
sar eax, 8
or edx, eax
mov rax, qword [rbp - 0x158]
mov word [rax], dx
mov rax, qword [rbp - 8]
add rax, 0x78
mov rcx, qword [rbp - 8]
add rcx, 6
movzx edx, word [rcx]
shl edx, 8
movsxd rdx, edx
mov r10, rdx
mov qword [rbp - 0x160], rax
mov rcx, r10
call sub.msvcrt.dll_malloc
mov rcx, qword [rbp - 0x160]
mov qword [rcx], rax
mov rax, qword [rbp - 8]
add rax, 0x80
mov rcx, qword [rbp - 8]
add rcx, 6
movzx edx, word [rcx]
shl edx, 8
movsxd rdx, edx
mov r10, rdx
mov qword [rbp - 0x168], rax
mov rcx, r10
call sub.msvcrt.dll_malloc
mov rcx, qword [rbp - 0x168]
mov qword [rcx], rax
mov rax, qword [rbp - 8]
add rax, 0x88
mov rcx, qword [rbp - 8]
add rcx, 6
movzx edx, word [rcx]
shl edx, 8
movsxd rdx, edx
mov r10, rdx
mov qword [rbp - 0x170], rax
mov rcx, r10
call sub.msvcrt.dll_malloc
mov rcx, qword [rbp - 0x170]
mov qword [rcx], rax
mov rax, qword [rbp - 8]
add rax, 0x90
mov rcx, qword [rbp - 8]
add rcx, 6
movzx edx, word [rcx]
shl edx, 8
movsxd rdx, edx
mov r10, rdx
mov qword [rbp - 0x178], rax
mov rcx, r10
call sub.msvcrt.dll_malloc
mov rcx, qword [rbp - 0x178]
mov qword [rcx], rax
mov rax, qword [rbp - 8]
add rax, 0x78
mov rcx, qword [rax]
cmp rcx, 0
je 0x416ea7
mov rax, qword [rbp - 8]
add rax, 0x80
mov rcx, qword [rax]
cmp rcx, 0
je 0x416ea7
mov rax, qword [rbp - 8]
add rax, 0x88
mov rcx, qword [rax]
cmp rcx, 0
je 0x416ea7
mov rax, qword [rbp - 8]
add rax, 0x90
mov rcx, qword [rax]
cmp rcx, 0
je 0x416ea7
jmp 0x416eeb
movzx eax, byte [0x00418108]
cmp eax, 0
je 0x416ee6
call sub.user32.dll_GetFocus
mov ecx, 0
mov r9, rcx
lea rcx, [0x0041c191]
mov r8, rcx
lea rcx, [0x0041c182]
mov r11, rcx
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_MessageBoxA
call fcn.00401bf5
mov rax, qword [rbp - 8]
add rax, 2
movzx ecx, word [rax]
and ecx, 0xff00
cmp ecx, 0x100
jne 0x4171f3
mov rax, qword [rbp - 8]
add rax, 8
mov rcx, qword [rbp - 8]
add rcx, 0xa
movzx edx, word [rax]
movzx eax, word [rcx]
imul edx, eax
movsxd rdx, edx
shl rdx, 2
mov dword [rbp - 0x20], edx
mov rax, qword [rbp - 8]
add rax, 0xa0
mov ecx, dword [rbp - 0x20]
movsxd rcx, ecx
mov r10, rcx
mov qword [rbp - 0x180], rax
mov rcx, r10
call sub.msvcrt.dll_malloc
mov rcx, qword [rbp - 0x180]
mov qword [rcx], rax
mov rax, qword [rbp - 8]
add rax, 0xa8
mov ecx, dword [rbp - 0x20]
movsxd rcx, ecx
mov r10, rcx
mov qword [rbp - 0x188], rax
mov rcx, r10
call sub.msvcrt.dll_malloc
mov rcx, qword [rbp - 0x188]
mov qword [rcx], rax
mov rax, qword [rbp - 8]
add rax, 0xa0
mov rcx, qword [rax]
cmp rcx, 0
je 0x416fba
mov rax, qword [rbp - 8]
add rax, 0xa8
mov rcx, qword [rax]
cmp rcx, 0
je 0x416fba
jmp 0x416ffe
movzx eax, byte [0x00418108]
cmp eax, 0
je 0x416ff9
call sub.user32.dll_GetFocus
mov ecx, 0
mov r9, rcx
lea rcx, [0x0041c1a6]
mov r8, rcx
lea rcx, [0x0041c197]
mov r11, rcx
mov r10, rax
mov rcx, r10
mov rdx, r11
call sub.user32.dll_MessageBoxA
call fcn.00401bf5
mov rax, qword [rbp - 8]
add rax, 0x98
mov ecx, dword [rbp - 0x20]
shl ecx, 1
add ecx, 0x200
mov dword [rax], ecx
mov rax, qword [rbp - 8]
add rax, 0x70
mov ecx, 0
mov r9, rcx
movabs rcx, 0
mov r8, rcx
mov ecx, 0x200
mov r11, rcx
mov rcx, qword [rax]
mov r10, rcx
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_SetFilePointer
mov rax, qword [rbp - 8]
add rax, 0x70
mov rcx, qword [rbp - 8]
add rcx, 0xa0
movabs rdx, 0
mov qword [rsp + 0x20], rdx
lea rdx, [rbp - 0x24]
mov r9, rdx
mov edx, dword [rbp - 0x20]
mov r8, rdx
mov rdx, qword [rcx]
mov r11, rdx
mov rcx, qword [rax]
mov r10, rcx
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_ReadFile
mov rax, qword [rbp - 8]
add rax, 0x70
mov rcx, qword [rbp - 8]
add rcx, 0xa8
movabs rdx, 0
mov qword [rsp + 0x20], rdx
lea rdx, [rbp - 0x24]
mov r9, rdx
mov edx, dword [rbp - 0x20]
mov r8, rdx
mov rdx, qword [rcx]
mov r11, rdx
mov rcx, qword [rax]
mov r10, rcx
mov rcx, r10
mov rdx, r11
call sub.kernel32.dll_ReadFile
mov rax, qword [rbp - 8]
movzx ecx, word [rax]
cmp ecx, 0xda01
jne 0x4171f3
mov eax, dword [rbp - 0x20]
movsxd rax, eax
shr rax, 2
mov dword [rbp - 0x20], eax
mov rax, qword [rbp - 8]
add rax, 0xa0
mov rcx, qword [rax]
mov qword [rbp - 0x10], rcx
mov rax, qword [rbp - 8]
add rax, 0xa8
mov rcx, qword [rax]
mov qword [rbp - 0x18], rcx
mov eax, dword [rbp - 0x20]
mov rcx, rax
add eax, 0xffffffff
mov dword [rbp - 0x20], eax
cmp ecx, 0
je 0x4171f3
mov rax, qword [rbp - 0x10]
mov ecx, dword [rax]
mov dword [rbp - 0x1c], ecx
mov rax, qword [rbp - 0x10]
mov rcx, rax
add rax, 4
mov qword [rbp - 0x10], rax
mov eax, dword [rbp - 0x1c]
and eax, 0xff
shl eax, 0x18
mov edx, dword [rbp - 0x1c]
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, dword [rbp - 0x1c]
and edx, 0xff0000
shr edx, 8
mov qword [rbp - 0x190], rcx
mov ecx, dword [rbp - 0x1c]
and ecx, 0xff000000
shr ecx, 0x18
or edx, ecx
or eax, edx
mov rcx, qword [rbp - 0x190]
mov dword [rcx], eax
mov rax, qword [rbp - 0x18]
mov ecx, dword [rax]
mov dword [rbp - 0x1c], ecx
mov rax, qword [rbp - 0x18]
mov rcx, rax
add rax, 4
mov qword [rbp - 0x18], rax
mov eax, dword [rbp - 0x1c]
and eax, 0xff
shl eax, 0x18
mov edx, dword [rbp - 0x1c]
and edx, 0xff00
shl edx, 8
or eax, edx
mov edx, dword [rbp - 0x1c]
and edx, 0xff0000
shr edx, 8
mov qword [rbp - 0x198], rcx
mov ecx, dword [rbp - 0x1c]
and ecx, 0xff000000
shr ecx, 0x18
or edx, ecx
or eax, edx
mov rcx, qword [rbp - 0x198]
mov dword [rcx], eax
jmp 0x41711d
mov rax, qword [rbp - 8]
leave
ret