Function at 0x1403e68f0
Capabilities:
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
push rbp
sub rsp, 0x48
mov r13, rcx
xor r15b, r15b
xor r12d, r12d
mov r11b, byte [r13 + 0x298]
and r11b, 0x80
mov r10b, byte [r13 + 0x299]
and byte [r13 + 0x29d], 0xfe
and r10b, 1
shr r11b, 7
mov rsi, qword [r13 + 0x1a0]
mov rdi, qword [r13 + 0x1b0]
mov rbp, qword [r13 + 0x78]
mov rbx, qword [r13 + 0x248]
cmp dword [r13 + 0x40], 0xfffffffc
je 0x1403e6c36
cmp dword [0x141a6ae3c], 0
je 0x1403e69e9
lea rax, [rbx - 1]
cmp rax, 1
ja 0x1403e696d
xor ebx, ebx
jmp 0x1403e6aa3
test r11b, r11b
je 0x1403e69e0
cmp rbx, 0xfffffffffffffffa
je 0x1403e6bee
test rbx, rbx
je 0x1403e6ba8
test r10b, r10b
je 0x1403e69e9
mov r14d, r9d
mov ecx, r14d
call fcn.14043d2b0
mov ecx, r14d
call fcn.14043d430
test r15b, r15b
je 0x1403e69e9
mov rcx, rbp
mov edx, edi
mov r8d, r14d
call fcn.14043d350
movsxd r12, eax
cmp eax, 0xffffffff
je 0x1403e6966
lea rcx, [0x14059fd50]
mov edx, 2
mov r8d, r14d
xor r9d, r9d
call fcn.14043d310
mov byte [r12 + rbp], 0xa
inc r12
mov ebx, 1
jmp 0x1403e6aa3
test rbx, rbx
je 0x1403e6ba8
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r14, qword [r13 + 0x240]
mov eax, 0x20000
test r14, r14
cmovne rax, r14
xor r12d, r12d
cmp rdi, rax
jbe 0x1403e6a11
test rbx, rbx
jne 0x1403e6a37
mov rax, rsp
mov rcx, rsi
mov rdx, rbp
mov r8d, edi
lea r9, [rsp + 0x30]
mov qword [rax + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
movsxd r12, dword [rsp + 0x30]
jmp 0x1403e6a9c
mov eax, 0x20000
test r14, r14
cmove r14, rax
mov rax, rsp
mov rbx, r14
mov rcx, rsi
mov rdx, rbp
mov r8d, r14d
lea r9, [rsp + 0x30]
mov qword [rax + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1403e6a9c
mov r9, qword [r13 + 0x240]
mov r8d, 0x20000
test r9, r9
movsxd r10, dword [rsp + 0x30]
cmove r9, r8
sub rdi, r10
add rbp, r10
cmp rdi, r9
cmovbe r14, rdi
add r12, r10
test rdi, rdi
je 0x1403e6a9c
cmp r10, rbx
je 0x1403e6a43
xor ebx, ebx
test eax, eax
setne bl
mov rdx, qword [r13 + 0x78]
mov rax, qword [r13 + 0x1b0]
add rax, 0xfffffffffffffffc
mov rcx, qword [r13 + 0x260]
lea rbp, [r12 + rdx]
mov qword [r13 + 0xb0], rbp
mov qword [r13 + 0x80], rdx
cmp rcx, rax
ja 0x1403e6ae9
lea rax, [rdx + rcx]
mov qword [r13 + 0x90], rax
lea rdx, [rdx + rcx + 4]
mov qword [r13 + 0xa8], rdx
jmp 0x1403e6afb
mov qword [r13 + 0xa8], 0
mov qword [r13 + 0x90], rbp
mov qword [r13 + 0x1c8], r12
mov qword [r13 + 0x140], r12
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
cmp ebp, 0x3e3
je 0x1403e6c29
test ebx, ebx
jne 0x1403e6b64
and byte [r13 + 0x29d], 0xfe
mov dword [r13 + 0x1a8], ebp
cmp ebp, 0x26
je 0x1403e6b7f
cmp ebp, 0x6d
jne 0x1403e6b4e
mov ecx, 0xfffffff6
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp rax, qword [r13 + 0x1a0]
je 0x1403e6b7f
mov eax, 0x27
add rsp, 0x48
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
test r12, r12
jne 0x1403e6b95
and byte [r13 + 0x29d], 0xfe
cmp dword [r13 + 0x1e0], 0xfffffffc
je 0x1403e6c05
mov eax, 0x18
add rsp, 0x48
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
xor eax, eax
add rsp, 0x48
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov byte [rsp + 0x30], r10b
mov r15b, 1
mov byte [rsp + 0x38], r11b
call fcn.14043d530
mov r11b, byte [rsp + 0x38]
mov r14d, eax
mov r10b, byte [rsp + 0x30]
movsxd r9, r14d
cmp dword [0x141a6ae3c], 0
je 0x1403e69a2
test r11b, r11b
je 0x1403e69a2
test r10b, r10b
jne 0x1403e698a
jmp 0x1403e69a2
mov r15b, 1
mov r9, rsi
test r10b, r10b
jne 0x1403e698a
mov r14d, esi
jmp 0x1403e69a2
call fcn.140384990
cmp eax, 1
jle 0x1403e6b7f
mov eax, 0x30d
add rsp, 0x48
pop rbp
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1403e6b1d
mov qword [rsp + 0x40], r9
mov byte [rsp + 0x30], r10b
mov byte [rsp + 0x38], r11b
call fcn.140384990
mov r11b, byte [rsp + 0x38]
mov r10b, byte [rsp + 0x30]
mov r9, qword [rsp + 0x40]
cmp eax, 1
jle 0x1403e694f
mov ebx, 1
jmp 0x1403e6aa3