Function at 0x14009a5c0
Capabilities:
Read file on windows

Disassembly:
mov r11, rsp
push rbx
push rbp
push rsi
push rdi
push r12
sub rsp, 0x1d0
mov rax, qword [0x14042d950]
xor rax, rsp
mov qword [rsp + 0x1c0], rax
xor esi, esi
mov rdi, rcx
xor ecx, ecx
mov word [rsp + 0x170], si
test r8, r8
mov ebx, esi
setne bl
mov rax, r8
mov r12, rdx
test ebx, ebx
mov dword [rsp + 0x40], esi
mov qword [r11 - 0x86], rcx
mov qword [r11 - 0x7e], rcx
mov qword [r11 - 0x76], rcx
mov qword [r11 - 0x6e], rcx
mov qword [r11 - 0x66], rcx
mov qword [r11 - 0x5e], rcx
mov qword [r11 - 0x56], rcx
mov dword [r11 - 0x4e], ecx
mov word [r11 - 0x4a], cx
mov word [rsp + 0x48], cx
mov qword [rsp + 0x4a], rcx
mov qword [rsp + 0x52], rcx
mov word [rsp + 0x5a], cx
jne 0x14009a72c
lea rbp, [0x1404341a0]
xor edx, edx
mov r8d, 0x80
mov rcx, rbp
call sub.ntdll.dll_memset
lea edx, [rsi + 0x5c]
lea rcx, str...helper.cpp
call qword [sym.imp.ntdll.dll_strrchr]
test rax, rax
mov rdi, rax
je 0x14009a703
xor eax, eax
lea rdx, [0x1402dfd08]
lea rcx, [rsp + 0x1b0]
mov r8d, 0x2c0
mov byte [rsp + 0x1b0], sil
mov qword [rsp + 0x1b1], rax
mov word [rsp + 0x1b9], ax
mov byte [rsp + reloc.MFC80U.DLL_Ordinal_443], al
call qword [sym.imp.ntdll.dll_sprintf]
lea rdx, [rdi + 1]
mov rcx, rbp
sub rcx, rdx
movzx eax, byte [rdx]
add rdx, 1
test al, al
mov byte [rcx + rdx - 1], al
jne 0x14009a6c0
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdi, rbp
repne scasb al, byte [rdi]
xor ecx, ecx
lea rdx, [rsp + 0x1b0]
nop
nop
nop
movzx eax, byte [rdx + rcx]
add rcx, 1
test al, al
mov byte [rdi + rcx - 2], al
jne 0x14009a6f0
mov rsi, rbp
call fcn.140049470
lea r8, [0x1402e9788]
lea rdx, str._s_return_code:_0x_08X___s.
mov rdi, qword [rax]
xor r9d, r9d
mov rcx, rax
mov qword [rsp + 0x20], rsi
call qword [rdi + 0x10]
jmp 0x14009aa88
xor r9d, r9d
mov qword [rsp + 0x30], rsi
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, rax
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebx, esi
cmp rax, 0xffffffffffffffff
mov rbp, rax
setne bl
test ebx, ebx
jne 0x14009a7a4
lea rcx, str...helper.cpp
mov edx, 0x2c3
call fcn.140099de0
mov rdi, rax
call fcn.140049470
lea r8, [0x1402e9760]
mov r10, qword [rax]
lea rdx, str._s_return_code:_0x_08X___s.
xor r9d, r9d
mov rcx, rax
mov qword [rsp + 0x20], rdi
call qword [r10 + 0x10]
jmp 0x14009aa79
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x170]
mov r8d, 0x40
mov rcx, rax
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov ebx, eax
jne 0x14009a809
lea rcx, str...helper.cpp
mov edx, 0x2c6
call fcn.140099de0
mov rdi, rax
call fcn.140049470
lea r8, [0x1402e9720]
mov r10, qword [rax]
lea rdx, str._s_return_code:_0x_08X___s.
xor r9d, r9d
mov rcx, rax
mov qword [rsp + 0x20], rdi
call qword [r10 + 0x10]
jmp 0x14009aa79
movsxd rdx, dword [rsp + 0x1ac]
xor r9d, r9d
xor r8d, r8d
add rdx, 4
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
mov ebx, eax
jne 0x14009a868
lea rcx, str...helper.cpp
mov edx, 0x2c8
call fcn.140099de0
mov rdi, rax
call fcn.140049470
lea r8, [0x1402e96e8]
mov r10, qword [rax]
lea rdx, str._s_return_code:_0x_08X___s.
xor r9d, r9d
mov rcx, rax
mov qword [rsp + 0x20], rdi
call qword [r10 + 0x10]
jmp 0x14009aa79
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x48]
mov r8d, 0x14
mov rcx, rbp
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov ebx, eax
jne 0x14009a8ce
lea rcx, str...helper.cpp
mov edx, 0x2ca
call fcn.140099de0
mov rdi, rax
call fcn.140049470
lea r8, [0x1402e96a8]
mov r10, qword [rax]
lea rdx, str._s_return_code:_0x_08X___s.
xor r9d, r9d
mov rcx, rax
mov qword [rsp + 0x20], rdi
call qword [r10 + 0x10]
jmp 0x14009aa79
xor edx, edx
bt word [rsp + 0x5a], 8
mov dword [rsp + 0x60], esi
lea rcx, [rsp + 0x64]
jae 0x14009a99d
mov r8d, 0xf4
call sub.ntdll.dll_memset
movsxd rdx, dword [rsp + 0x1ac]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
mov ebx, eax
jne 0x14009a94c
lea rcx, str...helper.cpp
mov edx, 0x2d2
call fcn.140099de0
mov rdi, rax
call fcn.140049470
lea r8, [0x1402e96e8]
mov r10, qword [rax]
lea rdx, str._s_return_code:_0x_08X___s.
xor r9d, r9d
mov rcx, rax
mov qword [rsp + 0x20], rdi
call qword [r10 + 0x10]
jmp 0x14009aa79
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x60]
mov r8d, 0xf8
mov rcx, rbp
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov ebx, eax
jne 0x14009aa63
lea rcx, str...helper.cpp
mov edx, Ordinal_727
call fcn.140099de0
mov rdi, rax
call fcn.140049470
lea r8, [0x1402e9668]
jmp 0x14009aa48
mov r8d, Ordinal_265
call sub.ntdll.dll_memset
movsxd rdx, dword [rsp + 0x1ac]
xor r9d, r9d
xor r8d, r8d
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
mov ebx, eax
jne 0x14009aa00
lea rcx, str...helper.cpp
mov edx, reloc.MFC80U.DLL_Ordinal_734
call fcn.140099de0
mov rdi, rax
call fcn.140049470
lea r8, [0x1402e96e8]
mov r10, qword [rax]
lea rdx, str._s_return_code:_0x_08X___s.
xor r9d, r9d
mov rcx, rax
mov qword [rsp + 0x20], rdi
call qword [r10 + 0x10]
jmp 0x14009aa79
lea r9, [rsp + 0x40]
lea rdx, [rsp + 0x60]
mov r8d, Ordinal_265
mov rcx, rbp
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov ebx, eax
jne 0x14009aa63
lea rcx, str...helper.cpp
mov edx, 0x2e0
call fcn.140099de0
mov rdi, rax
call fcn.140049470
lea r8, [0x1402e9628]
mov r10, qword [rax]
lea rdx, str._s_return_code:_0x_08X___s.
xor r9d, r9d
mov rcx, rax
mov qword [rsp + 0x20], rdi
call qword [r10 + 0x10]
jmp 0x14009aa79
movzx eax, word [rsp + 0xa8]
mov dword [rdi], eax
movzx eax, word [rsp + 0xaa]
mov dword [r12], eax
cmp rbp, 0xffffffffffffffff
je 0x14009aa88
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
mov rcx, qword [rsp + 0x1c0]
xor rcx, rsp
call fcn.140161080
add rsp, 0x1d0
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret