Function at 0x14017bc30
Capabilities:
Create process on windows
Get common file path
Query environment variable

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x638
movdqa xmmword [rsp + 0x620], xmm6
mov byte [rsp + 0x11f], r9b
mov qword [rsp + 0x1e0], r8
mov qword [rsp + 0x150], rcx
mov r13, qword [rdx + 0x60]
mov qword [rsp + 0x128], rdx
movzx eax, byte [rdx + 0x68]
test al, al
jne 0x14017bc91
test r13, r13
jne 0x14017bc91
mov qword [rsp + 0x1e8], 0
xor r15d, r15d
jmp 0x14017c9b6
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x140], 0
test al, al
jne 0x14017bf08
mov qword [rsp + 0x70], r13
call sub.kernel32.dll_GetEnvironmentStringsW
test rax, rax
je 0x14017f53e
lea r12, [rsp + 0x228]
lea rbx, [rsp + 0xe0]
lea r14, [rsp + 0x160]
lea rdi, [rsp + 0x210]
mov qword [rsp + 0x58], rax
mov r15, rax
nop dword [rax]
cmp word [r15], 0
je 0x14017bef9
mov rbp, r15
mov rcx, 0xfffffffffffffffe
xor edx, edx
nop word [rax + rax]
mov r13, rdx
mov rax, rcx
inc rdx
add rcx, 2
cmp word [rbp + r13*2], 0
jne 0x14017bd10
lea r15, [rdx*2]
add r15, rbp
cmp r13, 1
je 0x14017bcf0
test r13, r13
je 0x14017f46f
xor esi, esi
nop word cs:[rax + rax]
cmp word [rbp + rsi*2 + 2], 0x3d
je 0x14017bd70
inc rsi
add rax, 0xfffffffffffffffe
jne 0x14017bd50
jmp 0x14017bcf0
lea r8, [rsi + 1]
cmp rsi, r13
jae 0x14017f487
mov rcx, rbx
mov rdx, rbp
call fcn.140158840
add rsi, 2
mov r8, r13
sub r8, rsi
jb 0x14017f4a1
lea rdx, [rsi*2]
add rdx, rbp
mov rcx, r14
call fcn.140158840
movups xmm0, xmmword [rsp + 0xe0]
movups xmm1, xmmword [rsp + 0xf0]
movaps xmmword [rsp + 0x220], xmm1
movaps xmmword [rsp + 0x210], xmm0
movups xmm0, xmmword [rsp + 0x160]
movups xmm1, xmmword [rsp + 0x170]
movups xmmword [r12 + 0x18], xmm1
movups xmmword [r12 + 8], xmm0
movaps xmm0, xmmword [rsp + 0x210]
movaps xmm1, xmmword [rsp + 0x220]
movaps xmm2, xmmword [rsp + 0x230]
movaps xmm3, xmmword [rsp + 0x240]
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x90], xmm1
movaps xmmword [rsp + 0xa0], xmm2
movaps xmmword [rsp + 0xb0], xmm3
cmp byte [rsp + 0x98], 2
je 0x14017bef9
mov rsi, qword [rsp + 0x80]
mov rax, qword [rsp + 0x90]
add rax, rsi
mov qword [rsp + 0x160], rsi
mov qword [rsp + 0x168], rax
mov word [rsp + 0x170], 0
mov rcx, rbx
mov rdx, r14
call fcn.14017fba0
movaps xmm0, xmmword [rsp + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
movdqu xmm0, xmmword [rsp + 0xe0]
movdqa xmmword [rsp + 0x210], xmm0
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x220], rax
mov rcx, r14
lea rdx, [rsp + 0x130]
mov r8, rdi
lea r9, [rsp + 0xa0]
call fcn.140180450
cmp byte [rsp + 0x178], 2
je 0x14017bcf0
cmp qword [rsp + 0x168], 0
je 0x14017bcf0
mov rcx, qword [rsp + 0x160]
mov edx, 1
call fcn.14002a3e0
jmp 0x14017bcf0
mov rcx, qword [rsp + 0x58]
call sub.kernel32.dll_FreeEnvironmentStringsW
mov r13, qword [rsp + 0x70]
movabs rdx, 0x3ffffffffffffffe
mov rcx, qword [rsp + 0x128]
mov rax, qword [rcx + 0x50]
mov rbx, qword [rcx + 0x58]
xor r14d, r14d
test rax, rax
setne r14b
cmove r13, rax
xor r12d, r12d
inc rdx
mov qword [rsp + 0x108], rdx
jmp 0x14017bf42
xor eax, eax
test r13, r13
je 0x14017c7ed
test r14, r14
je 0x14017bfa0
test r12, r12
jne 0x14017bfa0
mov r14d, 1
test rbx, rbx
je 0x14017bfaa
mov rdx, rbx
and rdx, 7
je 0x14017bfaf
mov rcx, rbx
and rcx, 0xfffffffffffffff8
mov r12, rax
nop word cs:[rax + rax]
mov r12, qword [r12 + 0x3d8]
dec rdx
jne 0x14017bf80
cmp rbx, 8
jae 0x14017bfc0
jmp 0x14017bfff
test r14, r14
jne 0x14017c003
jmp 0x14017f3fe
mov r12, rax
jmp 0x14017bfff
mov r12, rax
mov rcx, rbx
cmp rbx, 8
jb 0x14017bfff
nop dword [rax + rax]
mov rax, qword [r12 + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov r12, qword [rax + 0x3d8]
add rcx, 0xfffffffffffffff8
jne 0x14017bfc0
xor ebx, ebx
xor eax, eax
movzx ecx, word [r12 + 0x3d2]
mov rsi, r12
mov r15, rbx
cmp rbx, rcx
jb 0x14017c048
nop word [rax + rax]
mov rcx, qword [rsi + 0x160]
test rcx, rcx
je 0x14017f1b1
movzx r15d, word [rsi + 0x3d0]
inc rax
mov rsi, rcx
cmp r15w, word [rcx + 0x3d2]
jae 0x14017c020
test rax, rax
je 0x14017c0e0
mov r12, qword [rsi + r15*8 + 0x3e0]
mov rcx, rax
dec rcx
je 0x14017c0cf
mov rdx, rcx
and rdx, 7
je 0x14017c086
mov rcx, rdx
nop dword [rax]
mov r12, qword [r12 + 0x3d8]
dec rcx
jne 0x14017c070
not rdx
add rdx, rax
mov rcx, rdx
add rax, 0xfffffffffffffffe
cmp rax, 7
jb 0x14017c0cf
mov rax, qword [r12 + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov rax, qword [rax + 0x3d8]
mov r12, qword [rax + 0x3d8]
add rcx, 0xfffffffffffffff8
jne 0x14017c090
xor ebx, ebx
jmp 0x14017c0e7
lea rbx, [r15 + 1]
mov r12, rsi
dec r13
imul rax, r15, 0x38
lea rbp, [rsi + rax]
add rbp, 0x168
shl r15, 5
cmp byte [rsi + r15 + 0x18], 2
jne 0x14017c160
mov rdi, qword [rsp + 0x130]
mov eax, 0
test rdi, rdi
je 0x14017bf42
mov rsi, rbx
mov r9, qword [rbp]
mov rax, qword [rbp + 0x10]
mov rbx, qword [rsp + 0x138]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0xe0]
mov rdx, rdi
mov r8, rbx
call fcn.14017fda0
cmp qword [rsp + 0xe0], 0
je 0x14017c344
xor eax, eax
mov rbx, rsi
jmp 0x14017bf42
mov qword [rsp + 0x60], r14
mov r14, qword [rbp + 0x18]
mov rdi, qword [rbp + 0x28]
test rdi, rdi
mov qword [rsp + 0x78], rbx
je 0x14017c19e
js 0x14017f41b
movzx eax, byte [0x14038d300]
mov edx, 1
mov rcx, rdi
call fcn.14002a350
mov rbx, rax
test rax, rax
jne 0x14017c1a3
jmp 0x14017f44b
mov ebx, 1
mov rcx, rbx
mov rdx, r14
mov r8, rdi
call sub.msvcrt.dll_memcpy
movzx eax, byte [rbp + 0x30]
mov rdx, qword [rbp]
mov rbp, qword [rbp + 0x10]
mov r14d, 2
test rbp, rbp
mov qword [rsp + 0x70], r13
mov byte [rsp + 0x58], al
je 0x14017c220
cmp rbp, qword [rsp + 0x108]
ja 0x14017f425
mov r13, rbp
add r13, rbp
je 0x14017c220
mov qword [rsp + 0x110], rdx
movzx eax, byte [0x14038d300]
mov edx, 2
mov rcx, r13
call fcn.14002a350
test rax, rax
je 0x14017f45d
mov r14, rax
mov rdx, qword [rsp + 0x110]
jmp 0x14017c223
xor r13d, r13d
add rsi, r15
mov rcx, r14
mov r8, r13
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x228], rbx
mov qword [rsp + 0x230], rdi
mov qword [rsp + 0x238], rdi
movzx eax, byte [rsp + 0x58]
mov byte [rsp + 0x240], al
mov qword [rsp + 0x210], r14
mov qword [rsp + 0x218], rbp
mov qword [rsp + 0x220], rbp
mov rbx, qword [rsi]
mov rdi, qword [rsi + 0x10]
test rdi, rdi
je 0x14017c2a5
mov r13, qword [rsp + 0x70]
js 0x14017f441
movzx eax, byte [0x14038d300]
mov edx, 1
mov rcx, rdi
call fcn.14002a350
mov r14, rax
test rax, rax
jne 0x14017c2b0
jmp 0x14017f42f
mov r14d, 1
mov r13, qword [rsp + 0x70]
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
movzx eax, byte [rsi + 0x18]
mov qword [rsp + 0x80], r14
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x90], rdi
mov byte [rsp + 0x98], al
lea rcx, [rsp + 0x160]
lea rdx, [rsp + 0x130]
lea r8, [rsp + 0x210]
lea r9, [rsp + 0x80]
call fcn.140180450
cmp byte [rsp + 0x178], 2
mov r14, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x78]
je 0x14017bf40
cmp qword [rsp + 0x168], 0
je 0x14017bf40
mov rcx, qword [rsp + 0x160]
mov edx, 1
call fcn.14002a3e0
jmp 0x14017bf40
mov rax, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0xf8]
mov byte [rsp + 0x6f], 0
test rdx, rdx
je 0x14017c501
mov rax, qword [rax + rcx*8 + 0x3d8]
mov rcx, rdx
dec rcx
je 0x14017c43e
mov r8, rcx
and r8, 7
je 0x14017c3ae
mov rcx, r8
nop word [rax + rax]
movzx r9d, word [rax + 0x3d2]
mov rax, qword [rax + r9*8 + 0x3d8]
dec rcx
jne 0x14017c390
not r8
add r8, rdx
mov rcx, r8
add rdx, 0xfffffffffffffffe
cmp rdx, 7
jb 0x14017c43e
nop dword [rax]
movzx edx, word [rax + 0x3d2]
mov rax, qword [rax + rdx*8 + 0x3d8]
movzx edx, word [rax + 0x3d2]
mov rax, qword [rax + rdx*8 + 0x3d8]
movzx edx, word [rax + 0x3d2]
mov rax, qword [rax + rdx*8 + 0x3d8]
movzx edx, word [rax + 0x3d2]
mov rax, qword [rax + rdx*8 + 0x3d8]
movzx edx, word [rax + 0x3d2]
mov rax, qword [rax + rdx*8 + 0x3d8]
movzx edx, word [rax + 0x3d2]
mov rax, qword [rax + rdx*8 + 0x3d8]
movzx edx, word [rax + 0x3d2]
mov rax, qword [rax + rdx*8 + 0x3d8]
movzx edx, word [rax + 0x3d2]
mov rax, qword [rax + rdx*8 + 0x3d8]
add rcx, 0xfffffffffffffff8
jne 0x14017c3c0
movzx ecx, word [rax + 0x3d2]
dec rcx
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x1c8], 0
mov qword [rsp + 0x1d0], rcx
lea rcx, [rsp + 0x210]
lea rdx, [rsp + 0x1c0]
lea r8, [rsp + 0x6f]
call fcn.14017ff00
mov rax, qword [rsp + 0x260]
mov qword [rsp + 0x1b0], rax
movups xmm0, xmmword [rsp + 0x250]
movaps xmmword [rsp + 0x1a0], xmm0
movdqu xmm0, xmmword [rsp + 0x210]
movups xmm1, xmmword [rsp + 0x220]
movups xmm2, xmmword [rsp + 0x230]
movups xmm3, xmmword [rsp + 0x240]
movaps xmmword [rsp + 0x190], xmm3
movaps xmmword [rsp + 0x180], xmm2
movaps xmmword [rsp + 0x170], xmm1
movdqa xmmword [rsp + 0x160], xmm0
mov rdx, qword [rsp + 0x268]
mov rax, qword [rsp + 0x278]
movzx ecx, word [rdx + 0x3d2]
cmp rax, rcx
jae 0x14017c53c
mov rcx, rdx
jmp 0x14017c579
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], rcx
lea rcx, [rsp + 0x210]
lea rdx, [rsp + 0x80]
lea r8, [rsp + 0x6f]
call fcn.14017ff00
jmp 0x14017c693
mov r8, qword [rsp + 0x270]
nop word cs:[rax + rax]
mov rcx, qword [rdx + 0x160]
test rcx, rcx
je 0x14017c574
movzx eax, word [rdx + 0x3d0]
inc r8
mov rdx, rcx
cmp ax, word [rcx + 0x3d2]
jae 0x14017c550
jmp 0x14017c579
mov rax, r8
xor ecx, ecx
imul rdx, rax, 0x38
shl rax, 5
mov r8, qword [rcx + rdx + 0x198]
mov qword [rsp + 0xb0], r8
movups xmm0, xmmword [rcx + rdx + 0x168]
movups xmm1, xmmword [rcx + rdx + 0x178]
movups xmm2, xmmword [rcx + rdx + 0x188]
movaps xmmword [rsp + 0xa0], xmm2
movaps xmmword [rsp + 0x90], xmm1
movaps xmmword [rsp + 0x80], xmm0
mov r8, qword [rsp + 0x190]
mov qword [rcx + rdx + 0x198], r8
movaps xmm0, xmmword [rsp + 0x160]
movaps xmm1, xmmword [rsp + 0x170]
movaps xmm2, xmmword [rsp + 0x180]
movups xmmword [rcx + rdx + 0x188], xmm2
movups xmmword [rcx + rdx + 0x178], xmm1
movups xmmword [rcx + rdx + 0x168], xmm0
movups xmm0, xmmword [rcx + rax]
movups xmm1, xmmword [rcx + rax + 0x10]
lea rdx, [rsp + 0xb8]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
lea rdx, [rsp + 0x198]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rcx + rax], xmm0
movups xmmword [rcx + rax + 0x10], xmm1
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x260], rax
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x250], xmm0
movdqa xmm0, xmmword [rsp + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movaps xmm2, xmmword [rsp + 0xa0]
movaps xmm3, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x240], xmm3
movaps xmmword [rsp + 0x230], xmm2
movaps xmmword [rsp + 0x220], xmm1
movdqa xmmword [rsp + 0x210], xmm0
mov rax, qword [rsp + 0x260]
mov qword [rsp + 0xd0], rax
movaps xmm0, xmmword [rsp + 0x250]
movaps xmmword [rsp + 0xc0], xmm0
movdqa xmm0, xmmword [rsp + 0x210]
movaps xmm1, xmmword [rsp + 0x220]
movaps xmm2, xmmword [rsp + 0x230]
movaps xmm3, xmmword [rsp + 0x240]
movaps xmmword [rsp + 0xb0], xmm3
movaps xmmword [rsp + 0xa0], xmm2
dec qword [rsp + 0x140]
movaps xmmword [rsp + 0x90], xmm1
movdqa xmmword [rsp + 0x80], xmm0
cmp byte [rsp + 0x6f], 0
je 0x14017c73f
test rbx, rbx
je 0x14017f4b8
mov rax, qword [rdi + 0x3d8]
mov qword [rsp + 0x130], rax
dec rbx
mov qword [rsp + 0x138], rbx
mov qword [rax + 0x160], 0
mov edx, 8
mov rcx, rdi
call fcn.14002a3e0
cmp byte [rsp + 0xb0], 2
mov eax, 0
mov rbx, rsi
je 0x14017bf42
mov r15, r14
mov rbx, qword [rsp + 0x80]
mov r14, qword [rsp + 0x88]
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x58], rax
mov rdi, qword [rsp + 0xc0]
movzx ebp, byte [rsp + 0xd0]
cmp qword [rsp + 0xa0], 0
je 0x14017c7a2
mov rcx, qword [rsp + 0x98]
mov edx, 1
call fcn.14002a3e0
test r14, r14
je 0x14017c7b4
mov edx, 2
mov rcx, rbx
call fcn.14002a3e0
mov eax, 0
cmp bpl, 2
mov r14, r15
mov rbx, rsi
je 0x14017bf42
mov eax, 0
test rdi, rdi
je 0x14017bf42
mov edx, 1
mov rcx, qword [rsp + 0x58]
call fcn.14002a3e0
xor eax, eax
jmp 0x14017bf42
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x200], rax
movdqu xmm0, xmmword [rsp + 0x130]
movdqu xmmword [rsp + 0x1f0], xmm0
mov qword [rsp + 0x1e8], 1
movzx eax, byte [0x14038d300]
mov r13d, 4
mov ecx, 4
mov edx, 1
call fcn.14002a350
test rax, rax
je 0x14017f4d5
mov rsi, rax
mov dword [rax], 0x48544150
add rax, 4
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], rax
mov word [rsp + 0x90], 0
lea rcx, [rsp + 0x160]
lea rdx, [rsp + 0x80]
call fcn.14017fba0
mov qword [rsp + 0x228], rsi
mov qword [rsp + 0x230], 4
mov qword [rsp + 0x238], 4
mov byte [rsp + 0x240], 0
movdqu xmm0, xmmword [rsp + 0x160]
movdqa xmmword [rsp + 0x210], xmm0
mov r15, qword [rsp + 0x170]
mov qword [rsp + 0x220], r15
mov rdi, qword [rsp + 0x210]
mov r14, qword [rsp + 0x1f0]
test r14, r14
je 0x14017c984
mov qword [rsp + 0x70], rsi
mov r13, qword [rsp + 0x1f8]
lea rcx, [r14 + 0x168]
movzx r12d, word [r14 + 0x3d2]
imul rbx, r12, 0x38
mov rbp, 0xffffffffffffffff
nop word cs:[rax + rax]
test rbx, rbx
je 0x14017c950
lea rsi, [rcx + 0x38]
mov r8, qword [rcx]
mov r9d, dword [rcx + 0x10]
mov dword [rsp + 0x20], 1
mov rcx, rdi
mov edx, r15d
call sub.kernel32.dll_CompareStringOrdinal
add rbx, 0xffffffffffffffc8
inc rbp
mov rcx, rsi
cmp eax, 3
je 0x14017c910
cmp eax, 1
jne 0x14017c967
jmp 0x14017c953
mov rbp, r12
sub r13, 1
jb 0x14017ce81
mov r14, qword [r14 + rbp*8 + 0x3d8]
jmp 0x14017c8ec
cmp eax, 2
jne 0x14017f36e
test r14, r14
je 0x14017c989
shl rbp, 5
mov r15, qword [r14 + rbp]
mov rbx, qword [r14 + rbp + 0x10]
jmp 0x14017c98c
xor r15d, r15d
jmp 0x14017c991
xor r15d, r15d
mov rsi, qword [rsp + 0x70]
mov edx, 1
mov rcx, rsi
call fcn.14002a3e0
cmp qword [rsp + 0x218], 0
je 0x14017c9b6
mov edx, 2
mov rcx, rdi
call fcn.14002a3e0
mov rax, qword [rsp + 0x128]
mov r13, qword [rax + 0x40]
lea rbp, str.program_path_has_no_file_name
test r13, r13
je 0x14017ca1c
mov r14, qword [rax + 0x30]
cmp r13, 4
jae 0x14017c9e1
lea rax, [0x1401818d0]
jmp 0x14017ca0a
mov eax, dword [r14]
bswap eax
xor ecx, ecx
cmp eax, 0x5c5c3f5c
setb cl
cmp eax, 0x5c5c3f5d
adc ecx, 0xffffffff
lea rcx, [0x1401818c0]
lea rax, [0x1401818d0]
cmove rax, rcx
movzx esi, byte [r13 + r14 - 1]
mov ecx, esi
call rax
test al, al
je 0x14017caa1
cmp r13, 4
jb 0x14017cb07
movzx eax, byte [r13 + r14 - 4]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x2e
jne 0x14017cb07
movzx eax, byte [r14 + r13 - 3]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x65
jne 0x14017cb07
movzx eax, byte [r14 + r13 - 2]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x78
jne 0x14017cb07
lea eax, [rsi - 0x41]
cmp al, 0x1a
setb al
shl al, 5
or al, sil
cmp al, 0x65
sete al
jmp 0x14017cb09
xor eax, eax
lea rcx, [r14 + r13]
mov qword [rsp + 0x70], rcx
xor ecx, ecx
nop word cs:[rax + rax]
cmp r13, rcx
je 0x14017cbee
movzx edx, byte [r14 + rcx]
cmp edx, 0x2f
je 0x14017cb3b
inc rcx
cmp edx, 0x5c
jne 0x14017cb20
test al, al
je 0x14017ccc0
lea rcx, [rsp + 0x210]
mov rdx, r14
mov r8, r13
call fcn.1401572f0
mov rcx, qword [rsp + 0x210]
mov rax, qword [rsp + 0x218]
test rcx, rcx
je 0x14017ce14
mov rdx, qword [rsp + 0x220]
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x218], rax
mov qword [rsp + 0x220], rdx
lea rcx, [rsp + 0x130]
lea rdx, [rsp + 0x210]
call fcn.140181a60
jmp 0x14017da26
xor r8d, r8d
lea rbp, str.nul_byte_found_in_provided_data
mov rax, r14
jmp 0x14017cc0c
xor r8d, r8d
test cx, cx
je 0x14017ca1c
mov cx, 1
test r8w, r8w
jne 0x14017cc00
cmp rax, qword [rsp + 0x70]
je 0x14017ce60
movzx edx, byte [rax]
test dl, dl
js 0x14017cc2d
inc rax
jmp 0x14017cc8c
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rax + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14017cc7e
movzx r9d, byte [rax + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x14017cc96
movzx edx, byte [rax + 3]
add rax, 4
and r8d, 7
shl r8d, 0x12
shl r9d, 6
and edx, 0x3f
or edx, r9d
or edx, r8d
cmp edx, 0xffff
jbe 0x14017cc8c
jmp 0x14017ccac
add rax, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
xor r8d, r8d
mov ecx, edx
jmp 0x14017cc03
add rax, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
cmp edx, 0xffff
jbe 0x14017cc8c
and edx, 0x3ff
or edx, 0xdc00
mov r8d, edx
jmp 0x14017cc03
test r13, r13
js 0x14017f5ce
movzx eax, byte [0x14038d300]
mov edx, 1
mov rcx, r13
call fcn.14002a350
test rax, rax
je 0x14017f4d5
mov rsi, rax
mov rcx, rax
mov rdx, r14
mov r8, r13
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], r13
mov qword [rsp + 0x90], r13
mov byte [rsp + 0x98], 0
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x220], rax
movzx eax, byte [rsp + 0x98]
mov byte [rsp + 0x228], al
mov eax, dword [rsp + 0x99]
mov dword [rsp + 0x229], eax
movzx eax, word [rsp + 0x9d]
mov word [rsp + 0x22d], ax
movzx eax, byte [rsp + 0x9f]
mov byte [rsp + 0x22f], al
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x210], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x218], rax
lea rdx, str..exeprogram_not_found
lea rcx, [rsp + 0x210]
mov r8d, 4
call fcn.140175930
movdqa xmm0, xmmword [rsp + 0x210]
movaps xmm1, xmmword [rsp + 0x220]
movaps xmmword [rsp + 0x90], xmm1
movdqa xmmword [rsp + 0x80], xmm0
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x90]
lea rcx, [rsp + 0x160]
mov rdx, rsi
mov r8, rdi
call fcn.1401818e0
cmp qword [rsp + 0x160], 0
je 0x14017ce2d
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x140], rax
movdqu xmm0, xmmword [rsp + 0x160]
movdqa xmmword [rsp + 0x130], xmm0
jmp 0x14017da0e
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x130], 0
jmp 0x14017da26
mov rcx, rsi
mov rdx, rdi
call fcn.14017abe0
test rax, rax
je case.0x140177053.268
cmp rdx, 2
jne 0x14017ce89
movzx ecx, word [rax]
cmp ecx, 0x2e2e
jne 0x14017ce89
mov r8d, 2
mov r9, rax
jmp 0x14017d970
cmp r13, 0xf
ja 0x14017cec5
xor eax, eax
mov qword [rsp + 0x78], rax
xor eax, eax
nop
cmp byte [r14 + rax], 0x2e
je 0x14017ced9
inc rax
cmp r13, rax
jne 0x14017ce70
jmp 0x14017cee3
xor r15d, r15d
jmp 0x14017c98c
xor r9d, r9d
mov r8, rdx
nop
test r8, r8
je 0x14017ced4
mov rcx, r8
dec r8
cmp byte [rax + rcx - 1], 0x2e
jne 0x14017ce90
mov r10, rdx
sub r10, rcx
jb 0x14017f623
test r8, r8
je 0x14017d96a
mov r9, rax
add rax, rcx
mov rdx, r10
jmp 0x14017d972
mov cl, 0x2e
mov rdx, r14
mov r8, r13
call fcn.14005a2d0
jmp 0x14017cede
jmp 0x14017d972
mov eax, 1
mov qword [rsp + 0x78], rax
test r15, r15
mov qword [rsp + 0x60], r14
je 0x14017cf37
add rbx, r15
mov qword [rsp + 0x160], r15
mov qword [rsp + 0x168], rbx
mov word [rsp + 0x170], 0
mov byte [rsp + 0x178], 1
lea rcx, [rsp + 0x210]
lea rdx, [rsp + 0x160]
call fcn.1401752e0
movzx eax, byte [rsp + 0x228]
cmp al, 2
jne 0x14017d3d9
mov qword [rsp + 0x110], r13
mov qword [rsp + 0xe0], 2
pxor xmm0, xmm0
movdqu xmmword [rsp + 0xe8], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rsp + 0x58], rax
xor r14d, r14d
mov r13d, 0xffffffff
xor edi, edi
xor ebp, ebp
cmp r8, 0x201
jb 0x14017cf8f
jmp 0x14017cfb0
jae 0x14017d06e
cmp r8, 0x201
jae 0x14017cfb0
mov ebx, 0x200
lea rsi, [rsp + 0x210]
mov r15, r8
jmp 0x14017d002
sub r8, rbp
sub rdi, rbp
cmp rdi, r8
jae 0x14017cfe0
lea rcx, [rsp + 0xe0]
mov rdx, rbp
call fcn.1401578b0
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x58], rax
mov r14, qword [rsp + 0xe8]
cmp r14, r13
mov ebp, 0xffffffff
cmovb rbp, r14
mov qword [rsp + 0xf0], rbp
mov rdi, r14
mov rbx, rbp
mov rsi, qword [rsp + 0x58]
mov r15, rbp
xor ecx, ecx
call sub.kernel32.dll_SetLastError
xor ecx, ecx
mov rdx, rsi
mov r8d, r15d
call sub.kernel32.dll_GetModuleFileNameW
mov r12d, eax
test eax, eax
jne 0x14017d02a
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x14017d0b3
mov r8d, r12d
cmp r15, r8
jne 0x14017cf80
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x14017f4e7
add r15, r15
mov eax, 0xffffffff
cmp r15, rax
mov r13d, 0xffffffff
cmovae r15, rax
mov r8, r15
cmp r8, 0x201
jae 0x14017cfb0
jmp 0x14017cf8f
cmp rbx, r8
jb 0x14017f5f5
lea rcx, [rsp + 0x80]
mov rdx, rsi
call fcn.140158840
mov r15, qword [rsp + 0x110]
movdqu xmm0, xmmword [rsp + 0x80]
movups xmm1, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x170], xmm1
movdqa xmmword [rsp + 0x160], xmm0
jmp 0x14017d0d8
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x160], rax
mov byte [rsp + 0x178], 2
mov r15, qword [rsp + 0x110]
test r14, r14
je 0x14017d0ec
mov edx, 2
mov rcx, qword [rsp + 0x58]
call fcn.14002a3e0
cmp byte [rsp + 0x178], 2
jne 0x14017d108
lea rcx, [rsp + 0x160]
call fcn.140158790
jmp 0x14017d1e1
mov rsi, qword [rsp + 0x160]
mov rbx, qword [rsp + 0x168]
mov rdi, qword [rsp + 0x170]
mov r14, qword [rsp + 0x178]
mov rcx, rsi
mov rdx, rdi
call fcn.140177700
cmp rdi, rdx
cmovb rdx, rdi
test rax, rax
cmove rdx, rdi
mov qword [rsp + 0x210], rsi
mov qword [rsp + 0x218], rbx
mov qword [rsp + 0x220], rdx
mov qword [rsp + 0x228], r14
lea rcx, [rsp + 0x210]
mov r14, qword [rsp + 0x60]
mov rdx, r14
mov r8, r15
call fcn.140176700
cmp qword [rsp + 0x78], 1
je 0x14017d18e
lea rcx, [rsp + 0x210]
call fcn.14017ad10
mov rsi, qword [rsp + 0x210]
mov r8, qword [rsp + 0x220]
lea rcx, [rsp + 0x80]
mov rdx, rsi
call fcn.1401818e0
cmp qword [rsp + 0x218], 0
je 0x14017d1c6
mov edx, 1
mov rcx, rsi
call fcn.14002a3e0
mov r8, qword [rsp + 0x80]
test r8, r8
je 0x14017d1e1
movdqu xmm6, xmmword [rsp + 0x88]
jmp 0x14017d7a5
mov qword [rsp + 0x1c0], 2
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x1c8], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rsp + 0x58], rax
xor esi, esi
mov r13d, 0xffffffff
xor edi, edi
xor r14d, r14d
cmp r8, 0x201
jb 0x14017d23f
jmp 0x14017d260
jae 0x14017d31d
cmp r8, 0x201
jae 0x14017d260
mov ebx, 0x200
lea rbp, [rsp + 0x210]
mov r15, r8
jmp 0x14017d2b3
sub r8, r14
sub rdi, r14
cmp rdi, r8
jae 0x14017d290
lea rcx, [rsp + 0x1c0]
mov rdx, r14
call fcn.1401578b0
mov rax, qword [rsp + 0x1c0]
mov qword [rsp + 0x58], rax
mov rsi, qword [rsp + 0x1c8]
cmp rsi, r13
mov r14d, 0xffffffff
cmovb r14, rsi
mov qword [rsp + 0x1d0], r14
mov rdi, rsi
mov rbx, r14
mov rbp, qword [rsp + 0x58]
mov r15, r14
xor ecx, ecx
call sub.kernel32.dll_SetLastError
mov rcx, rbp
mov edx, r15d
call sub.kernel32.dll_GetSystemDirectoryW
mov r12d, eax
test eax, eax
jne 0x14017d2d9
call sub.kernel32.dll_GetLastError
test eax, eax
jne 0x14017d4ff
mov r8d, r12d
cmp r15, r8
jne 0x14017d230
call sub.kernel32.dll_GetLastError
cmp eax, 0x7a
jne 0x14017f504
add r15, r15
mov eax, 0xffffffff
cmp r15, rax
mov r13d, 0xffffffff
cmovae r15, rax
mov r8, r15
cmp r8, 0x201
jae 0x14017d260
jmp 0x14017d23f
cmp rbx, r8
jb 0x14017f60c
lea rcx, [rsp + 0x80]
mov rdx, rbp
call fcn.140158840
mov r14, qword [rsp + 0x60]
mov r15, qword [rsp + 0x110]
lea rcx, [rsp + 0x80]
mov rdx, r14
mov r8, r15
call fcn.140176700
cmp qword [rsp + 0x78], 1
je 0x14017d36b
lea rcx, [rsp + 0x80]
call fcn.14017ad10
mov rbx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x90]
lea rcx, [rsp + 0xe0]
mov rdx, rbx
call fcn.1401818e0
cmp qword [rsp + 0x88], 0
je 0x14017d3a3
mov edx, 1
mov rcx, rbx
call fcn.14002a3e0
movdqu xmm0, xmmword [rsp + 0xe0]
movdqu xmmword [rsp + 0x168], xmm0
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x160], 0
mov dil, 1
jmp 0x14017d527
lea r15, [rsp + 0x229]
lea r12, [rsp + 0x99]
lea rsi, [rsp + 0x210]
lea rdi, [rsp + 0x160]
lea rbx, [rsp + 0x80]
jmp 0x14017d42b
mov rcx, rsi
mov rdx, rdi
call fcn.1401752e0
movzx eax, byte [rsp + 0x228]
cmp al, 2
je 0x14017cf37
mov rcx, qword [rsp + 0x210]
mov rdx, qword [rsp + 0x218]
mov r8, qword [rsp + 0x220]
test r8, r8
jne 0x14017d459
test rdx, rdx
je 0x14017d410
mov edx, 1
call fcn.14002a3e0
jmp 0x14017d410
mov r9d, dword [r15]
mov r10d, dword [r15 + 3]
mov dword [r12 + 3], r10d
mov dword [r12], r9d
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x90], r8
mov byte [rsp + 0x98], al
mov rcx, rbx
mov rdx, r14
mov r8, r13
call fcn.140176700
cmp qword [rsp + 0x78], 1
je 0x14017d4a6
mov rcx, rbx
call fcn.14017ad10
mov r14, qword [rsp + 0x80]
mov r8, qword [rsp + 0x90]
mov rcx, rsi
mov rdx, r14
call fcn.1401818e0
cmp qword [rsp + 0x88], 0
je 0x14017d4d9
mov edx, 1
mov rcx, r14
call fcn.14002a3e0
mov r8, qword [rsp + 0x210]
test r8, r8
jne 0x14017e9c5
mov rcx, rsi
mov rdx, rdi
call fcn.1401752e0
mov r14, qword [rsp + 0x60]
jmp 0x14017d41b
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x160], 1
xor edi, edi
mov r14, qword [rsp + 0x60]
test rsi, rsi
je 0x14017d53b
mov edx, 2
mov rcx, qword [rsp + 0x58]
call fcn.14002a3e0
test dil, dil
je 0x14017d551
mov r8, qword [rsp + 0x168]
test r8, r8
jne 0x14017d79c
lea rcx, [rsp + 0x160]
call fcn.1401819b0
mov qword [rsp + 0x1c0], 2
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x1c8], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rsp + 0x58], rax
xor esi, esi
mov r13d, 0xffffffff
xor edi, edi
xor r14d, r14d
cmp r8, 0x201
jb 0x14017d5af
jmp 0x14017d5d0
mov r9, rax
movups xmm6, xmmword [rsp + 0x218]
mov r14, qword [rsp + 0x60]
jmp 0x14017d7a5
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, str._rustc_cc66ad468955717ab92600c770da8c1601a4ff33library_alloc_srccollections_btree_navigate.rs
mov edx, 0x2b
call fcn.140050c60
jmp 0x14017f67e
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0xe0], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x160], rax
lea rax, [fcn.1401743a0]
mov qword [rsp + 0x168], rax
lea rax, str.comparing_environment_keys_failed:
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 1
mov qword [rsp + 0xa0], 0
lea rax, [rsp + 0x160]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], 1
lea rdx, str.library_std_src_syswindowsprocess.rs
lea rcx, [rsp + 0x80]
call fcn.14004f100
jmp 0x14017f67e
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, str._rustc_cc66ad468955717ab92600c770da8c1601a4ff33library_alloc_srccollections_btree_navigate.rs
mov edx, 0x2b
call fcn.140050c60
jmp 0x14017f67e
call fcn.14004a2d0
jmp 0x14017f67e
call fcn.14004a2d0
jmp 0x14017f67e
mov ecx, 1
mov rdx, rdi
call fcn.14004a310
jmp 0x14017f67e
call fcn.14004a2d0
jmp 0x14017f67e
mov ecx, 1
mov rdx, rdi
call fcn.14004a310
jmp 0x14017f67e
mov ecx, 2
mov rdx, r13
call fcn.14004a310
jmp 0x14017f67e
lea r8, str.library_std_src_syswindowsos.rs
mov ecx, 1
xor edx, edx
call fcn.14004f390
jmp 0x14017f67e
lea rax, str.library_std_src_syswindowsos.rs
mov rcx, r8
mov rdx, r13
mov r8, rax
call fcn.140050440
jmp 0x14017f67e
lea r8, str.library_std_src_syswindowsos.rs
mov rcx, rsi
mov rdx, r13
call fcn.14004f390
jmp 0x14017f67e
lea rcx, str.assertion_failed:_self.height___0
lea r8, [0x140319e00]
mov edx, 0x21
call fcn.140050c60
jmp 0x14017f67e
mov ecx, 1
mov rdx, r13
call fcn.14004a310
jmp 0x14017f67e
lea rcx, str.internal_error:_entered_unreachable_code
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140050c60
jmp 0x14017f67e
lea rcx, str.internal_error:_entered_unreachable_code
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140050c60
jmp 0x14017f67e
call sub.kernel32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x160], rax
lea rax, [rsp + 0x160]
mov qword [rsp + 0x80], rax
lea rax, [fcn.1401743a0]
mov qword [rsp + 0x88], rax
lea rax, str.failure_getting_env_string_from_OS:
mov qword [rsp + 0x210], rax
mov qword [rsp + 0x218], 1
mov qword [rsp + 0x230], 0
lea rax, [rsp + 0x80]
mov qword [rsp + 0x220], rax
mov qword [rsp + 0x228], 1
lea rdx, str.library_std_src_syswindowsos.rs
lea rcx, [rsp + 0x210]
call fcn.14004f100
jmp 0x14017f67e
call fcn.14004a2d0
jmp 0x14017f67e
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, rbx
mov r8, rax
call fcn.140050440
jmp 0x14017f67e
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, rbx
mov r8, rax
call fcn.140050440
jmp 0x14017f67e
lea r8, str._rustc_cc66ad468955717ab92600c770da8c1601a4ff33librarycore_src_sliceiter.rs
call fcn.14004f390
jmp 0x14017f67e