Function at 0x14009cc40
Capabilities:
Read file on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movaps xmmword [rsp + 0x100], xmm6
mov rsi, rdx
mov rdi, rcx
mov rcx, qword [rdx + 8]
cmp qword [rdx], 0
mov qword [rdx], 0
je 0x14009cc77
call fcn.1401259d4
mov qword [rsp + 0xa0], 1
xorps xmm0, xmm0
movups xmmword [rsp + 0xa8], xmm0
mov qword [rsp + 0x38], 1
movups xmmword [rsp + 0x40], xmm0
mov rcx, qword [rsi + 0x18]
cmp qword [rsi + 0x10], 0
mov rax, qword [rsi + 0x20]
mov qword [rsi + 0x10], 0
mov rbp, qword [rsi + 0x28]
mov qword [rsi + 0x20], 0
je 0x14009cd1e
test rax, rax
je 0x14009d134
lea rdx, [rsp + 0xa0]
lea r9, [rsp + 0x38]
mov r8, rbp
call dbg.read2
test rax, rax
je 0x14009d192
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x50], rax
lea rax, str.library_std_srcprocess.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x140145038]
lea r9, sym.core::ptr::drop_in_place_std::io::error::Error_::hbe988a8389101686
lea r8, [rsp + 0x50]
mov edx, 0x2b
call dbg.unwrap_failed
jmp 0x14009d366
test rax, rax
je 0x14009d192
mov qword [rsp + 0xd8], rdi
mov qword [rsp + 0x28], rsi
mov r12d, 1
xor r14d, r14d
lea rax, [0x140147130]
mov qword [rsp + 0x88], rax
xorps xmm6, xmm6
lea rsi, [0x14009d440]
xor ebx, ebx
xor r15d, r15d
mov qword [rsp + 0x30], rbp
jmp 0x14009cd88
mov edx, 0x18
mov r8d, 8
mov rcx, rbp
call sym.__rust_dealloc
mov rbp, qword [rsp + 0x30]
cmp rbx, r14
jne 0x14009cdaf
mov r8d, 0x20
lea rcx, [rsp + 0x38]
mov rdx, r14
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h6a5dde955b6da2f4
mov rbx, qword [rsp + 0x48]
mov r12, qword [rsp + 0x38]
mov r14, qword [rsp + 0x40]
lea rax, [r12 + rbx]
mov rcx, r14
sub rcx, rbx
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rcx
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xd0], r15
mov rcx, rbp
lea rdx, [rsp + 0xb8]
call sym.std::sys::windows::pipe::AnonPipe::read_buf::hf5346e15c4d4a4f2
mov rdi, rax
test rax, rax
je 0x14009cea4
mov r13d, edi
and r13d, 3
movsxd rax, dword [rsi + r13*4]
add rax, rsi
jmp rax
movzx eax, byte [rdi + 0x10]
jmp case.0x14009ce40.0
mov rcx, rdi
shr rcx, 0x20
call dbg.decode_error_kind
jmp case.0x14009ce40.0
mov rcx, rdi
shr rcx, 0x20
cmp ecx, 0x28
ja case.default.0x14009ce40
xor eax, eax
lea rdx, [0x14009d450]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
mov al, 1
jmp case.0x14009ce40.0
movzx eax, byte [rdi + 0xf]
cmp al, 0x23
jne 0x14009d2c0
lea rax, [r13 - 2]
cmp rax, 2
jb 0x14009cd88
test r13, r13
je 0x14009cd88
mov rbp, rdi
dec rbp
mov r13, qword [rdi - 1]
mov rdi, qword [rdi + 7]
mov rcx, r13
call qword [rdi]
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x14009cd70
mov r8, qword [rdi + 0x10]
mov rcx, r13
call sym.__rust_dealloc
jmp 0x14009cd70
mov rbp, qword [rsp + 0xc8]
test rbp, rbp
je 0x14009d2ae
mov rax, qword [rsp + 0xd0]
mov r15, rax
sub r15, rbp
jb 0x14009d2f0
mov rdx, qword [rsp + 0xc0]
cmp rax, rdx
ja 0x14009d304
cmp rbp, rdx
ja 0x14009d316
add rbp, rbx
mov qword [rsp + 0x48], rbp
mov rax, r14
or rax, rbp
je 0x14009cf00
mov rbx, rbp
mov rbp, qword [rsp + 0x30]
jmp 0x14009cd88
movaps xmmword [rsp + 0xf0], xmm6
movaps xmmword [rsp + 0xe0], xmm6
mov rbx, qword [rsp + 0x30]
lea r14, [rsp + 0x90]
lea r12, [sym.std::sys::windows::pipe::AnonPipe::alertable_io_internal::callback::hdb4e616883e39ba5]
lea r13, [rsp + 0xe0]
lea rbp, [rsp + 0x50]
jmp 0x14009cf56
call fcn.140125894
mov edi, eax
mov ecx, edi
call dbg.decode_error_kind
cmp al, 0x23
jne 0x14009d171
mov dword [rsp + 0x90], 0
movaps xmmword [rsp + 0x50], xmm6
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x20], r12
mov rcx, rbx
mov rdx, r13
mov r8d, 0x20
mov r9, rbp
call sub.KERNEL32.dll_ReadFileEx
test eax, eax
je 0x14009cf40
nop word cs:[rax + rax]
mov ecx, 0xffffffff
mov edx, 1
call sub.KERNEL32.dll_SleepEx
cmp dword [rsp + 0x90], 0
je 0x14009cfa0
mov edi, dword [rsp + 0x94]
test edi, edi
jne 0x14009cf47
mov edi, dword [rsp + 0x98]
test rdi, rdi
je 0x14009d17d
cmp edi, 0x21
jae 0x14009d368
lea rcx, [rsp + 0x38]
xor edx, edx
mov r8, rdi
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h6a5dde955b6da2f4
mov r12, qword [rsp + 0x38]
mov r14, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
lea rcx, [r12 + rbp]
lea rdx, [rsp + 0xe0]
mov r8, rdi
call sym.memcpy
add rbp, rdi
mov qword [rsp + 0x48], rbp
jmp 0x14009cef3
mov al, 0x25
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x23
jmp case.0x14009ce40.0
mov al, 0x24
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x1b
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x22
jmp case.0x14009ce40.0
mov al, 0x10
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0xe
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x21
jmp case.0x14009ce40.0
mov al, 0xb
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 4
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x28
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0xc
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 9
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x19
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x18
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 2
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0xf
jmp case.0x14009ce40.0
mov al, 3
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 7
jmp case.0x14009ce40.0
mov al, 0x1f
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x11
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x29
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x14
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 5
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x15
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0xd
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 6
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x12
jmp case.0x14009ce40.0
mov al, 0xa
jmp case.0x14009ce40.0
mov al, 8
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x1e
jmp case.0x14009ce40.0
mov al, 0x20
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x16
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x27
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x13
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x17
jmp case.0x14009ce40.0
mov al, 0x1c
jmp case.0x14009ce40.0
invalid
invalid
invalid
mov al, 0x1d
jmp case.0x14009ce40.0
mov al, 0x26
jmp case.0x14009ce40.0
mov al, 0x1a
jmp case.0x14009ce40.0
mov qword [rsp + 0xb8], rcx
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0xb8]
lea r8, [rsp + 0xa0]
call sym.std::sys::windows::pipe::AnonPipe::read_to_end::h7a19fe5f2bad048c
cmp qword [rsp + 0x50], 0
jne 0x14009d328
mov rcx, qword [rsp + 0xb8]
call fcn.1401259d4
jmp 0x14009d192
movzx eax, al
cmp eax, 0xb
jne 0x14009d2b8
mov rcx, rbx
call fcn.1401259d4
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0xd8]
mov qword [rsi], 0
mov rbx, qword [rsi + 0x30]
mov rcx, rbx
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
test eax, eax
je 0x14009d206
call fcn.140125894
shl rax, 0x20
or rax, 2
mov qword [rdi + 8], rax
mov qword [rdi], 0
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x14009d1e0
mov rcx, qword [rsp + 0x38]
mov r8d, 1
call sym.__rust_dealloc
mov rdx, qword [rsp + 0xa8]
test rdx, rdx
je 0x14009d27b
mov rcx, qword [rsp + 0xa0]
mov r8d, 1
call sym.__rust_dealloc
jmp 0x14009d27b
mov dword [rsp + 0x50], 0
lea rdx, [rsp + 0x50]
mov rcx, rbx
call sub.KERNEL32.dll_GetExitCodeProcess
test eax, eax
je 0x14009d1ae
mov eax, dword [rsp + 0x50]
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x60], rcx
movups xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x50], xmm0
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x78], rcx
movups xmm1, xmmword [rsp + 0x38]
movups xmmword [rsp + 0x68], xmm1
movups xmmword [rdi], xmm0
mov rcx, qword [rsp + 0x70]
mov qword [rdi + 0x20], rcx
mov rcx, qword [rsp + 0x78]
mov qword [rdi + 0x28], rcx
mov rcx, qword [rsp + 0x60]
mov qword [rdi + 0x10], rcx
mov rcx, qword [rsp + 0x68]
mov qword [rdi + 0x18], rcx
mov dword [rdi + 0x30], eax
mov rsi, qword [rsi + 0x38]
mov rcx, rbx
call fcn.1401259d4
mov rcx, rsi
call fcn.1401259d4
mov rax, rdi
movaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rbx, qword [rsp + 0x30]
jmp 0x14009d17d
shl rdi, 0x20
or rdi, 2
mov qword [rsp + 0x50], rdi
lea rax, str.library_std_srcprocess.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x140145038]
lea r9, sym.core::ptr::drop_in_place_std::io::error::Error_::hbe988a8389101686
lea r8, [rsp + 0x50]
mov edx, 0x2b
call dbg.unwrap_failed
jmp 0x14009d366
lea r8, [0x140147118]
mov rcx, rbp
mov rdx, rax
call dbg.slice_index_order_fail
jmp 0x14009d366
mov rbp, rax
lea rax, [0x140147118]
mov qword [rsp + 0x88], rax
mov rcx, rbp
mov r8, qword [rsp + 0x88]
call dbg.slice_end_index_len_fail
jmp 0x14009d366
mov qword [rsp + 0x28], rsi
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xe0], rax
lea rax, str.library_std_srcprocess.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x140145038]
lea r9, sym.core::ptr::drop_in_place_std::io::error::Error_::hbe988a8389101686
lea r8, [rsp + 0xe0]
mov edx, 0x2b
call dbg.unwrap_failed
ud2
lea rax, [0x140147148]
mov qword [rsp + 0x88], rax
mov edx, 0x20
mov rbp, rdi
jmp 0x14009d316