Function at 0x1400160e0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x200]
sub rsp, 0x300
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x1f0], rax
mov r12d, edx
mov r15d, r8d
mov edi, ecx
lea rdx, [0x14007e940]
mov r8d, 0x104
xor ecx, ecx
mov r14d, r9d
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rdx, str..scr
lea rcx, [0x14007e940]
call fcn.14001c6a0
test rax, rax
jne 0x140016162
lea rdx, str..SCR
lea rcx, [0x14007e940]
call fcn.14001c6a0
test rax, rax
je 0x14001616c
mov dword [0x14007e0c4], 1
xor ebx, ebx
lea rcx, [0x14007e940]
xor r9d, r9d
mov qword [rsp + 0x30], rbx
lea r8d, [rbx + 1]
mov edx, 0x80000000
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x140016814
lea r9d, [rbx + 2]
lea r8, [rsp + 0x4c]
xor edx, edx
mov rcx, rax
mov qword [rsp + 0x48], rbx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
cmp eax, 0xffffffff
jne 0x1400161d1
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
lea r8, [rsp + 0x4c]
mov rcx, rsi
lea r9d, [rax + 1]
lea edx, [rax - 3]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
mov qword [rsp + 0x48], 0xfffffffffffffffd
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
cmp eax, 0xffffffff
jne 0x140016222
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x70]
mov r8d, 3
mov rcx, rsi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
xor eax, eax
lea r8, [rsp + 0x4c]
lea r9d, [rax + 1]
lea edx, [rax - 6]
mov rcx, rsi
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rax
mov qword [rsp + 0x48], 0xfffffffffffffffa
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
cmp eax, 0xffffffff
jne 0x14001628f
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, [rsp + 0x40]
lea rdx, [rbp - 0x50]
mov r8d, 3
mov rcx, rsi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r9d, 1
lea r8, [rsp + 0x4c]
lea edx, [r9 - 8]
mov rcx, rsi
mov qword [rsp + 0x48], 0xfffffffffffffff9
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
cmp eax, 0xffffffff
jne 0x1400162dc
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x58]
mov r8d, 4
mov rcx, rsi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r9d, 1
lea r8, [rsp + 0x4c]
lea edx, [r9 - 0xd]
mov rcx, rsi
mov qword [rsp + 0x48], 0xfffffffffffffff4
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
cmp eax, 0xffffffff
jne 0x14001632a
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x68]
mov r8d, 8
mov rcx, rsi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov r9d, 1
lea r8, [rsp + 0x4c]
lea edx, [r9 - 0x11]
mov rcx, rsi
mov qword [rsp + 0x48], 0xfffffffffffffff0
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rsp + 0x48], eax
cmp eax, 0xffffffff
jne 0x140016378
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x60]
mov r8d, 8
mov rcx, rsi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
movsxd rcx, dword [rsp + 0x58]
test ecx, ecx
je 0x14001680b
movzx eax, word [rsp + 0x70]
cmp ax, word [0x140048cec]
jne 0x1400167d0
movzx eax, byte [rsp + 0x72]
cmp al, byte [str.0Wrong_EXE_version_or_Damaged_EXE_file__n_nThis_EXE_is_either_damaged_incomplete_OR_created_with_a_non_compatible_IrfanView_PlugIn_version._nPlease_re_create_this_EXE_using_latest_IrfanView_PlugIns.]
jne 0x1400167d0
imul rcx, rcx, 0x2238
call fcn.14001b9fc
mov qword [0x14007e0e8], rax
test rax, rax
jne 0x1400163ea
lea rdx, str.Cant_allocate_memory_
jmp 0x1400167f6
mov rdx, qword [rsp + 0x60]
xor r8d, r8d
mov rcx, rsi
call fcn.140018f00
lea r9, [rsp + 0x40]
lea rdx, [0x14007e100]
mov r8d, 0x1dc
mov rcx, rsi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [0x14007e104], ebx
je 0x14001649c
cmp dword [0x14007e118], ebx
mov eax, dword [0x14007e110]
mov dword [0x14007e0d8], eax
mov eax, dword [0x14007e114]
mov dword [0x14007e0d4], eax
je 0x14001647f
mov ecx, dword [0x14007e228]
call fcn.140014d10
mov ecx, dword [0x14007e228]
sub eax, dword [0x14007e0d8]
cdq
sub eax, edx
sar eax, 1
mov dword [0x14007e0e0], eax
call fcn.140014c90
sub eax, dword [0x14007e0d4]
cdq
sub eax, edx
sar eax, 1
mov dword [0x14007e0dc], eax
jmp 0x140016556
mov eax, dword [0x14007e108]
mov dword [0x14007e0e0], eax
mov eax, dword [0x14007e10c]
mov dword [0x14007e0dc], eax
jmp 0x140016556
cmp dword [0x14007e228], ebx
je 0x14001652c
mov ecx, 0x4c
call int.1400197f0
mov dword [0x14007e0e0], eax
call fcn.140014e60
test eax, eax
je 0x1400164ce
mov ecx, 0x4d
call qword [0x14007cb58]
jmp 0x1400164d0
mov eax, ebx
mov ecx, 1
mov dword [0x14007e0dc], eax
call fcn.140014d10
mov ecx, eax
mov eax, dword [0x14007e0e0]
cdq
xor eax, edx
sub eax, edx
sub ecx, eax
mov dword [0x14007e0d8], ecx
mov ecx, 1
call fcn.140014c90
mov ecx, dword [0x14007e0e0]
sub dword [0x14007e0d8], ecx
mov r9d, eax
mov eax, dword [0x14007e0dc]
cdq
xor eax, edx
sub eax, edx
sub r9d, eax
sub r9d, dword [0x14007e0dc]
mov dword [0x14007e0d4], r9d
jmp 0x140016556
xor ecx, ecx
mov dword [0x14007e0e0], ebx
mov dword [0x14007e0dc], ebx
call fcn.140014d10
mov ecx, dword [0x14007e228]
mov dword [0x14007e0d8], eax
call fcn.140014c90
mov dword [0x14007e0d4], eax
test edi, edi
jle 0x1400165d2
lea rdx, [rsp + 0x48]
mov ecx, edi
call fcn.140014b90
cmp dword [0x14007e104], ebx
mov eax, dword [rsp + 0x50]
je 0x1400165aa
sub eax, dword [0x14007e0d8]
sub eax, dword [rsp + 0x48]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rsp + 0x48]
mov dword [0x14007e0e0], eax
mov eax, dword [rsp + 0x54]
sub eax, dword [0x14007e0d4]
sub eax, dword [rsp + 0x4c]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rsp + 0x4c]
mov dword [0x14007e0dc], eax
jmp 0x1400165d2
mov ecx, dword [rsp + 0x48]
mov edx, dword [rsp + 0x4c]
sub eax, ecx
mov dword [0x14007e0e0], ecx
mov dword [0x14007e0dc], edx
mov dword [0x14007e0d8], eax
mov eax, dword [rsp + 0x54]
sub eax, edx
mov dword [0x14007e0d4], eax
test r14d, r14d
jle 0x14001664c
mov eax, dword [rbp + 0x250]
test eax, eax
jle 0x14001664c
mov dword [0x14007e104], 1
mov dword [0x14007e0e0], r12d
mov dword [0x14007e0dc], r15d
mov dword [0x14007e0d8], r14d
mov dword [0x14007e0d4], eax
cmp r12d, 0x270f
jne 0x14001664c
cmp r15d, r12d
jne 0x14001664c
mov ecx, dword [0x14007e228]
call fcn.140014d10
mov ecx, dword [0x14007e228]
sub eax, dword [0x14007e0d8]
cdq
sub eax, edx
sar eax, 1
mov dword [0x14007e0e0], eax
call fcn.140014c90
sub eax, dword [0x14007e0d4]
cdq
sub eax, edx
sar eax, 1
mov dword [0x14007e0dc], eax
mov rdx, qword [rsp + 0x68]
xor r8d, r8d
mov rcx, rsi
call fcn.140018f00
mov r15d, ebx
cmp dword [rsp + 0x58], ebx
jle 0x1400167c0
mov r14, rbx
nop dword [rax]
mov rcx, qword [0x14007e0e8]
movsxd rax, r15d
xor edx, edx
mov r8d, 0x2238
imul rdi, rax, 0x2238
add rcx, rdi
call fcn.14001c100
mov rdx, qword [0x14007e0e8]
lea r9, [rsp + 0x40]
add rdx, rdi
mov r8d, 4
mov rcx, rsi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rdx, qword [0x14007e0e8]
add rdx, 8
lea r9, [rsp + 0x40]
mov r8d, 8
mov rcx, rsi
add rdx, rdi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rdx, qword [0x14007e0e8]
lea r9, [rsp + 0x40]
add rdx, 0x10
mov r8d, 8
mov rcx, rsi
add rdx, rdi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rdx, qword [0x14007e0e8]
lea r9, [rsp + 0x40]
add rdx, 0x18
mov r8d, 4
mov rcx, rsi
add rdx, rdi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rax, qword [0x14007e0e8]
lea r9, [rsp + 0x40]
mov r8d, dword [r14 + rax + 0x18]
lea rdx, [rax + 0x1c]
mov rcx, rsi
add r8d, r8d
add rdx, rdi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rdx, qword [0x14007e0e8]
lea r9, [rsp + 0x40]
add rdx, 0x224
mov r8d, 4
mov rcx, rsi
add rdx, rdi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rax, qword [0x14007e0e8]
lea r9, [rsp + 0x40]
mov r8d, dword [r14 + rax + 0x224]
lea rdx, [rax + 0x228]
mov rcx, rsi
add r8d, r8d
add rdx, rdi
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
inc r15d
lea r14, [r14 + 0x2238]
cmp r15d, dword [rsp + 0x58]
jl 0x140016670
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x140016816
lea rcx, [0x140048cf0]
nop word [rax + rax]
movzx eax, word [rbx + rcx]
lea rbx, [rbx + 2]
mov word [rbp + rbx - 0x12], ax
test ax, ax
jne 0x1400167e0
lea rdx, [rbp - 0x10]
lea r8, [0x14007eb60]
mov r9d, 0x2030
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov rcx, qword [rbp + 0x1f0]
xor rcx, rsp
call fcn.14001bb50
lea r11, [rsp + 0x300]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret