Function at 0x140102be0
Capabilities:
Read file on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x128
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x90], xmm6
mov qword [rbp + 0x88], 0xfffffffffffffffe
mov rbx, rdx
mov r14, rcx
mov rcx, qword [rdx + 0x18]
cmp qword [rdx + 0x10], 0
mov qword [rdx + 0x10], 0
je 0x140102c2c
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x20], 1
mov qword [rbp + 0x28], 0
mov qword [rbp + 0x70], 0
mov qword [rbp + 0x78], 1
mov qword [rbp + 0x80], 0
mov rcx, qword [rbx + 0x28]
cmp qword [rbx + 0x20], 0
mov rax, qword [rbx + 0x30]
mov qword [rbx + 0x20], 0
mov rdx, qword [rbx + 0x38]
mov qword [rbp + 0x60], rdx
mov qword [rbx + 0x30], 0
je 0x140102ce2
mov qword [rbp + 0x68], rbx
test rax, rax
je 0x140102f7f
lea rdx, [rbp + 0x18]
lea r9, [rbp + 0x70]
mov r8, qword [rbp + 0x60]
call fcn.14010bd00
test rax, rax
mov rbx, qword [rbp + 0x68]
je 0x140102fcd
mov qword [rbp + 0x30], rax
lea rax, str.library_std_srcprocess.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x1401ca9c8]
lea r9, fcn.1400f5630
lea r8, [rbp + 0x30]
mov edx, 0x2b
call fcn.14013ac20
jmp 0x140103183
test rax, rax
je 0x140102fcd
mov qword [rbp - 0x30], r14
mov qword [rbp + 0x68], rbx
mov edi, 1
xor r12d, r12d
xorps xmm6, xmm6
lea r14, [0x140103390]
xor r13d, r13d
xor esi, esi
jmp 0x140102d20
mov rax, rdx
shr rax, 0x20
cmp eax, 0x23
jne 0x1401030d6
cmp r13, r12
jne 0x140102d46
mov r8d, 0x20
lea rcx, [rbp + 0x70]
mov rdx, r12
call fcn.140139650
mov r13, qword [rbp + 0x80]
mov r12, qword [rbp + 0x70]
mov rdi, qword [rbp + 0x78]
lea rax, [rdi + r13]
mov rcx, r12
sub rcx, r13
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], rsi
mov rcx, qword [rbp + 0x60]
lea rdx, [rbp - 0x28]
call fcn.14010b700
mov rdx, rax
test rax, rax
je 0x140102e3b
mov ebx, edx
and ebx, 3
movsxd rax, dword [r14 + rbx*4]
add rax, r14
jmp rax
movzx eax, byte [rdx + 0x10]
jmp 0x140102dc4
mov rcx, rdx
shr rcx, 0x20
mov r15, rdi
mov rdi, rsi
mov rsi, r14
mov r14, rdx
call fcn.1401126d0
mov rdx, r14
mov r14, rsi
mov rsi, rdi
mov rdi, r15
cmp al, 0x23
jne 0x1401030d6
cmp ebx, 1
jne 0x140102d20
jmp 0x140102dea
cmp byte [rdx + 0xf], 0x23
jne 0x1401030d6
mov qword [rbp], rdx
mov rax, rdx
dec rax
mov qword [rbp - 8], rax
mov rcx, qword [rdx - 1]
mov rax, qword [rdx + 7]
call qword [rax]
mov rax, qword [rbp]
mov rax, qword [rax + 7]
mov rdx, qword [rax + 8]
test rdx, rdx
mov rbx, qword [rbp - 8]
je 0x140102e23
mov r8, qword [rax + 0x10]
mov rcx, qword [rbx]
call fcn.14000e960
mov edx, 0x18
mov r8d, 8
mov rcx, rbx
call fcn.14000e960
jmp 0x140102d20
mov rbx, qword [rbp - 0x18]
test rbx, rbx
je 0x140102fbb
mov rdx, qword [rbp - 0x10]
mov rsi, rdx
sub rsi, rbx
jb 0x140103118
mov rax, qword [rbp - 0x20]
cmp rdx, rax
ja 0x140103104
cmp rbx, rax
ja 0x140103129
add rbx, r13
mov qword [rbp + 0x80], rbx
mov rax, r12
or rax, rbx
je 0x140102e88
mov r13, rbx
jmp 0x140102d20
movaps xmmword [rbp - 0x40], xmm6
movaps xmmword [rbp - 0x50], xmm6
lea r15, [rbp + 8]
lea rbx, [0x14010bce0]
lea r12, [rbp - 0x50]
lea r13, [rbp + 0x30]
jmp 0x140102ec7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov ecx, edi
call fcn.1401126d0
cmp al, 0x23
jne 0x140102faf
mov dword [rbp + 8], 0
movaps xmmword [rbp + 0x30], xmm6
mov qword [rbp + 0x40], 0
mov qword [rbp + 0x48], r15
mov qword [rsp + 0x20], rbx
mov rcx, qword [rbp + 0x60]
mov rdx, r12
mov r8d, 0x20
mov r9, r13
call qword [sym.imp.KERNEL32.dll_ReadFileEx]
test eax, eax
mov rdi, qword [sym.imp.KERNEL32.dll_SleepEx]
je 0x140102eb0
nop word cs:[rax + rax]
mov ecx, 0xffffffff
mov edx, 1
call rdi
cmp dword [rbp + 8], 0
je 0x140102f10
mov edi, dword [rbp + 0xc]
test edi, edi
jne 0x140102eb8
mov r15d, dword [rbp + 0x10]
test r15, r15
je 0x140102fbb
cmp r15d, 0x21
jae 0x14010316f
lea rcx, [rbp + 0x70]
xor edx, edx
mov r8, r15
call fcn.140139650
mov r12, qword [rbp + 0x70]
mov rdi, qword [rbp + 0x78]
mov rbx, qword [rbp + 0x80]
lea rcx, [rdi + rbx]
lea rdx, [rbp - 0x50]
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
add rbx, r15
mov qword [rbp + 0x80], rbx
mov r13, rbx
jmp 0x140102d20
mov qword [rbp - 0x28], rcx
lea rcx, [rbp + 0x30]
lea rdx, [rbp - 0x28]
lea r8, [rbp + 0x18]
call fcn.14010b800
cmp qword [rbp + 0x30], 0
jne 0x14010313d
mov rcx, qword [rbp - 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rbp + 0x68]
jmp 0x140102fcd
movzx eax, al
cmp eax, 0xb
jne 0x1401030cb
mov rcx, qword [rbp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rbp + 0x68]
mov r14, qword [rbp - 0x30]
mov qword [rbx + 0x10], 0
mov rdi, qword [rbx]
mov rcx, rdi
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x140103035
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [r14], rax
mov qword [r14 + 8], 0
mov rdx, qword [rbp + 0x70]
test rdx, rdx
je 0x14010301b
mov rcx, qword [rbp + 0x78]
mov r8d, 1
call fcn.14000e960
mov rdx, qword [rbp + 0x18]
test rdx, rdx
je 0x14010309b
mov rcx, qword [rbp + 0x20]
mov r8d, 1
call fcn.14000e960
jmp 0x14010309b
mov dword [rbp + 0x30], 0
lea rdx, [rbp + 0x30]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
je 0x140102fea
mov eax, dword [rbp + 0x30]
mov rcx, qword [rbp + 0x28]
mov qword [rbp + 0x40], rcx
movups xmm0, xmmword [rbp + 0x18]
movaps xmmword [rbp + 0x30], xmm0
mov rcx, qword [rbp + 0x80]
mov qword [rbp + 0x58], rcx
movups xmm1, xmmword [rbp + 0x70]
movups xmmword [rbp + 0x48], xmm1
movups xmmword [r14], xmm0
mov rcx, qword [rbp + 0x50]
mov qword [r14 + 0x20], rcx
mov rcx, qword [rbp + 0x58]
mov qword [r14 + 0x28], rcx
mov rcx, qword [rbp + 0x40]
mov qword [r14 + 0x10], rcx
mov rcx, qword [rbp + 0x48]
mov qword [r14 + 0x18], rcx
mov dword [r14 + 0x30], eax
mov rsi, qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rdi
call rsi
mov rcx, qword [rbx + 8]
call rsi
mov rax, r14
movaps xmm6, xmmword [rbp + 0x90]
add rsp, 0x128
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
shl rdi, 0x20
or rdi, 2
mov rdx, rdi
mov qword [rbp + 0x30], rdx
lea rax, str.library_std_srcprocess.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x1401ca9c8]
lea r9, fcn.1400f5630
lea r8, [rbp + 0x30]
mov edx, 0x2b
call fcn.14013ac20
jmp 0x140103183
lea r8, str.library_std_srcio_readbuf.rs
mov rcx, rdx
mov rdx, rax
call fcn.14013acd0
jmp 0x140103183
lea r8, str.library_std_srcio_readbuf.rs
mov rcx, rbx
call fcn.14013ace0
jmp 0x140103183
lea r8, str.library_std_srcio_readbuf.rs
mov rcx, rbx
mov rdx, rax
call fcn.14013acd0
jmp 0x140103183
mov rax, qword [rbp + 0x38]
mov qword [rbp - 0x50], rax
lea rax, str.library_std_srcprocess.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x1401ca9c8]
lea r9, fcn.1400f5630
lea r8, [rbp - 0x50]
mov edx, 0x2b
call fcn.14013ac20
jmp 0x140103183
lea r8, [0x1401cbb78]
mov edx, 0x20
mov rcx, r15
call fcn.14013acd0
ud2