Function at 0x140001850
Capabilities:
Create process on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
movabs r15, 0x8000000000000000
lea rdx, str.PUBLICDocumentsC:UsersPublicsrc_main.rsmo_
lea rcx, [rsp + 0xb0]
mov r8d, 6
call sym.std::env::_var::hdf5cfc9d92624f9e
mov rbx, qword [rsp + 0xb0]
lea rax, [r15 + 1]
cmp rbx, rax
jne 0x1400018b2
mov rbx, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xc8]
jmp 0x140001922
mov r14, qword [rsp + 0xb8]
mov rax, qword [0x14029d128]
movzx eax, byte [rax]
mov esi, 0xf
mov ecx, 0xf
mov edx, 1
call sym.__rust_alloc
test rax, rax
je 0x140002004
mov rdi, rax
movabs rax, 0x63696c6275505c73
mov qword [rdi + 7], rax
movabs rax, 0x73726573555c3a43
mov qword [rdi], rax
lea rax, [rbx*2]
test rax, rax
je 0x14000191d
mov r8d, 1
mov rcx, r14
mov rdx, rbx
call sym.__rust_dealloc
mov ebx, 0xf
mov qword [rsp + 0x20], 9
lea r9, [0x140276f55]
lea rcx, [rsp + 0xb0]
mov rdx, rdi
mov r8, rsi
call sym.std::path::Path::_join::hb96b5b808166ac2a
lea rcx, [rsp + 0xb0]
call sym.std::sys::os_str::wtf8::Buf::as_mut_slice::h30fe6b7321b7e128
mov rcx, rax
call sym.std::path::Path::is_dir::h2ffde7e70c5d6042
test al, al
je 0x140001ad8
mov r14, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xb8]
movups xmm0, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x50], xmm0
test rbx, rbx
je 0x140001995
mov r8d, 1
mov rcx, rdi
mov rdx, rbx
call sym.__rust_dealloc
cmp r14, r15
je 0x140001ac1
movaps xmm0, xmmword [rsp + 0x50]
movups xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], rsi
lea rcx, [rsp + 0x70]
call sym.std::sys::os_str::wtf8::Buf::as_mut_slice::h30fe6b7321b7e128
mov r8, rdx
mov qword [rsp + 0x20], 0xb
lea r9, str.calibre.execalibre_launcher.dllMZ
lea rcx, [rsp + 0x90]
mov rdx, rax
call sym.std::path::Path::_join::hb96b5b808166ac2a
lea rcx, [rsp + 0x70]
call sym.std::sys::os_str::wtf8::Buf::as_mut_slice::h30fe6b7321b7e128
mov r8, rdx
mov qword [rsp + 0x20], 0x14
lea r9, [0x14009d0db]
lea rcx, [rsp + 0x120]
mov rdx, rax
call sym.std::path::Path::_join::hb96b5b808166ac2a
lea rcx, [rsp + 0x90]
call sym.std::sys::os_str::wtf8::Buf::as_mut_slice::h30fe6b7321b7e128
lea r8, [0x14009d0ef]
mov r9d, 0xffc0
mov rcx, rax
call sym.first_stage::write_to_correct_path::h10bf5552c6114313
mov rsi, rax
test rax, rax
jne 0x140001a67
lea rcx, [rsp + 0x120]
call sym.std::sys::os_str::wtf8::Buf::as_mut_slice::h30fe6b7321b7e128
lea r8, [0x1400ad0af]
mov r9d, 0x1c9ea0
mov rcx, rax
call sym.first_stage::write_to_correct_path::h10bf5552c6114313
mov rsi, rax
test rax, rax
je 0x140001b13
mov rdx, qword [rsp + 0x120]
test rdx, rdx
je 0x140001a87
mov rcx, qword [rsp + 0x128]
mov r8d, 1
call sym.__rust_dealloc
mov rdx, qword [rsp + 0x90]
test rdx, rdx
je 0x140001aa7
mov rcx, qword [rsp + 0x98]
mov r8d, 1
call sym.__rust_dealloc
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x140001ac1
mov rcx, qword [rsp + 0x78]
mov r8d, 1
call sym.__rust_dealloc
mov rax, rsi
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ecx, ecx
call sym.std::io::error::Error::new::h82e554ac24ec3fc8
mov rsi, rax
mov rdx, qword [rsp + 0xb0]
test rdx, rdx
je 0x140001b02
mov rcx, qword [rsp + 0xb8]
mov r8d, 1
call sym.__rust_dealloc
mov r14, r15
test rbx, rbx
jne 0x140001984
jmp 0x140001995
lea rcx, [rsp + 0x90]
call sym.std::sys::os_str::wtf8::Buf::as_mut_slice::h30fe6b7321b7e128
mov r8, rdx
lea rcx, [rsp + 0xb0]
mov rdx, rax
call sym._ZN3std3ffi6os_str95__LT_impl_u20_core..convert..TryFrom_LT__RF_std..ffi..os_str..OsStr_GT__u20_for_u20__RF_str_GT_8try_from17
cmp qword [rsp + 0xb0], 0
jne 0x140002015
mov rdx, qword [rsp + 0xb8]
mov r8, qword [rsp + 0xc0]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x160], xmm0
mov qword [rsp + 0x170], 0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
mov qword [rsp + 0x110], 0
mov dword [rsp + 0xb0], 0x68
lea rcx, [rsp + 0x50]
call sym.std::sys::os_str::wtf8::Slice::to_owned::h13bae00f91567cc3
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x150], xmm1
movaps xmmword [rsp + 0x140], xmm0
lea rcx, [rsp + 0x140]
call sym.std::sys::os_str::wtf8::Buf::as_mut_slice::h30fe6b7321b7e128
lea r15, [rax + rdx]
xor r12d, r12d
mov ebp, 4
mov edi, 8
mov esi, 0
mov r14d, 0
mov r13d, 0
test rax, rax
je 0x140001d1b
test rdx, rdx
je 0x140001d1b
movzx r14d, byte [rax]
test r14b, r14b
js 0x140001c29
inc rax
mov r12, rax
jmp 0x140001cc8
mov ecx, r14d
and ecx, 0x1f
movzx r8d, byte [rax + 1]
and r8d, 0x3f
cmp r14b, 0xdf
jbe 0x140001c73
movzx edx, byte [rax + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp r14b, 0xf0
jb 0x140001c85
mov r12, rax
add r12, 4
movzx r14d, byte [rax + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and r14d, 0x3f
or r14d, edx
or r14d, ecx
jmp 0x140001c94
add rax, 2
shl ecx, 6
or ecx, r8d
mov r12, rax
mov r14d, ecx
jmp 0x140001cc8
add rax, 3
shl ecx, 0xc
or edx, ecx
mov r12, rax
mov r14d, edx
cmp r14d, 0xffff
jbe 0x140001cc8
lea ecx, [r14 + 0xff0000]
shr ecx, 0xa
or ecx, 0xd800
and r14d, 0x3ff
or r14d, 0xdc00
mov eax, 2
mov esi, r14d
mov r14d, ecx
jmp 0x140001ccf
mov eax, 1
xor esi, esi
mov rcx, r15
sub rcx, r12
add rcx, 3
mov rdx, 0xffffffffffffffff
cmovae rdx, rcx
shr rdx, 2
add rdx, rax
cmp rdx, 4
mov ebp, 3
cmovae rbp, rdx
movabs rax, 0x3ffffffffffffffe
lea rdi, [rbp*2 + 2]
cmp rdx, rax
ja 0x140002023
inc rbp
mov r13w, 1
mov rax, qword [0x14029d128]
movzx eax, byte [rax]
mov ebx, 2
mov edx, 2
mov rcx, rdi
call sym.__rust_alloc
test rax, rax
je 0x140002025
mov word [rax], r14w
mov qword [rsp + 0x50], rbp
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 1
mov edi, 1
lea rbx, [rsp + 0x50]
jmp 0x140001d7e
mov esi, ecx
mov word [rax + rdi*2], bp
inc rdi
mov qword [rsp + 0x60], rdi
test r12, r12
je 0x140001de0
test si, si
je 0x140001dc0
xor ecx, ecx
mov ebp, esi
cmp rdi, qword [rsp + 0x50]
jne 0x140001d70
mov rax, r15
sub rax, r12
add rax, 3
mov rdx, 0xffffffffffffffff
cmovb rax, rdx
shr rax, 2
movzx r8d, r13w
cmp cx, 1
sbb r8, 0xffffffffffffffff
add r8, rax
mov esi, ecx
jmp 0x140001e0d
cmp r12, r15
je 0x140001de0
movzx ebp, byte [r12]
test bpl, bpl
js 0x140001e25
inc r12
xor ecx, ecx
jmp 0x140001d8c
mov r14, qword [rsp + 0x50]
cmp r13w, 1
jne 0x140001ec3
xor ebp, ebp
mov r12d, 0
mov r13d, 0
mov r8d, 0
cmp rdi, r14
jne 0x140001d72
inc r8
mov rcx, rbx
mov rdx, rdi
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::hf7c57b840af1a38c
mov rax, qword [rsp + 0x58]
jmp 0x140001d72
mov ecx, ebp
and ecx, 0x1f
movzx r8d, byte [r12 + 1]
and r8d, 0x3f
cmp bpl, 0xdf
jbe 0x140001e79
movzx edx, byte [r12 + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp bpl, 0xf0
jb 0x140001e8c
movzx ebp, byte [r12 + 3]
add r12, 4
and ecx, 7
shl ecx, 0x12
shl edx, 6
and ebp, 0x3f
or ebp, edx
or ebp, ecx
cmp ebp, 0xffff
ja 0x140001e9f
xor ecx, ecx
jmp 0x140001d8c
add r12, 2
shl ecx, 6
or ecx, r8d
mov ebp, ecx
xor ecx, ecx
jmp 0x140001d8c
add r12, 3
shl ecx, 0xc
or edx, ecx
mov ebp, edx
cmp ebp, 0xffff
jbe 0x140001e72
lea edx, [rbp + 0xff0000]
shr edx, 0xa
or edx, 0xd800
and ebp, 0x3ff
or ebp, 0xdc00
mov ecx, ebp
mov ebp, edx
jmp 0x140001d8c
mov rdi, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x140]
test rdx, rdx
je 0x140001ee8
mov rcx, qword [rsp + 0x148]
mov r8d, 1
call sym.__rust_dealloc
lea rax, [rsp + 0x160]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x40], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], 0x10
mov dword [rsp + 0x20], 0
xor ecx, ecx
mov rdx, rdi
xor r8d, r8d
xor r9d, r9d
call sub.KERNEL32.dll_CreateProcessW
test eax, eax
je 0x140001fc6
mov rcx, qword [rsp + 0x160]
call sub.KERNEL32.dll_CloseHandle
mov rcx, qword [rsp + 0x168]
call sub.KERNEL32.dll_CloseHandle
test r14, r14
je 0x140001f65
add r14, r14
mov r8d, 2
mov rcx, rdi
mov rdx, r14
call sym.__rust_dealloc
mov rdx, qword [rsp + 0x120]
test rdx, rdx
je 0x140001f85
mov rcx, qword [rsp + 0x128]
mov r8d, 1
call sym.__rust_dealloc
mov rdx, qword [rsp + 0x90]
test rdx, rdx
je 0x140001fa5
mov rcx, qword [rsp + 0x98]
mov r8d, 1
call sym.__rust_dealloc
mov rdx, qword [rsp + 0x70]
test rdx, rdx
je 0x140001fbf
mov rcx, qword [rsp + 0x78]
mov r8d, 1
call sym.__rust_dealloc
xor esi, esi
jmp 0x140001ac1
call sym.std::sys::pal::windows::os::errno::h64d3f6efc49f2d2e
mov esi, eax
shl rsi, 0x20
test r14, r14
je 0x140001fea
add r14, r14
mov r8d, 2
mov rcx, rdi
mov rdx, r14
call sym.__rust_dealloc
or rsi, 2
mov rdx, qword [rsp + 0x120]
test rdx, rdx
jne 0x140001a74
jmp 0x140001a87
mov ecx, 1
mov edx, 0xf
call sym.alloc::raw_vec::handle_error::hd43ffb3afada7951
jmp 0x140002030
lea rcx, [0x140276f78]
call sym.core::option::unwrap_failed::h38ae581b954ce070
jmp 0x140002030
xor ebx, ebx
mov rcx, rbx
mov rdx, rdi
call sym.alloc::raw_vec::handle_error::hd43ffb3afada7951
ud2