Function at 0x140095ba0
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, 0x658
movdqa xmmword [rsp + 0x640], xmm6
mov qword [rsp + 0x1e8], r8
mov r15, rdx
mov qword [rsp + 0x58], rcx
movzx eax, byte [rdx + 0x68]
mov r13, qword [rdx + 0x60]
test al, al
jne 0x140095bf1
test r13, r13
jne 0x140095bf1
mov qword [rsp + 0x1f0], 0
xor r13d, r13d
jmp 0x1400968fe
mov qword [rsp + 0x130], 0
mov qword [rsp + 0x140], 0
test al, al
mov qword [rsp + 0xb0], r15
jne 0x140095e4e
call sub.KERNEL32.dll_GetEnvironmentStringsW
test rax, rax
je 0x1400993bc
mov qword [rsp + 0x68], r13
lea rdi, [rsp + 0x170]
lea r14, [rsp + 0x230]
lea rsi, [rsp + 0x88]
mov qword [rsp + 0x78], rax
mov r15, rax
nop dword [rax]
cmp word [r15], 0
je 0x140095e37
mov r13, r15
mov rcx, 0xfffffffffffffffe
xor edx, edx
nop word [rax + rax]
mov rbx, rdx
mov rax, rcx
inc rdx
add rcx, 2
cmp word [r13 + rbx*2], 0
jne 0x140095c70
lea r15, [rdx*2]
add r15, r13
cmp rbx, 1
je 0x140095c50
test rbx, rbx
je 0x14009930a
xor ebp, ebp
nop word cs:[rax + rax]
cmp word [r13 + rbp*2 + 2], 0x3d
je 0x140095cd0
inc rbp
add rax, 0xfffffffffffffffe
jne 0x140095cb0
jmp 0x140095c50
lea r8, [rbp + 1]
cmp rbp, rbx
jae 0x140099322
mov rcx, rdi
mov rdx, r13
call fcn.1400713f0
add rbp, 2
mov r8, rbx
sub r8, rbp
jb 0x14009933c
lea rdx, [rbp*2]
add rdx, r13
mov rcx, r14
call fcn.1400713f0
mov r13, qword [rsp + 0x170]
mov r12, qword [rsp + 0x178]
movdqu xmm6, xmmword [rsp + 0x180]
mov rbx, qword [rsp + 0x230]
mov rbp, qword [rsp + 0x238]
lea rax, [rsp + 0x240]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x150], xmm0
movdqa xmmword [rsp + 0x630], xmm6
cmp byte [rsp + 0x638], 2
je 0x140095e37
movq rax, xmm6
add rax, r13
mov qword [rsp + 0x170], r13
mov qword [rsp + 0x178], rax
mov word [rsp + 0x180], 0
mov rcx, rsi
mov rdx, rdi
call fcn.140099d00
mov qword [rsp + 0x248], r13
mov qword [rsp + 0x250], r12
movdqu xmmword [rsp + 0x258], xmm6
movups xmm0, xmmword [rsp + 0x88]
movaps xmmword [rsp + 0x230], xmm0
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x240], rax
mov qword [rsp + 0x170], rbx
mov qword [rsp + 0x178], rbp
movdqa xmm0, xmmword [rsp + 0x150]
lea rax, [rsp + 0x180]
movdqu xmmword [rax], xmm0
mov rcx, rsi
lea rdx, [rsp + 0x130]
mov r8, r14
mov r9, rdi
call fcn.140099f10
cmp byte [rsp + 0xa0], 2
je 0x140095c50
cmp qword [rsp + 0x90], 0
je 0x140095c50
mov r8, qword [rsp + 0x88]
mov rcx, qword [0x140132378]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140095c50
mov rcx, qword [rsp + 0x78]
call sub.KERNEL32.dll_FreeEnvironmentStringsW
mov r15, qword [rsp + 0xb0]
mov r13, qword [rsp + 0x68]
movabs rcx, 0x3ffffffffffffffe
mov rax, qword [r15 + 0x50]
mov rbp, qword [r15 + 0x58]
xor esi, esi
test rax, rax
setne sil
cmove r13, rax
xor r15d, r15d
inc rcx
mov qword [rsp + 0xb8], rcx
jmp 0x140095e82
xor eax, eax
test r13, r13
je 0x140096721
test rsi, rsi
je 0x140095ee0
test r15, r15
jne 0x140095ee0
mov esi, 1
test rbp, rbp
je 0x140095eea
mov rdx, rbp
and rdx, 7
je 0x140095eef
mov rcx, rbp
and rcx, 0xfffffffffffffff8
mov r15, rax
nop word cs:[rax + rax]
mov r15, qword [r15 + 0x3d8]
dec rdx
jne 0x140095ec0
cmp rbp, 8
jae 0x140095f00
jmp 0x140095f3e
test rsi, rsi
jne 0x140095f42
jmp 0x140099291
mov r15, rax
jmp 0x140095f3e
mov r15, rax
mov rcx, rbp
cmp rbp, 8
jb 0x140095f3e
nop dword [rax + rax]
mov rax, qword [r15 + 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 r15, qword [rax + 0x3d8]
add rcx, 0xfffffffffffffff8
jne 0x140095f00
xor ebp, ebp
xor eax, eax
movzx ecx, word [r15 + 0x3d2]
mov r14, r15
mov r12, rbp
cmp rbp, rcx
jb 0x140095f88
nop word cs:[rax + rax]
mov rcx, qword [r14 + 0x160]
test rcx, rcx
je 0x140098d2a
inc rax
movzx r12d, word [r14 + 0x3d0]
mov r14, rcx
cmp r12w, word [rcx + 0x3d2]
jae 0x140095f60
test rax, rax
je 0x140096020
mov r15, qword [r14 + r12*8 + 0x3e0]
mov rcx, rax
dec rcx
je 0x14009600e
mov rdx, rcx
and rdx, 7
je 0x140095fc5
mov rcx, rdx
nop dword [rax]
mov r15, qword [r15 + 0x3d8]
dec rcx
jne 0x140095fb0
not rdx
add rdx, rax
mov rcx, rdx
add rax, 0xfffffffffffffffe
cmp rax, 7
jb 0x14009600e
nop
mov rax, qword [r15 + 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 r15, qword [rax + 0x3d8]
add rcx, 0xfffffffffffffff8
jne 0x140095fd0
xor ebp, ebp
jmp 0x140096028
lea rbp, [r12 + 1]
mov r15, r14
dec r13
imul rax, r12, 0x38
lea rbx, [r14 + rax]
add rbx, 0x168
shl r12, 5
cmp byte [r14 + r12 + 0x18], 2
jne 0x1400960a0
mov rdi, qword [rsp + 0x130]
mov eax, 0
test rdi, rdi
je 0x140095e82
mov r14, rbp
mov r9, qword [rbx]
mov rax, qword [rbx + 0x10]
mov rbp, qword [rsp + 0x138]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x88]
mov rdx, rdi
mov r8, rbp
call fcn.14009b3a0
cmp qword [rsp + 0x88], 0
je 0x140096285
xor eax, eax
mov rbp, r14
jmp 0x140095e82
mov qword [rsp + 0x78], rsi
mov rsi, qword [rbx + 0x18]
mov rdi, qword [rbx + 0x28]
test rdi, rdi
mov qword [rsp + 0x70], rbp
je 0x1400960db
js 0x1400992ae
movzx eax, byte [0x140132410]
mov edx, 1
mov rcx, rdi
call fcn.140007210
test rax, rax
jne 0x1400960e0
jmp 0x1400992e6
mov eax, 1
mov qword [rsp + 0x60], rax
mov rcx, rax
mov rdx, rsi
mov r8, rdi
call sub.msvcrt.dll_memcpy
movzx esi, byte [rbx + 0x30]
mov rdx, qword [rbx]
mov rbp, qword [rbx + 0x10]
mov ebx, 2
test rbp, rbp
mov qword [rsp + 0x68], r13
je 0x140096160
cmp rbp, qword [rsp + 0xb8]
ja 0x1400992b8
mov r13, rbp
add r13, rbp
je 0x140096160
mov qword [rsp + 0x80], rdi
mov rdi, rdx
movzx eax, byte [0x140132410]
mov edx, 2
mov rcx, r13
call fcn.140007210
test rax, rax
je 0x1400992f8
mov rbx, rax
mov rdx, rdi
mov rdi, qword [rsp + 0x80]
jmp 0x140096163
xor r13d, r13d
add r14, r12
mov rcx, rbx
mov r8, r13
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x248], rax
mov qword [rsp + 0x250], rdi
mov qword [rsp + 0x258], rdi
mov byte [rsp + 0x260], sil
mov qword [rsp + 0x230], rbx
mov qword [rsp + 0x238], rbp
mov qword [rsp + 0x240], rbp
mov r13, qword [r14]
mov rsi, qword [r14 + 0x10]
test rsi, rsi
je 0x1400961e1
js 0x1400992dc
movzx eax, byte [0x140132410]
mov edx, 1
mov rcx, rsi
call fcn.140007210
mov r12, rax
test rax, rax
jne 0x1400961e7
jmp 0x1400992ca
mov r12d, 1
mov rcx, r12
mov rdx, r13
mov r8, rsi
call sub.msvcrt.dll_memcpy
movzx eax, byte [r14 + 0x18]
mov qword [rsp + 0x170], r12
mov qword [rsp + 0x178], rsi
mov qword [rsp + 0x180], rsi
mov byte [rsp + 0x188], al
lea rcx, [rsp + 0x88]
lea rdx, [rsp + 0x130]
lea r8, [rsp + 0x230]
lea r9, [rsp + 0x170]
call fcn.140099f10
cmp byte [rsp + 0xa0], 2
mov r13, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x70]
je 0x140095e80
cmp qword [rsp + 0x90], 0
je 0x140095e80
mov r8, qword [rsp + 0x88]
mov rcx, qword [0x140132378]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140095e80
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
mov byte [rsp + 0x210], 0
test rdx, rdx
je 0x140096444
mov rax, qword [rax + rcx*8 + 0x3d8]
mov rcx, rdx
dec rcx
je 0x14009637e
mov r8, rcx
and r8, 7
je 0x1400962ee
mov rcx, r8
nop
movzx r9d, word [rax + 0x3d2]
mov rax, qword [rax + r9*8 + 0x3d8]
dec rcx
jne 0x1400962d0
not r8
add r8, rdx
mov rcx, r8
add rdx, 0xfffffffffffffffe
cmp rdx, 7
jb 0x14009637e
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 0x140096300
movzx ecx, word [rax + 0x3d2]
dec rcx
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], 0
mov qword [rsp + 0x160], rcx
lea rcx, [rsp + 0x230]
lea rdx, [rsp + 0x150]
lea r8, [rsp + 0x210]
call fcn.14009b500
mov rax, qword [rsp + 0x280]
mov qword [rsp + 0x1c0], rax
movups xmm0, xmmword [rsp + 0x270]
movaps xmmword [rsp + 0x1b0], xmm0
movdqu xmm0, xmmword [rsp + 0x230]
movups xmm1, xmmword [rsp + 0x240]
movups xmm2, xmmword [rsp + 0x250]
movups xmm3, xmmword [rsp + 0x260]
movaps xmmword [rsp + 0x1a0], xmm3
movaps xmmword [rsp + 0x190], xmm2
movaps xmmword [rsp + 0x180], xmm1
movdqa xmmword [rsp + 0x170], xmm0
mov rdx, qword [rsp + 0x288]
mov rax, qword [rsp + 0x298]
movzx ecx, word [rdx + 0x3d2]
cmp rax, rcx
jae 0x140096482
mov rcx, rdx
jmp 0x1400964b9
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x178], 0
mov qword [rsp + 0x180], rcx
lea rcx, [rsp + 0x230]
lea rdx, [rsp + 0x170]
lea r8, [rsp + 0x210]
call fcn.14009b500
jmp 0x1400965d3
mov r8, qword [rsp + 0x290]
nop word [rax + rax]
mov rcx, qword [rdx + 0x160]
test rcx, rcx
je 0x1400964b4
inc r8
movzx eax, word [rdx + 0x3d0]
mov rdx, rcx
cmp ax, word [rcx + 0x3d2]
jae 0x140096490
jmp 0x1400964b9
mov rax, r8
xor ecx, ecx
imul rdx, rax, 0x38
shl rax, 5
mov r8, qword [rcx + rdx + 0x198]
mov qword [rsp + 0xf0], r8
movups xmm0, xmmword [rcx + rdx + 0x168]
movups xmm1, xmmword [rcx + rdx + 0x178]
movups xmm2, xmmword [rcx + rdx + 0x188]
movaps xmmword [rsp + 0xe0], xmm2
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
mov r8, qword [rsp + 0x1a0]
mov qword [rcx + rdx + 0x198], r8
movaps xmm0, xmmword [rsp + 0x170]
movaps xmm1, xmmword [rsp + 0x180]
movaps xmm2, xmmword [rsp + 0x190]
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 + 0xf8]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
lea rdx, [rsp + 0x1a8]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rcx + rax], xmm0
movups xmmword [rcx + rax + 0x10], xmm1
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x280], rax
movaps xmm0, xmmword [rsp + 0x100]
movaps xmmword [rsp + 0x270], xmm0
movdqa xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movaps xmm2, xmmword [rsp + 0xe0]
movaps xmm3, xmmword [rsp + 0xf0]
movaps xmmword [rsp + 0x260], xmm3
movaps xmmword [rsp + 0x250], xmm2
movaps xmmword [rsp + 0x240], xmm1
movdqa xmmword [rsp + 0x230], xmm0
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x68], r13
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsp + 0x238]
mov qword [rsp + 0x60], rax
mov r12, qword [rsp + 0x248]
mov rcx, qword [rsp + 0x250]
movzx r13d, byte [rsp + 0x260]
mov rax, qword [rsp + 0x268]
mov qword [rsp + 0x1d0], rax
dec qword [rsp + 0x140]
mov rax, qword [rsp + 0x270]
mov qword [rsp + 0x80], rax
movzx ebx, byte [rsp + 0x280]
cmp byte [rsp + 0x210], 0
je 0x140096692
mov rsi, rcx
test rbp, rbp
je 0x140099353
mov rax, qword [rdi + 0x3d8]
mov qword [rsp + 0x130], rax
dec rbp
mov qword [rsp + 0x138], rbp
mov qword [rax + 0x160], 0
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov rcx, rsi
mov eax, 0
cmp r13b, 2
mov r13, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x78]
mov rbp, r14
je 0x140095e82
test rcx, rcx
je 0x1400966c4
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, r12
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x60], 0
je 0x1400966e2
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, qword [rsp + 0xa8]
call sub.KERNEL32.dll_HeapFree
mov eax, 0
cmp bl, 2
je 0x140095e82
mov eax, 0
cmp qword [rsp + 0x80], 0
je 0x140095e82
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, qword [rsp + 0x1d0]
call sub.KERNEL32.dll_HeapFree
xor eax, eax
jmp 0x140095e82
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x208], rax
movdqu xmm0, xmmword [rsp + 0x130]
movdqu xmmword [rsp + 0x1f8], xmm0
mov qword [rsp + 0x1f0], 1
movzx eax, byte [0x140132410]
mov r12d, 4
mov ecx, 4
mov edx, 1
call fcn.140007210
test rax, rax
je 0x140099370
mov rsi, rax
mov dword [rax], 0x48544150
add rax, 4
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xc8], rax
mov word [rsp + 0xd0], 0
lea rcx, [rsp + 0x170]
lea rdx, [rsp + 0xc0]
call fcn.140099d00
mov qword [rsp + 0x248], rsi
mov qword [rsp + 0x250], 4
mov qword [rsp + 0x258], 4
mov byte [rsp + 0x260], 0
movdqu xmm0, xmmword [rsp + 0x170]
movdqa xmmword [rsp + 0x230], xmm0
mov r15, qword [rsp + 0x180]
mov qword [rsp + 0x240], r15
mov rdi, qword [rsp + 0x230]
mov r14, qword [rsp + 0x1f8]
test r14, r14
je 0x1400968bc
mov qword [rsp + 0x68], rsi
mov r12, qword [rsp + 0x200]
lea rcx, [r14 + 0x168]
movzx r13d, word [r14 + 0x3d2]
imul rbx, r13, 0x38
mov rbp, 0xffffffffffffffff
nop word [rax + rax]
test rbx, rbx
je 0x140096880
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
inc rbp
add rbx, 0xffffffffffffffc8
mov rcx, rsi
cmp eax, 3
je 0x140096840
cmp eax, 1
jne 0x140096897
jmp 0x140096883
mov rbp, r13
sub r12, 1
jb 0x140096d61
mov r14, qword [r14 + rbp*8 + 0x3d8]
jmp 0x140096820
cmp eax, 2
jne 0x140099201
test r14, r14
mov r15, qword [rsp + 0xb0]
je 0x1400968c9
shl rbp, 5
mov r13, qword [r14 + rbp]
mov rbx, qword [r14 + rbp + 0x10]
jmp 0x1400968cc
xor r13d, r13d
mov r15, qword [rsp + 0xb0]
jmp 0x1400968d1
xor r13d, r13d
mov rsi, qword [rsp + 0x68]
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x238], 0
je 0x1400968fe
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov r12, qword [r15 + 0x40]
lea rax, str.program_path_has_no_file_name
mov qword [rsp + 0x68], rax
test r12, r12
je 0x140096961
mov r14, qword [r15 + 0x30]
cmp r12, 4
jae 0x140096926
lea rax, [0x14009ba50]
jmp 0x14009694f
mov eax, dword [r14]
bswap eax
xor ecx, ecx
cmp eax, 0x5c5c3f5c
setb cl
cmp eax, 0x5c5c3f5d
adc ecx, 0xffffffff
lea rcx, [0x14009ba40]
lea rax, [0x14009ba50]
cmove rax, rcx
movzx esi, byte [r12 + r14 - 1]
mov ecx, esi
call rax
test al, al
je 0x1400969e8
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x68]
mov qword [rax], rcx
mov qword [rax + 0x10], 2
cmp r12, 4
jb 0x140096a4e
movzx eax, byte [r12 + r14 - 4]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x2e
jne 0x140096a4e
movzx eax, byte [r14 + r12 - 3]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x65
jne 0x140096a4e
movzx eax, byte [r14 + r12 - 2]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x78
jne 0x140096a4e
lea eax, [rsi - 0x41]
cmp al, 0x1a
setb al
shl al, 5
or al, sil
cmp al, 0x65
sete al
jmp 0x140096a50
xor eax, eax
lea rcx, [r14 + r12]
mov qword [rsp + 0x78], rcx
xor ecx, ecx
nop dword [rax + rax]
cmp r12, rcx
je 0x140096b44
movzx edx, byte [r14 + rcx]
cmp edx, 0x5c
je 0x140096a7b
inc rcx
cmp edx, 0x2f
jne 0x140096a60
test al, al
je 0x140096c20
lea rcx, [rsp + 0x230]
mov rdx, r14
mov r8, r12
call fcn.14006f2e0
mov rcx, qword [rsp + 0x230]
mov rax, qword [rsp + 0x238]
test rcx, rcx
je 0x140096cee
mov rdx, qword [rsp + 0x240]
mov qword [rsp + 0x230], rcx
mov qword [rsp + 0x238], rax
mov qword [rsp + 0x240], rdx
lea rcx, [rsp + 0x130]
lea rdx, [rsp + 0x230]
call fcn.14009ba60
jmp 0x1400977c9
xor r8d, r8d
lea rax, str.nul_byte_found_in_provided_data
mov qword [rsp + 0x68], rax
mov rax, r14
jmp 0x140096b6c
xor r8d, r8d
test cx, cx
je 0x140096961
mov cx, 1
test r8w, r8w
jne 0x140096b60
cmp rax, qword [rsp + 0x78]
je 0x140096d3a
movzx edx, byte [rax]
test dl, dl
js 0x140096b8d
inc rax
jmp 0x140096bec
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rax + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x140096bde
movzx r9d, byte [rax + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp dl, 0xf0
jb 0x140096bf6
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 0x140096bec
jmp 0x140096c0c
add rax, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
xor r8d, r8d
mov ecx, edx
jmp 0x140096b63
add rax, 3
shl r8d, 0xc
or r9d, r8d
mov edx, r9d
cmp edx, 0xffff
jbe 0x140096bec
and edx, 0x3ff
or edx, 0xdc00
mov r8d, edx
jmp 0x140096b63
test r12, r12
js 0x14009944c
movzx eax, byte [0x140132410]
mov edx, 1
mov rcx, r12
call fcn.140007210
test rax, rax
je 0x140099370
mov rsi, rax
mov rcx, rax
mov rdx, r14
mov r8, r12
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x230], rsi
mov qword [rsp + 0x238], r12
mov qword [rsp + 0x240], r12
mov byte [rsp + 0x248], 0
lea rdx, str..exeprogram_not_found
lea rcx, [rsp + 0x230]
mov r8d, 4
call fcn.14008fd10
mov rsi, qword [rsp + 0x230]
mov rbx, qword [rsp + 0x238]
mov rdi, qword [rsp + 0x240]
lea rcx, [rsp + 0xc0]
mov rdx, rsi
mov r8, rdi
call fcn.14009bb30
cmp qword [rsp + 0xc0], 0
je 0x140096d07
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x140], rax
movdqu xmm0, xmmword [rsp + 0xc0]
movdqa xmmword [rsp + 0x130], xmm0
jmp 0x1400977b3
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x130], 0
jmp 0x1400977c9
mov rcx, rsi
mov rdx, rdi
call fcn.1400953c0
test rax, rax
je 0x140097740
cmp rdx, 2
jne 0x140096d71
movzx ecx, word [rax]
cmp ecx, 0x2e2e
jne 0x140096d71
mov r8d, 2
xor r9d, r9d
jmp 0x140097720
cmp r12, 0xf
ja 0x140096db5
xor eax, eax
mov qword [rsp + 0x80], rax
xor eax, eax
nop dword [rax]
cmp byte [r14 + rax], 0x2e
je 0x140096dce
inc rax
cmp r12, rax
jne 0x140096d50
jmp 0x140096ddb
mov r15, qword [rsp + 0xb0]
xor r13d, r13d
jmp 0x1400968cc
mov r8, rdx
nop word cs:[rax + rax]
test r8, r8
je 0x140096dc4
mov rcx, r8
dec r8
cmp byte [rax + rcx - 1], 0x2e
jne 0x140096d80
mov r10, rdx
sub r10, rcx
jb 0x140099487
test r8, r8
je 0x14009771a
mov r9, rax
add r9, rcx
mov rdx, r10
jmp 0x140097720
mov cl, 0x2e
mov rdx, r14
mov r8, r12
call fcn.140036de0
jmp 0x140096dd3
mov r9, rax
xor eax, eax
jmp 0x140097720
mov eax, 1
mov qword [rsp + 0x80], rax
test r13, r13
mov qword [rsp + 0x70], r14
je 0x140096e2f
add rbx, r13
mov qword [rsp + 0x170], r13
mov qword [rsp + 0x178], rbx
mov word [rsp + 0x180], 0
mov byte [rsp + 0x188], 1
lea rcx, [rsp + 0x230]
lea rdx, [rsp + 0x170]
call fcn.14008f8c0
movzx eax, byte [rsp + 0x248]
cmp al, 2
jne 0x14009713d
lea rcx, [rsp + 0xc0]
call fcn.14008fb20
cmp byte [rsp + 0xd8], 2
jne 0x140096e58
lea rcx, [rsp + 0xc0]
call fcn.14006cb90
jmp 0x140096f3b
mov rsi, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xd0]
mov r14, qword [rsp + 0xd8]
mov rcx, rsi
mov rdx, rdi
call fcn.140091ed0
cmp rdi, rdx
cmovb rdx, rdi
test rax, rax
cmove rdx, rdi
mov qword [rsp + 0x230], rsi
mov qword [rsp + 0x238], rbx
mov qword [rsp + 0x240], rdx
mov qword [rsp + 0x248], r14
lea rcx, [rsp + 0x230]
mov r14, qword [rsp + 0x70]
mov rdx, r14
mov r8, r12
call fcn.140090e70
cmp qword [rsp + 0x80], 1
je 0x140096ee1
lea rcx, [rsp + 0x230]
call fcn.1400954f0
mov rsi, qword [rsp + 0x230]
mov r8, qword [rsp + 0x240]
lea rcx, [rsp + 0x170]
mov rdx, rsi
call fcn.14009bb30
cmp qword [rsp + 0x238], 0
je 0x140096f1d
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x170]
test rax, rax
je 0x140096f3b
mov r8, rax
movdqu xmm6, xmmword [rsp + 0x178]
jmp 0x14009753a
mov qword [rsp + 0xb0], r15
mov qword [rsp + 0x150], 2
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x158], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rsp + 0x60], rax
xor eax, eax
mov qword [rsp + 0x68], rax
mov r15d, 0xffffffff
xor esi, esi
xor r14d, r14d
cmp r8, 0x201
jb 0x140096f9f
jmp 0x140096fc0
jae 0x140097082
cmp r8, 0x201
jae 0x140096fc0
mov r13d, 0x200
lea rbp, [rsp + 0x230]
mov rbx, r8
jmp 0x14009701a
sub r8, r14
sub rsi, r14
cmp rsi, r8
jae 0x140096ff5
lea rcx, [rsp + 0x150]
mov rdx, r14
call fcn.14006f7e0
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x68], rax
mov rsi, qword [rsp + 0x68]
cmp rsi, r15
mov r14d, 0xffffffff
cmovb r14, rsi
mov qword [rsp + 0x160], r14
mov r13, r14
mov rbp, qword [rsp + 0x60]
mov rbx, r14
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov rcx, rbp
mov edx, ebx
call sub.KERNEL32.dll_GetSystemDirectoryW
mov edi, eax
test eax, eax
jne 0x14009703e
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x14009726a
mov r8d, edi
cmp rbx, r8
jne 0x140096f90
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x140099382
add rbx, rbx
mov eax, 0xffffffff
cmp rbx, rax
mov r15d, 0xffffffff
cmovae rbx, rax
mov r8, rbx
cmp r8, 0x201
jae 0x140096fc0
jmp 0x140096f9f
cmp r13, r8
jb 0x140099470
lea rcx, [rsp + 0xc0]
mov rdx, rbp
call fcn.1400713f0
mov r14, qword [rsp + 0x70]
lea rcx, [rsp + 0xc0]
mov rdx, r14
mov r8, r12
call fcn.140090e70
cmp qword [rsp + 0x80], 1
je 0x1400970cb
lea rcx, [rsp + 0xc0]
call fcn.1400954f0
mov rdi, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xd0]
lea rcx, [rsp + 0x88]
mov rdx, rdi
call fcn.14009bb30
cmp qword [rsp + 0xc8], 0
je 0x140097107
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
movdqu xmm0, xmmword [rsp + 0x88]
movdqu xmmword [rsp + 0x178], xmm0
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x170], 0
mov sil, 1
jmp 0x140097292
lea r13, [rsp + 0x249]
lea rbp, [rsp + 0xd9]
lea rsi, [rsp + 0x230]
lea rdi, [rsp + 0x170]
lea rbx, [rsp + 0xc0]
jmp 0x14009718b
mov rcx, rsi
mov rdx, rdi
call fcn.14008f8c0
movzx eax, byte [rsp + 0x248]
cmp al, 2
je 0x140096e2f
mov r8, qword [rsp + 0x230]
mov rcx, qword [rsp + 0x238]
mov rdx, qword [rsp + 0x240]
test rdx, rdx
jne 0x1400971bd
test rcx, rcx
je 0x140097170
mov rcx, qword [0x140132378]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140097170
mov r9d, dword [r13]
mov r10d, dword [r13 + 3]
mov dword [rbp + 3], r10d
mov dword [rbp], r9d
mov qword [rsp + 0xc0], r8
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rdx
mov byte [rsp + 0xd8], al
mov rcx, rbx
mov rdx, r14
mov r8, r12
call fcn.140090e70
cmp qword [rsp + 0x80], 1
je 0x14009720d
mov rcx, rbx
call fcn.1400954f0
mov r14, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xd0]
mov rcx, rsi
mov rdx, r14
call fcn.14009bb30
cmp qword [rsp + 0xc8], 0
je 0x140097244
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov r8, qword [rsp + 0x230]
test r8, r8
jne 0x1400985dd
mov rcx, rsi
mov rdx, rdi
call fcn.14008f8c0
mov r14, qword [rsp + 0x70]
jmp 0x14009717b
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x170], 1
xor esi, esi
mov r14, qword [rsp + 0x70]
cmp qword [rsp + 0x68], 0
je 0x1400972ad
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, qword [rsp + 0x60]
call sub.KERNEL32.dll_HeapFree
test sil, sil
mov r15, qword [rsp + 0xb0]
je 0x1400972cd
mov rax, qword [rsp + 0x178]
test rax, rax
jne 0x14009752e
jmp 0x1400972da
lea rcx, [rsp + 0x178]
call fcn.14006cb90
mov qword [rsp + 0x150], 2
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x158], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rsp + 0x60], rax
xor eax, eax
mov qword [rsp + 0x68], rax
mov esi, 0xffffffff
xor r15d, r15d
xor ebx, ebx
cmp r8, 0x201
jb 0x14009732f
jmp 0x140097350
jae 0x140097411
cmp r8, 0x201
jae 0x140097350
mov r14d, 0x200
lea rbp, [rsp + 0x230]
mov r13, r8
jmp 0x1400973a9
sub r8, rbx
sub r15, rbx
cmp r15, r8
jae 0x140097385
lea rcx, [rsp + 0x150]
mov rdx, rbx
call fcn.14006f7e0
mov rax, qword [rsp + 0x150]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0x68], rax
mov r15, qword [rsp + 0x68]
cmp r15, rsi
mov ebx, 0xffffffff
cmovb rbx, r15
mov qword [rsp + 0x160], rbx
mov r14, rbx
mov rbp, qword [rsp + 0x60]
mov r13, rbx
xor ecx, ecx
call sub.KERNEL32.dll_SetLastError
mov rcx, rbp
mov edx, r13d
call sub.KERNEL32.dll_GetWindowsDirectoryW
mov edi, eax
test eax, eax
jne 0x1400973ce
call sub.KERNEL32.dll_GetLastError
test eax, eax
jne 0x1400974d1
mov r8d, edi
cmp r13, r8
jne 0x140097320
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x7a
jne 0x14009939f
add r13, r13
mov eax, 0xffffffff
cmp r13, rax
mov esi, 0xffffffff
cmovae r13, rax
mov r8, r13
cmp r8, 0x201
jae 0x140097350
jmp 0x14009732f
cmp r14, r8
jb 0x140099495
lea rcx, [rsp + 0xc0]
mov rdx, rbp
call fcn.1400713f0
mov r15, qword [rsp + 0xb0]
lea rcx, [rsp + 0xc0]
mov r14, qword [rsp + 0x70]
mov rdx, r14
mov r8, r12
call fcn.140090e70
cmp qword [rsp + 0x80], 1
je 0x140097462
lea rcx, [rsp + 0xc0]
call fcn.1400954f0
mov rdi, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xd0]
lea rcx, [rsp + 0x88]
mov rdx, rdi
call fcn.14009bb30
cmp qword [rsp + 0xc8], 0
je 0x14009749e
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
movdqu xmm0, xmmword [rsp + 0x88]
movdqu xmmword [rsp + 0x178], xmm0
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x188], rax
mov qword [rsp + 0x170], 0
mov dil, 1
jmp 0x140097501
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x170], 1
xor edi, edi
mov r15, qword [rsp + 0xb0]
mov r14, qword [rsp + 0x70]
cmp qword [rsp + 0x68], 0
je 0x14009751c
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, qword [rsp + 0x60]
call sub.KERNEL32.dll_HeapFree
test dil, dil
je 0x14009754f
mov rax, qword [rsp + 0x178]
test rax, rax
je 0x14009755c
mov r8, rax
movdqu xmm6, xmmword [rsp + 0x180]
movq qword [rsp + 0x68], xmm6
pshufd xmm0, xmm6, 0xee
movq r9, xmm0
jmp 0x1400977ef
lea rcx, [rsp + 0x178]
call fcn.14006cb90
lea rdx, str.PATHRUST_MIN_STACKfatal_runtime_error:_assertion_failed:_thread_info.stack_guard.get__.is_none____thread_info.thread.get__.is_none___n
lea rcx, [rsp + 0x88]
mov r8d, 4
call fcn.14008e6a0
cmp byte [rsp + 0xa0], 2
je 0x140097709
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x98]
add rax, rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x170], rcx
mov qword [rsp + 0x178], rax
mov word [rsp + 0x180], 0
mov byte [rsp + 0x188], 1
lea r13, [rsp + 0x249]
lea rsi, [rsp + 0xd9]
lea rdi, [rsp + 0x230]
lea rbx, [rsp + 0x170]
lea rbp, [rsp + 0xc0]
mov rcx, rdi
mov rdx, rbx
call fcn.14008f8c0
jmp 0x14009760b
mov rcx, rdi
mov rdx, rbx
call fcn.14008f8c0
movzx eax, byte [rsp + 0x248]
cmp al, 2
je 0x1400976ee
mov r8, qword [rsp + 0x230]
mov rcx, qword [rsp + 0x238]
mov rdx, qword [rsp + 0x240]
test rdx, rdx
jne 0x14009764d
test rcx, rcx
je 0x140097600
mov rcx, qword [0x140132378]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140097600
mov r9d, dword [r13]
mov r10d, dword [r13 + 3]
mov dword [rsi + 3], r10d
mov dword [rsi], r9d
mov qword [rsp + 0xc0], r8
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0xd0], rdx
mov byte [rsp + 0xd8], al
mov rcx, rbp
mov rdx, r14
mov r8, r12
call fcn.140090e70
cmp qword [rsp + 0x80], 1
je 0x14009769c
mov rcx, rbp
call fcn.1400954f0
mov r14, qword [rsp + 0xc0]
mov r8, qword [rsp + 0xd0]
mov rcx, rdi
mov rdx, r14
call fcn.14009bb30
cmp qword [rsp + 0xc8], 0
je 0x1400976d3
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x230]
test rax, rax
jne 0x140098cf6
mov r14, qword [rsp + 0x70]
jmp 0x1400975f3
cmp qword [rsp + 0x68], 0
je 0x140097709
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, qword [rsp + 0x60]
call sub.KERNEL32.dll_HeapFree
lea rax, [0x140121388]
mov qword [rsp + 0x68], rax
jmp 0x140096961
xor r9d, r9d
mov r8, rdx
test rax, rax
cmovne r9, rax
test r9, r9
je 0x140097740
test rax, rax
cmove r8, rdx
add r9, r8
sub r9, rsi
cmp rdi, r9
cmovae rdi, r9
lea rcx, [rsp + 0x230]
mov rdx, rsi
mov r8, rdi
call fcn.14006f2e0
mov rcx, qword [rsp + 0x230]
mov rax, qword [rsp + 0x238]
test rcx, rcx
je 0x14009779f
mov rdx, qword [rsp + 0x240]
mov qword [rsp + 0x230], rcx
mov qword [rsp + 0x238], rax
mov qword [rsp + 0x240], rdx
lea rcx, [rsp + 0x130]
lea rdx, [rsp + 0x230]
call fcn.14009ba60
jmp 0x1400977b3
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x130], 0
test rbx, rbx
je 0x1400977c9
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov r8, qword [rsp + 0x130]
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x68], rax
test r8, r8
je 0x140096961
mov r9, qword [rsp + 0x140]
cmp r9, 5
mov qword [rsp + 0x60], r8
mov dword [rsp + 0x60], eax
movups xmm6, xmmword [rsp + 0x238]
mov r14, qword [rsp + 0x70]
jmp 0x14009753a
mov rsi, rax
movdqu xmm6, xmmword [rsp + 0x238]
cmp qword [rsp + 0x68], 0
mov r14, qword [rsp + 0x70]
je 0x140098d22
mov rcx, qword [0x140132378]
xor edx, edx
mov r8, qword [rsp + 0x60]
call sub.KERNEL32.dll_HeapFree
mov r8, rsi
jmp 0x14009753a
lea rcx, [0x140122bdf]
lea r8, [0x14011ef48]
mov edx, 0x2b
call fcn.140031fa0
jmp 0x1400994e5
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x88], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0x170], rax
lea rax, [0x14008f360]
mov qword [rsp + 0x178], rax
lea rax, str.comparing_environment_keys_failed:
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], 1
mov qword [rsp + 0xe0], 0
lea rax, [rsp + 0x170]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], 1
lea rdx, str.library_std_src_syswindowsprocess.rs
lea rcx, [rsp + 0xc0]
call fcn.140031260
jmp 0x1400994e5
lea rcx, [0x140122bdf]
lea r8, [0x14011e268]
mov edx, 0x2b
call fcn.140031fa0
jmp 0x1400994e5
call fcn.1400077b0
jmp 0x1400994e5
mov qword [rsp + 0x80], rdi
call fcn.1400077b0
jmp 0x1400994e5
mov ecx, 1
mov rdx, rsi
call fcn.1400077f0
jmp 0x1400994e5
call fcn.1400077b0
jmp 0x1400994e5
mov ecx, 1
mov rdx, rdi
call fcn.1400077f0
jmp 0x1400994e5
mov ecx, 2
mov rdx, r13
call fcn.1400077f0
jmp 0x1400994e5
lea r8, str.library_std_src_syswindowsos.rs
mov ecx, 1
xor edx, edx
call fcn.1400312a0
jmp 0x1400994e5
lea rax, str.library_std_src_syswindowsos.rs
mov rcx, r8
mov rdx, rbx
mov r8, rax
call fcn.140031c00
jmp 0x1400994e5
lea r8, str.library_std_src_syswindowsos.rs
mov rcx, rbp
mov rdx, rbx
call fcn.1400312a0
jmp 0x1400994e5
lea rcx, str.assertion_failed:_self.height___0
lea r8, [0x14011ec18]
mov edx, 0x21
call fcn.140031fa0
jmp 0x1400994e5
mov ecx, 1
mov rdx, r12
call fcn.1400077f0
jmp 0x1400994e5
lea rcx, str.internal_error:_entered_unreachable_codeassertion_failed:_injected___worker_thread.is_null__assertion_failed:_mid___self.len__
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140031fa0
jmp 0x1400994e5
lea rcx, str.internal_error:_entered_unreachable_codeassertion_failed:_injected___worker_thread.is_null__assertion_failed:_mid___self.len__
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140031fa0
jmp 0x1400994e5
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0x88], rax
lea rax, [rsp + 0x88]
mov qword [rsp + 0x170], rax
lea rax, [0x14008f360]
mov qword [rsp + 0x178], rax
lea rax, str.failure_getting_env_string_from_OS:
mov qword [rsp + 0x230], rax
mov qword [rsp + 0x238], 1
mov qword [rsp + 0x250], 0
lea rax, [rsp + 0x170]
mov qword [rsp + 0x240], rax
mov qword [rsp + 0x248], 1
lea rdx, str.library_std_src_syswindowsos.rs
lea rcx, [rsp + 0x230]
call fcn.140031260
jmp 0x1400994e5
call fcn.1400077b0
jmp 0x1400994e5
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, r13
mov r8, rax
call fcn.140031c00
jmp 0x1400994e5
lea r8, str._rustc_edf0b1db0a7f29d71ee82cfc53bdc170fe74e501librarycore_src_sliceiter.rs
call fcn.1400312a0
jmp 0x1400994e5
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, r14
mov r8, rax
call fcn.140031c00
jmp 0x1400994e5