Function at 0x140015820
Capabilities:
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
push r15
sub rsp, 0x78
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x68], rax
cmp qword [rcx + 0xb8], 0
mov rsi, rcx
jne 0x14001585f
mov r8d, 0xe2
lea rdx, str.....CommonCommon.cpp
lea rcx, str._pRandomDataWriteBuffer___nullptr
call fcn.140027440
mov rdi, qword [rsi + 0x90]
lea rdx, [rsp + 0x40]
mov rcx, rsi
mov r15b, 1
call fcn.14000df90
lea rdx, [0x14003f7e0]
mov rcx, rax
call fcn.140011890
mov rcx, qword [rsp + 0x58]
mov ebx, eax
cmp rcx, 0x10
jb 0x1400158db
mov rdx, qword [rsp + 0x40]
inc rcx
cmp rcx, 0x1000
jb 0x1400158d3
test dl, 0x1f
jne 0x140015ab3
mov rax, qword [rdx - 8]
cmp rax, rdx
jae 0x140015ab9
sub rdx, rax
cmp rdx, 8
jb 0x140015abf
cmp rdx, 0x27
ja 0x140015ac5
mov rdx, rax
mov rcx, rdx
call fcn.14001d3f4
mov qword [rsp + 0x70], r14
test ebx, ebx
jne 0x140015920
xor ebx, ebx
test rdi, rdi
je 0x140015a93
nop
call fcn.14002560c
mov ecx, eax
and ecx, 0x800000ff
jge 0x140015909
dec ecx
or ecx, 0xffffff00
inc ecx
mov rax, qword [rsi + 0xb8]
mov byte [rbx + rax], cl
inc rbx
cmp rbx, rdi
jb 0x1400158f0
jmp 0x140015a93
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.14000df90
cmp qword [rax + 0x18], 0x10
jb 0x140015937
mov rax, qword [rax]
xor ebx, ebx
xor r9d, r9d
mov qword [rsp + 0x30], rbx
mov edx, 0x80000000
mov dword [rsp + 0x28], ebx
mov rcx, rax
mov dword [rsp + 0x20], 3
lea r8d, [rbx + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rcx, qword [rsp + 0x58]
mov r14, rax
cmp rcx, 0x10
jb 0x1400159b6
mov rdx, qword [rsp + 0x40]
inc rcx
cmp rcx, 0x1000
jb 0x1400159ae
test dl, 0x1f
jne 0x140015acb
mov rax, qword [rdx - 8]
cmp rax, rdx
jae 0x140015ad1
sub rdx, rax
cmp rdx, 8
jb 0x140015ad7
cmp rdx, 0x27
ja 0x140015add
mov rdx, rax
mov rcx, rdx
call fcn.14001d3f4
mov qword [rsp + 0x58], 0xf
mov qword [rsp + 0x50], rbx
mov byte [rsp + 0x40], bl
cmp r14, 0xffffffffffffffff
je 0x140015a90
mov rdi, qword [rsi + 0xb8]
mov qword [rsp + 0xa8], rbp
mov rbp, qword [rsi + 0x90]
mov qword [rsp + 0xb0], r12
mov r12d, 0x10000
test rbp, rbp
je 0x140015a36
mov r8d, ebp
mov qword [rsp + 0x20], rbx
cmp rbp, r12
lea r9, [rsp + 0x60]
mov rdx, rdi
mov rcx, r14
cmova r8d, r12d
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [rsp + 0x60]
cmp eax, 1
jne 0x140015a2d
test edx, edx
je 0x140015a2d
movzx ecx, al
jmp 0x140015a2f
xor cl, cl
add rdi, rdx
test cl, cl
jne 0x1400159f6
mov rdx, qword [rsi + 0xb8]
mov rcx, qword [rsi + 0x90]
mov r12, qword [rsp + 0xb0]
add rcx, rdx
mov rbp, qword [rsp + 0xa8]
mov r8, rcx
sub r8, rdi
cmp rdi, rcx
cmova r8, rbx
test r8, r8
je 0x140015a85
nop dword [rax]
movzx eax, byte [rdx]
inc rbx
mov byte [rdi], al
lea rdi, [rdi + 1]
lea rdx, [rdx + 1]
cmp rbx, r8
jb 0x140015a70
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140015a93
xor r15b, r15b
movzx eax, r15b
mov r14, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14001d3d0
add rsp, 0x78
pop r15
pop rdi
pop rsi
pop rbx
ret
call fcn.140025594
int3
call fcn.140025594
int3
call fcn.140025594
int3
call fcn.140025594
int3
call fcn.140025594
int3
call fcn.140025594
int3
call fcn.140025594
int3
call fcn.140025594
int3
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
cmp qword [rcx + 0xb8], 0
mov rbx, rcx
je 0x140015b20
mov r8d, 0x112
lea rdx, str.....CommonCommon.cpp
lea rcx, str._pRandomDataWriteBuffer__nullptr
call fcn.140027440
mov rdi, qword [rbx + 0x90]
test rdi, rdi
jne 0x140015b45
mov r8d, 0x115
lea rdx, str.....CommonCommon.cpp
lea rcx, str.cb___0
call fcn.140027440
mov r9d, 4
mov r8d, 0x1000
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
mov qword [rbx + 0xb8], rax
setne cl
test rax, rax
je 0x140015b80
mov rcx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x140015820
movzx eax, cl
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret