Function at 0x14008e240
Capabilities:
Create process on windows
Encode data using base64
Get common file path
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x688
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x5f0], xmm6
mov qword [rbp + 0x5e8], 0xfffffffffffffffe
mov qword [rbp + 0x438], r8
mov qword [rbp + 0x4f8], rcx
movzx eax, byte [rdx + 0x68]
mov qword [rbp + 0x4c8], rdx
mov rbx, qword [rdx + 0x60]
test al, al
jne 0x14008e2a7
test rbx, rbx
jne 0x14008e2a7
mov qword [rbp + 0x408], 0
xor r12d, r12d
jmp 0x14008ef06
mov qword [rbp + 0x4d0], 0
mov qword [rbp + 0x4e0], 0
test al, al
jne 0x14008e4eb
mov qword [rbp + 0x5c8], rbx
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
test rax, rax
je 0x1400918b9
lea rsi, [rbp + 0x470]
lea rdi, [rbp - 0x20]
lea r14, [rbp + 0x580]
mov qword [rbp + 0x5b0], rax
mov rbx, rax
nop word [rax + rax]
cmp word [rbx], 0
je 0x14008e4d7
mov r12, rbx
mov rcx, 0xfffffffffffffffe
xor edx, edx
nop word cs:[rax + rax]
mov r15, rdx
mov rax, rcx
inc rdx
add rcx, 2
cmp word [r12 + r15*2], 0
jne 0x14008e320
lea rbx, [r12 + rdx*2]
cmp r15, 1
je 0x14008e300
test r15, r15
je 0x1400917e1
xor r13d, r13d
nop dword [rax + rax]
cmp word [r12 + r13*2 + 2], 0x3d
je 0x14008e370
inc r13
add rax, 0xfffffffffffffffe
jne 0x14008e350
jmp 0x14008e300
lea r8, [r13 + 1]
cmp r13, r15
jae 0x1400917f9
mov rcx, rsi
mov rdx, r12
call fcn.140086b20
add r13, 2
mov r8, r15
sub r8, r13
jb 0x140091813
lea rdx, [r12 + r13*2]
mov rcx, rdi
call fcn.140086b20
mov r8, qword [rbp + 0x470]
mov r9, qword [rbp + 0x478]
movdqu xmm6, xmmword [rbp + 0x480]
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp - 0x18]
lea rax, [rbp - 0x10]
movdqu xmm0, xmmword [rax]
movdqa xmmword [rbp + 0x450], xmm0
movdqa xmmword [rbp - 0x30], xmm6
cmp byte [rbp - 0x28], 2
je 0x14008e4d7
mov qword [rbp + 0x5c0], r9
mov qword [rbp + 0x5d8], rdx
mov qword [rbp + 0x5b8], rcx
movq rax, xmm6
add rax, r8
mov qword [rbp + 0x470], r8
mov qword [rbp + 0x478], rax
mov word [rbp + 0x480], 0
mov r15, r14
mov rcx, r14
mov rdx, rsi
mov qword [rbp + 0x5a0], r8
call fcn.140092df0
mov rax, qword [rbp + 0x5a0]
mov qword [rbp - 8], rax
mov rax, qword [rbp + 0x5c0]
mov qword [rbp], rax
movdqu xmmword [rbp + 8], xmm6
movups xmm0, xmmword [rbp + 0x580]
movaps xmmword [rbp - 0x20], xmm0
mov rax, qword [rbp + 0x590]
mov qword [rbp - 0x10], rax
mov rax, qword [rbp + 0x5b8]
mov qword [rbp + 0x470], rax
mov rax, qword [rbp + 0x5d8]
mov qword [rbp + 0x478], rax
movdqa xmm0, xmmword [rbp + 0x450]
lea rax, [rbp + 0x480]
movdqu xmmword [rax], xmm0
mov byte [rbp + 0x5af], 0
mov rcx, r15
lea rdx, [rbp + 0x4d0]
mov r8, rdi
mov r9, rsi
call fcn.140093020
cmp byte [rbp + 0x598], 2
je 0x14008e300
cmp qword [rbp + 0x588], 0
je 0x14008e300
mov rcx, qword [rbp + 0x580]
mov edx, 1
call fcn.1400084c0
jmp 0x14008e300
mov rcx, qword [rbp + 0x5b0]
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rbx, qword [rbp + 0x5c8]
mov rcx, qword [rbp + 0x4c8]
mov rax, qword [rcx + 0x50]
mov r8, qword [rcx + 0x58]
xor edi, edi
test rax, rax
setne dil
cmove rbx, rax
xor r15d, r15d
jmp 0x14008e519
xor eax, eax
mov r8, qword [rbp + 0x5b0]
test rbx, rbx
je 0x14008ed3c
test rdi, rdi
je 0x14008e570
test r15, r15
jne 0x14008e570
mov edi, 1
test r8, r8
je 0x14008e57a
mov rdx, r8
and rdx, 7
je 0x14008e57f
mov rcx, r8
and rcx, 0xfffffffffffffff8
mov r15, rax
nop dword [rax]
mov r15, qword [r15 + 0x3d8]
dec rdx
jne 0x14008e550
cmp r8, 8
jae 0x14008e590
jmp 0x14008e5ce
test rdi, rdi
jne 0x14008e5d3
jmp 0x140091762
mov r15, rax
jmp 0x14008e5ce
mov r15, rax
mov rcx, r8
cmp r8, 8
jb 0x14008e5ce
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 0x14008e590
xor r8d, r8d
xor eax, eax
movzx ecx, word [r15 + 0x3d2]
mov rsi, r15
mov r12, r8
cmp r8, rcx
jb 0x14008e618
nop word cs:[rax + rax]
mov rcx, qword [rsi + 0x160]
test rcx, rcx
je 0x14009137a
inc rax
movzx r12d, word [rsi + 0x3d0]
mov rsi, rcx
cmp r12w, word [rcx + 0x3d2]
jae 0x14008e5f0
test rax, rax
je 0x14008e6b0
mov r15, qword [rsi + r12*8 + 0x3e0]
mov rcx, rax
dec rcx
je 0x14008e69e
mov rdx, rcx
and rdx, 7
je 0x14008e655
mov rcx, rdx
nop dword [rax]
mov r15, qword [r15 + 0x3d8]
dec rcx
jne 0x14008e640
not rdx
add rdx, rax
mov rcx, rdx
add rax, 0xfffffffffffffffe
cmp rax, 7
jb 0x14008e69e
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 0x14008e660
xor r8d, r8d
jmp 0x14008e6b8
lea r8, [r12 + 1]
mov r15, rsi
dec rbx
imul rax, r12, 0x38
lea r14, [rsi + rax]
add r14, 0x168
shl r12, 5
cmp byte [rsi + r12 + 0x18], 2
jne 0x14008e740
mov r13, qword [rbp + 0x4d0]
mov eax, 0
test r13, r13
je 0x14008e519
mov rsi, r8
mov r12, rdi
mov r9, qword [r14]
mov rax, qword [r14 + 0x10]
mov rdi, qword [rbp + 0x4d8]
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x580]
mov rdx, r13
mov r8, rdi
call fcn.140094790
cmp qword [rbp + 0x580], 0
je 0x14008e929
xor eax, eax
mov rdi, r12
mov r8, rsi
jmp 0x14008e519
mov qword [rbp + 0x5b8], rdi
mov rdi, qword [r14 + 0x18]
mov r13, qword [r14 + 0x28]
test r13, r13
mov qword [rbp + 0x5b0], r8
mov qword [rbp + 0x5c8], rbx
je 0x14008e786
js 0x14009177f
movzx eax, byte [0x140164a38]
mov edx, 1
mov rcx, r13
call fcn.140008430
test rax, rax
jne 0x14008e78b
jmp 0x1400917bd
mov eax, 1
mov qword [rbp + 0x5a0], rax
mov rcx, rax
mov rdx, rdi
mov r8, r13
call fcn.1400d6ff0
movzx ebx, byte [r14 + 0x30]
mov rdx, qword [r14]
mov r14, qword [r14 + 0x10]
mov eax, 2
mov qword [rbp + 0x5d8], rax
test r14, r14
mov qword [rbp + 0x5c0], r13
je 0x14008e810
mov rax, r14
shr rax, 0x3e
jne 0x140091789
mov r13, r14
add r13, r14
je 0x14008e810
mov rdi, rdx
movzx eax, byte [0x140164a38]
mov edx, 2
mov rcx, r13
call fcn.140008430
mov qword [rbp + 0x5d8], rax
test rax, rax
je 0x1400917cf
mov rdx, rdi
jmp 0x14008e813
xor r13d, r13d
add rsi, r12
mov r12, qword [rbp + 0x5d8]
mov rcx, r12
mov r8, r13
call fcn.1400d6ff0
mov rax, qword [rbp + 0x5a0]
mov qword [rbp - 8], rax
mov rax, qword [rbp + 0x5c0]
mov qword [rbp], rax
mov qword [rbp + 8], rax
mov byte [rbp + 0x10], bl
mov qword [rbp - 0x20], r12
mov qword [rbp - 0x18], r14
mov qword [rbp - 0x10], r14
mov r13, qword [rsi]
mov rdi, qword [rsi + 0x10]
test rdi, rdi
mov qword [rbp + 0x570], r14
je 0x14008e892
mov rbx, qword [rbp + 0x5c8]
js 0x1400917ac
movzx eax, byte [0x140164a38]
mov edx, 1
mov rcx, rdi
call fcn.140008430
mov r12, rax
test rax, rax
jne 0x14008e89f
jmp 0x140091793
mov r12d, 1
mov rbx, qword [rbp + 0x5c8]
mov rcx, r12
mov rdx, r13
mov r8, rdi
call fcn.1400d6ff0
movzx eax, byte [rsi + 0x18]
mov qword [rbp + 0x470], r12
mov qword [rbp + 0x478], rdi
mov qword [rbp + 0x480], rdi
mov byte [rbp + 0x488], al
mov byte [rbp + 0x5d2], 0
lea rcx, [rbp + 0x580]
lea rdx, [rbp + 0x4d0]
lea r8, [rbp - 0x20]
lea r9, [rbp + 0x470]
call fcn.140093020
cmp byte [rbp + 0x598], 2
mov rdi, qword [rbp + 0x5b8]
je 0x14008e510
cmp qword [rbp + 0x588], 0
je 0x14008e510
mov rcx, qword [rbp + 0x580]
mov edx, 1
call fcn.1400084c0
jmp 0x14008e510
mov rax, qword [rbp + 0x588]
mov rdx, qword [rbp + 0x590]
mov rcx, qword [rbp + 0x598]
mov byte [rbp + 0x3f8], 0
test rdx, rdx
je 0x14008eab5
mov rax, qword [rax + rcx*8 + 0x3d8]
mov rcx, rdx
dec rcx
je 0x14008ea1e
mov r8, rcx
and r8, 7
je 0x14008e98e
mov rcx, r8
nop
movzx r9d, word [rax + 0x3d2]
mov rax, qword [rax + r9*8 + 0x3d8]
dec rcx
jne 0x14008e970
not r8
add r8, rdx
mov rcx, r8
add rdx, 0xfffffffffffffffe
cmp rdx, 7
jb 0x14008ea1e
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 0x14008e9a0
movzx ecx, word [rax + 0x3d2]
dec rcx
mov qword [rbp + 0x450], rax
mov qword [rbp + 0x458], 0
mov qword [rbp + 0x460], rcx
lea rcx, [rbp - 0x20]
lea rdx, [rbp + 0x450]
lea r8, [rbp + 0x3f8]
call fcn.140094930
mov rax, qword [rbp + 0x30]
mov qword [rbp + 0x4c0], rax
movups xmm0, xmmword [rbp + 0x20]
movaps xmmword [rbp + 0x4b0], xmm0
movdqu xmm0, xmmword [rbp - 0x20]
movups xmm1, xmmword [rbp - 0x10]
movups xmm2, xmmword [rbp]
movups xmm3, xmmword [rbp + 0x10]
movaps xmmword [rbp + 0x4a0], xmm3
movaps xmmword [rbp + 0x490], xmm2
movaps xmmword [rbp + 0x480], xmm1
movdqa xmmword [rbp + 0x470], xmm0
mov rdx, qword [rbp + 0x38]
mov rax, qword [rbp + 0x48]
movzx ecx, word [rdx + 0x3d2]
cmp rax, rcx
jae 0x14008eaea
mov rcx, rdx
jmp 0x14008eb19
mov qword [rbp + 0x470], rax
mov qword [rbp + 0x478], 0
mov qword [rbp + 0x480], rcx
lea rcx, [rbp - 0x20]
lea rdx, [rbp + 0x470]
lea r8, [rbp + 0x3f8]
call fcn.140094930
jmp 0x14008ec0b
mov r8, qword [rbp + 0x40]
nop
mov rcx, qword [rdx + 0x160]
test rcx, rcx
je 0x14008eb14
inc r8
movzx eax, word [rdx + 0x3d0]
mov rdx, rcx
cmp ax, word [rcx + 0x3d2]
jae 0x14008eaf0
jmp 0x14008eb19
mov rax, r8
xor ecx, ecx
imul rdx, rax, 0x38
shl rax, 5
mov r8, qword [rcx + rdx + 0x198]
mov qword [rbp + 0x530], r8
movups xmm0, xmmword [rcx + rdx + 0x168]
movups xmm1, xmmword [rcx + rdx + 0x178]
movups xmm2, xmmword [rcx + rdx + 0x188]
movaps xmmword [rbp + 0x520], xmm2
movaps xmmword [rbp + 0x510], xmm1
movaps xmmword [rbp + 0x500], xmm0
mov r8, qword [rbp + 0x4a0]
mov qword [rcx + rdx + 0x198], r8
movaps xmm0, xmmword [rbp + 0x470]
movaps xmm1, xmmword [rbp + 0x480]
movaps xmm2, xmmword [rbp + 0x490]
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, [rbp + 0x538]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
lea rdx, [rbp + 0x4a8]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rcx + rax], xmm0
movups xmmword [rcx + rax + 0x10], xmm1
mov rax, qword [rbp + 0x550]
mov qword [rbp + 0x30], rax
movaps xmm0, xmmword [rbp + 0x540]
movaps xmmword [rbp + 0x20], xmm0
movdqa xmm0, xmmword [rbp + 0x500]
movaps xmm1, xmmword [rbp + 0x510]
movaps xmm2, xmmword [rbp + 0x520]
movaps xmm3, xmmword [rbp + 0x530]
movaps xmmword [rbp + 0x10], xmm3
movaps xmmword [rbp], xmm2
movaps xmmword [rbp - 0x10], xmm1
movdqa xmmword [rbp - 0x20], xmm0
mov r14, rbx
mov rax, qword [rbp - 0x20]
mov qword [rbp + 0x5b8], rax
mov rax, qword [rbp - 0x18]
mov qword [rbp + 0x5d8], rax
mov rcx, qword [rbp - 8]
mov rdx, qword [rbp]
movzx ebx, byte [rbp + 0x10]
mov rax, qword [rbp + 0x18]
mov qword [rbp + 0x570], rax
dec qword [rbp + 0x4e0]
mov rax, qword [rbp + 0x20]
mov qword [rbp + 0x5a0], rax
movzx eax, byte [rbp + 0x30]
mov byte [rbp + 0x5c0], al
cmp byte [rbp + 0x3f8], 0
je 0x14008ecb5
mov qword [rbp + 0x578], rdx
mov qword [rbp + 0x4f0], rcx
test rdi, rdi
je 0x14009182a
mov rax, qword [r13 + 0x3d8]
mov qword [rbp + 0x4d0], rax
dec rdi
mov qword [rbp + 0x4d8], rdi
mov qword [rax + 0x160], 0
mov edx, 8
mov rcx, r13
call fcn.1400084c0
mov rcx, qword [rbp + 0x4f0]
mov rdx, qword [rbp + 0x578]
mov eax, 0
cmp bl, 2
mov rbx, r14
mov rdi, r12
mov r8, rsi
je 0x14008e519
test rdx, rdx
je 0x14008ecde
mov edx, 1
call fcn.1400084c0
mov r8, rsi
cmp qword [rbp + 0x5d8], 0
je 0x14008ecfc
mov edx, 2
mov rcx, qword [rbp + 0x5b8]
call fcn.1400084c0
idiv edi
mov r8, rsi
mov eax, 0
cmp byte [rbp + 0x5c0], 2
je 0x14008e519
mov eax, 0
cmp qword [rbp + 0x5a0], 0
je 0x14008e519
mov edx, 1
mov rcx, qword [rbp + 0x570]
call fcn.1400084c0
mov r8, rsi
xor eax, eax
jmp 0x14008e519
mov rax, qword [rbp + 0x4e0]
mov qword [rbp + 0x420], rax
movdqu xmm0, xmmword [rbp + 0x4d0]
movdqu xmmword [rbp + 0x410], xmm0
mov qword [rbp + 0x408], 1
movzx eax, byte [0x140164a38]
mov ecx, 4
mov edx, 1
call fcn.140008430
test rax, rax
je 0x140091864
mov dword [rax], 0x48544150
mov rcx, rax
add rcx, 4
mov qword [rbp + 0x500], rax
mov qword [rbp + 0x508], rcx
mov word [rbp + 0x510], 0
lea rcx, [rbp + 0x470]
lea rdx, [rbp + 0x500]
mov qword [rbp + 0x5c8], rax
call fcn.140092df0
mov rcx, qword [rbp + 0x5c8]
mov qword [rbp - 8], rcx
mov qword [rbp], 4
mov qword [rbp + 8], 4
mov byte [rbp + 0x10], 0
movdqu xmm0, xmmword [rbp + 0x470]
movdqa xmmword [rbp - 0x20], xmm0
mov r14, qword [rbp + 0x480]
mov qword [rbp - 0x10], r14
mov rsi, qword [rbp - 0x20]
mov rbx, qword [rbp + 0x410]
test rbx, rbx
je 0x14008eed9
mov rax, qword [rbp + 0x418]
mov qword [rbp + 0x5d8], rax
mov r13, qword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
lea rcx, [rbx + 0x168]
movzx eax, word [rbx + 0x3d2]
mov qword [rbp + 0x5c0], rax
imul rdi, rax, 0x38
mov r15, 0xffffffffffffffff
nop word cs:[rax + rax]
test rdi, rdi
je 0x14008ee90
lea r12, [rcx + 0x38]
mov r8, qword [rcx]
mov r9d, dword [rcx + 0x10]
mov dword [rsp + 0x20], 1
mov rcx, rsi
mov edx, r14d
call r13
inc r15
add rdi, 0xffffffffffffffc8
mov rcx, r12
cmp eax, 3
je 0x14008ee50
cmp eax, 1
jne 0x14008eebc
jmp 0x14008ee97
mov r15, qword [rbp + 0x5c0]
mov rax, qword [rbp + 0x5d8]
sub rax, 1
sub eax, 1
jb 0x14008f387
mov qword [rbp + 0x5d8], rax
mov rbx, qword [rbx + r15*8 + 0x3d8]
jmp 0x14008ee22
cmp eax, 2
jne 0x1400916dc
test rbx, rbx
je 0x14008eede
shl r15, 5
mov r12, qword [rbx + r15]
mov rdi, qword [rbx + r15 + 0x10]
jmp 0x14008eee1
xor r12d, r12d
jmp 0x14008eee8
xor r12d, r12d
mov rcx, qword [rbp + 0x5c8]
mov edx, 1
call fcn.1400084c0
cmp qword [rbp - 0x18], 0
je 0x14008ef06
mov edx, 2
mov rcx, rsi
call fcn.1400084c0
mov rax, qword [rbp + 0x4c8]
mov r8, qword [rax + 0x40]
lea rcx, str.program_path_has_no_file_name
mov qword [rbp + 0x5d8], rcx
test r8, r8
je 0x14008ef82
mov rdx, qword [rax + 0x30]
cmp r8, 4
jae 0x14008ef37
lea rax, [0x140094e30]
jmp 0x14008ef5f
mov eax, dword [rdx]
bswap eax
xor ecx, ecx
cmp eax, 0x5c5c3f5c
setb cl
cmp eax, 0x5c5c3f5d
adc ecx, 0xffffffff
lea rcx, [0x140094e20]
lea rax, [0x140094e30]
cmove rax, rcx
mov qword [rbp + 0x5c8], rdx
mov qword [rbp + 0x5c0], r8
movzx esi, byte [r8 + rdx - 1]
mov byte [rbp + 0x5e7], 1
mov ecx, esi
call rax
test al, al
je 0x14008eff1
mov r14, qword [rbp + 0x5c0]
cmp r14, 3
jbe 0x14008f0bb
mov rbx, qword [rbp + 0x5c8]
movzx eax, byte [r14 + rbx - 4]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x2e
jne 0x14008f0c6
movzx eax, byte [rbx + r14 - 3]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x65
jne 0x14008f0c6
movzx eax, byte [rbx + r14 - 2]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x78
jne 0x14008f0c6
lea eax, [rsi - 0x41]
cmp al, 0x1a
setb al
shl al, 5
or al, sil
cmp al, 0x65
sete al
jmp 0x14008f0c8
xor eax, eax
mov rbx, qword [rbp + 0x5c8]
jmp 0x14008f0c8
xor eax, eax
lea rsi, [rbx + r14]
xor ecx, ecx
nop
cmp r14, rcx
je 0x14008f148
movzx edx, byte [rbx + rcx]
cmp edx, 0x2f
je 0x14008f0e6
inc rcx
cmp edx, 0x5c
jne 0x14008f0d0
test al, al
mov qword [rbp + 0x5a0], rsi
je 0x14008f223
mov byte [rbp + 0x5e7], 1
lea rcx, [rbp - 0x20]
mov rdx, rbx
mov r8, r14
call fcn.140084950
mov rcx, qword [rbp - 0x20]
mov rax, qword [rbp - 0x18]
test rcx, rcx
je 0x14008f2f0
mov rdx, qword [rbp - 0x10]
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rdx
mov byte [rbp + 0x5e7], 1
lea rcx, [rbp + 0x4d0]
lea rdx, [rbp - 0x20]
call fcn.140094e40
jmp 0x14008fe87
xor r8d, r8d
lea rax, str.nul_byte_found_in_provided_data
mov qword [rbp + 0x5d8], rax
mov rax, rbx
jmp 0x14008f16c
xor r8d, r8d
test cx, cx
je 0x14008ef82
invalid
invalid
mov cx, 1
test r8w, r8w
jne 0x14008f160
cmp rax, rsi
je 0x14008f34f
movzx r9d, byte [rax]
movzx edx, r9b
test dl, dl
js case.0x140062720.1037
inc rax
jmp 0x14008f1f2
mov r8d, edx
and r8d, 0x1f
movzx r10d, byte [rax + 1]
and r10d, 0x3f
cmp dl, 0xdf
jbe 0x14008f1e4
movzx edx, byte [rax + 2]
shl r10d, 6
and edx, 0x3f
or edx, r10d
cmp r9b, 0xf0
jb 0x14008f1fc
movzx r9d, byte [rax + 3]
add rax, 4
and r8d, 7
shl r8d, 0x12
shl edx, 6
and r9d, 0x3f
or r9d, edx
or r9d, r8d
mov edx, r9d
cmp edx, 0xffff
jbe 0x14008f1f2
jmp 0x14008f20f
add rax, 2
shl r8d, 6
or r8d, r10d
mov edx, r8d
xor r8d, r8d
mov ecx, edx
jmp 0x14008f163
add rax, 3
shl r8d, 0xc
or edx, r8d
ret 0xfa81
invalid
inc dword [rax]
add byte [rsi - 0x1d], dh
and edx, 0x3ff
or edx, 0xdc00
mov r8d, edx
jmp 0x14008f163
test r14, r14
js 0x14009192d
movzx eax, byte [0x140164a38]
mov edx, 1
mov rcx, r14
call fcn.140008430
test rax, rax
je 0x14009193e
mov rdi, rax
mov rcx, rax
mov rdx, rbx
mov r8, r14
call fcn.1400d6ff0
mov qword [rbp - 0x20], rdi
mov qword [rbp - 0x18], r14
mov qword [rbp - 0x10], r14
mov byte [rbp - 8], 0
lea rdx, str..exeprogram_not_found
lea rcx, [rbp - 0x20]
mov r8d, 4
mov qword [rbp + 0x5d8], rdi
call fcn.14008a230
mov rdi, qword [rbp - 0x20]
mov rbx, qword [rbp - 0x18]
mov rsi, qword [rbp - 0x10]
mov qword [rbp + 0x3f0], rbx
mov qword [rbp + 0x3e8], rdi
mov byte [rbp + 0x5ae], 1
lea rcx, [rbp + 0x500]
mov rdx, rdi
mov r8, rsi
call fcn.140094f10
cmp qword [rbp + 0x500], 0
je 0x14008f307
mov rax, qword [rbp + 0x510]
mov qword [rbp + 0x4e0], rax
movdqu xmm0, xmmword [rbp + 0x500]
movdqa xmmword [rbp + 0x4d0], xmm0
add byte [rax], al
test rbx, rbx
jne 0x14008fe7a
jmp 0x14008fe87
mov qword [rbp + 0x4d8], rax
mov qword [rbp + 0x4d0], 0
jmp 0x14008fe87
mov qword [rbp + 0x5c0], rbx
mov qword [rbp + 0x5d8], rdi
mov rcx, rdi
mov rdx, rsi
call fcn.14008da40
test rax, rax
je 0x14008f3e4
cmp rdx, 2
jne 0x14008f38f
movzx ecx, word [rax]
cmp ecx, 0x2e2e
jne 0x14008f38f
mov r8d, 2
xor r9d, r9d
mov r11, qword [rbp + 0x5d8]
jmp 0x14008fdf7
cmp r14, 0xf
mov qword [rbp + 0x5a0], rsi
ja 0x14008f3d5
xor eax, eax
mov qword [rbp + 0x5b8], rax
xor eax, eax
nop word [rax + rax]
cmp byte [rbx + rax], 0x2e
je 0x14008f3fa
inc rax
cmp r14, rax
jne 0x14008f370
jmp 0x14008f406
xor r12d, r12d
jmp 0x14008eee1
mov r8, rdx
mov r11, qword [rbp + 0x5d8]
nop dword [rax]
test r8, r8
je 0x14008f3f0
mov rcx, r8
dec r8
cmp byte [rax + rcx - 1], 0x2e
jne 0x14008f3a0
mov r10, rdx
sub r10, rcx
jb 0x1400919a2
test r8, r8
je 0x14008fdf1
mov r9, rax
add r9, rcx
mov rdx, r10
jmp 0x14008fdf7
mov cl, 0x2e
mov rdx, rbx
mov r8, r14
call fcn.140010930
jmp case.0x140085254.694
mov r11, qword [rbp + 0x5d8]
jmp 0x14008fe17
mov r9, rax
xor eax, eax
jmp 0x14008fdf7
mov eax, 1
mov qword [rbp + 0x5b8], rax
test r12, r12
je 0x14008f44f
add rdi, r12
mov qword [rbp + 0x470], r12
mov qword [rbp + 0x478], rdi
mov word [rbp + 0x480], 0
mov byte [rbp + 0x488], 1
mov byte [rbp + 0x5e7], 1
lea rcx, [rbp - 0x20]
lea rdx, [rbp + 0x470]
call fcn.140089fc0
movzx eax, byte [rbp - 8]
cmp al, 2
jne 0x14008f89c
mov qword [rbp + 0x580], 2
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x588], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0x5d8], rax
xor esi, esi
xor ebx, ebx
xor r12d, r12d
cmp r8, 0x201
jb 0x14008f49f
jmp 0x14008f4b0
jae 0x14008f56d
cmp r8, 0x201
jae 0x14008f4b0
mov r14d, 0x200
lea r13, [rbp - 0x20]
mov r15, r8
jmp 0x14008f508
sub r8, r12
sub rbx, r12
cmp rbx, r8
jae 0x14008f4df
lea rcx, [rbp + 0x580]
mov rdx, r12
call fcn.1400e67d0
mov rax, qword [rbp + 0x580]
mov qword [rbp + 0x5d8], rax
mov rsi, qword [rbp + 0x588]
mov eax, 0xffffffff
cmp rsi, rax
mov r12d, 0xffffffff
cmovb r12, rsi
mov qword [rbp + 0x590], r12
mov rbx, rsi
mov r14, r12
mov r13, qword [rbp + 0x5d8]
mov r15, r12
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
xor ecx, ecx
mov rdx, r13
mov r8d, r15d
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edi, eax
test eax, eax
jne 0x14008f52e
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14008f5a5
mov r8d, edi
cmp r15, r8
jne 0x14008f490
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x140091847
add r15, r15
mov eax, 0xffffffff
cmp r15, rax
cmovae r15, rax
mov r8, r15
cmp r8, 0x201
jae 0x14008f4b0
jmp 0x14008f49f
cmp r14, r8
jb 0x140091974
lea rcx, [rbp + 0x500]
mov rdx, r13
call fcn.140086b20
movdqu xmm0, xmmword [rbp + 0x500]
movups xmm1, xmmword [rbp + 0x510]
movaps xmmword [rbp + 0x480], xmm1
movdqa xmmword [rbp + 0x470], xmm0
jmp 0x14008f5c1
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [rbp + 0x470], rax
mov byte [rbp + 0x488], 2
test rsi, rsi
je 0x14008f5d7
mov edx, 2
mov rcx, qword [rbp + 0x5d8]
call fcn.1400084c0
cmp byte [rbp + 0x488], 2
jne 0x14008f5f8
mov byte [rbp + 0x5e7], 1
lea rcx, [rbp + 0x470]
call fcn.1400829c0
jmp 0x14008f6ce
mov rcx, qword [rbp + 0x470]
mov rax, qword [rbp + 0x478]
mov qword [rbp + 0x5b0], rax
mov rsi, qword [rbp + 0x480]
mov rdi, qword [rbp + 0x488]
mov byte [rbp + 0x5ad], 0
mov qword [rbp + 0x5d8], rcx
mov rdx, rsi
call fcn.14008c3d0
mov r9, qword [rbp + 0x5c8]
mov r8, qword [rbp + 0x5c0]
cmp rsi, rdx
cmovb rdx, rsi
test rax, rax
cmove rdx, rsi
mov rax, qword [rbp + 0x5d8]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp + 0x5b0]
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rdx
mov qword [rbp - 8], rdi
lea rcx, [rbp - 0x20]
mov rdx, r9
call fcn.14008ae20
cmp qword [rbp + 0x5b8], 1
je 0x14008f68a
lea rcx, [rbp - 0x20]
call fcn.14008db70
mov rsi, qword [rbp - 0x20]
mov r8, qword [rbp - 0x10]
lea rcx, [rbp + 0x500]
mov rdx, rsi
call fcn.140094f10
cmp qword [rbp - 0x18], 0
je 0x14008f6b5
mov edx, 1
mov rcx, rsi
call fcn.1400084c0
mov r8, qword [rbp + 0x500]
test r8, r8
je 0x14008f6ce
movdqu xmm6, xmmword [rbp + 0x508]
jmp 0x14008fc2a
pop rsp
invalid
add byte [rax], al
mov qword [rbp + 0x450], 2
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x458], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0x5d8], rax
xor ebx, ebx
xor esi, esi
xor r15d, r15d
cmp r8, 0x201
jb 0x14008f71f
jmp 0x14008f730
jae 0x14008f7ef
cmp r8, 0x201
jae 0x14008f730
mov r12d, 0x200
lea r14, [rbp - 0x20]
mov r13, r8
jmp 0x14008f788
sub r8, r15
sub rsi, r15
cmp rsi, r8
jae 0x14008f75f
lea rcx, [rbp + 0x450]
mov rdx, r15
call fcn.1400e67d0
mov rax, qword [rbp + 0x450]
mov qword [rbp + 0x5d8], rax
mov rbx, qword [rbp + 0x458]
mov eax, 0xffffffff
cmp rbx, rax
mov r15d, 0xffffffff
cmovb r15, rbx
mov qword [rbp + 0x460], r15
mov rsi, rbx
mov r12, r15
mov r14, qword [rbp + 0x5d8]
mov r13, r15
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, r14
mov edx, r13d
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov edi, eax
test eax, eax
jne 0x14008f7b0
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14008f9a7
mov r8d, edi
cmp r13, r8
jne 0x14008f710
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14009187f
add r13, r13
mov eax, 0xffffffff
cmp r13, rax
cmovae r13, rax
mov r8, r13
cmp r8, 0x201
jae 0x14008f730
jmp 0x14008f71f
cmp r12, r8
jb 0x14009198b
lea rcx, [rbp + 0x500]
mov rdx, r14
call fcn.140086b20
lea rcx, [rbp + 0x500]
mov rdx, qword [rbp + 0x5c8]
mov r8, qword [rbp + 0x5c0]
call fcn.14008ae20
cmp qword [rbp + 0x5b8], 1
je 0x14008f837
lea rcx, [rbp + 0x500]
call fcn.14008db70
mov rdi, qword [rbp + 0x500]
mov r8, qword [rbp + 0x510]
lea rcx, [rbp + 0x580]
mov rdx, rdi
call fcn.140094f10
cmp qword [rbp + 0x508], 0
je 0x14008f86b
mov edx, 1
mov rcx, rdi
call fcn.1400084c0
movdqu xmm0, xmmword [rbp + 0x580]
movdqu xmmword [rbp + 0x478], xmm0
mov rax, qword [rbp + 0x590]
mov qword [rbp + 0x488], rax
mov qword [rbp + 0x470], 0
mov sil, 1
jmp 0x14008f9c9
lea rbx, [rbp - 7]
lea r12, [rbp + 0x519]
lea rsi, [rbp - 0x20]
lea rdi, [rbp + 0x470]
lea r15, [rbp + 0x500]
jmp 0x14008f8de
mov byte [rbp + 0x5e7], 1
mov rcx, rsi
mov rdx, rdi
call fcn.140089fc0
movzx eax, byte [rbp - 8]
cmp al, 2
je 0x14008f44f
mov rcx, qword [rbp - 0x20]
mov rdx, qword [rbp - 0x18]
mov r8, qword [rbp - 0x10]
test r8, r8
jne 0x14008f900
test rdx, rdx
je 0x14008f8c0
mov edx, 1
call fcn.1400084c0
jmp 0x14008f8c0
mov r9d, dword [rbx]
mov r10d, dword [rbx + 3]
mov dword [r12 + 3], r10d
mov dword [r12], r9d
mov qword [rbp + 0x500], rcx
mov qword [rbp + 0x508], rdx
mov qword [rbp + 0x510], r8
mov byte [rbp + 0x518], al
mov rcx, r15
mov rdx, qword [rbp + 0x5c8]
mov r8, qword [rbp + 0x5c0]
call fcn.14008ae20
cmp qword [rbp + 0x5b8], 1
je 0x14008f953
mov rcx, r15
call fcn.14008db70
mov r14, qword [rbp + 0x500]
mov r8, qword [rbp + 0x510]
mov rcx, rsi
mov rdx, r14
call fcn.140094f10
cmp qword [rbp + 0x508], 0
je 0x14008f983
mov edx, 1
mov rcx, r14
call fcn.1400084c0
mov r8, qword [rbp - 0x20]
test r8, r8
jne 0x140090bab
mov byte [rbp + 0x5e7], 1
mov rcx, rsi
mov rdx, rdi
call fcn.140089fc0
jmp 0x14008f8d2
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [rbp + 0x478], rax
mov qword [rbp + 0x470], 1
xor esi, esi
test rbx, rbx
je 0x14008f9df
mov edx, 2
mov rcx, qword [rbp + 0x5d8]
call fcn.1400084c0
test sil, sil
je 0x14008f9f6
mov r8, qword [rbp + 0x478]
test r8, r8
jne 0x14008fc22
jmp 0x14008fa09
lea rcx, [rbp + 0x478]
mov byte [rbp + 0x5e7], 1
add eax, ebp
mov bh, 0x2f
invalid
invalid
mov qword [rbp + 0x450], 2
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x458], xmm0
mov r8d, 0x200
mov eax, 2
mov qword [rbp + 0x5d8], rax
xor ebx, ebx
xor esi, esi
xor r15d, r15d
xor edi, edi
xor r9d, r9d
mov r8, rdx
test rax, rax
cmovne r9, rax
test r9, r9
je 0x14008fe17
test rax, rax
cmove r8, rdx
add r9, r8
sub r9, r11
cmp rsi, r9
cmovae rsi, r9
lea rcx, [rbp - 0x20]
mov rdx, r11
mov r8, rsi
call fcn.140084950
mov rcx, qword [rbp - 0x20]
mov rax, qword [rbp - 0x18]
test rcx, rcx
je 0x14008fe55
mov rdx, qword [rbp - 0x10]
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], rdx
lea rcx, [rbp + 0x4d0]
lea rdx, [rbp - 0x20]
call fcn.140094e40
jmp 0x14008fe67
mov qword [rbp + 0x4d8], rax
mov qword [rbp + 0x4d0], 0
mov rdi, qword [rbp + 0x5d8]
mov rbx, qword [rbp + 0x5c0]
test rbx, rbx
je 0x14008fe87
mov edx, 1
mov rcx, rdi
call fcn.1400084c0
mov r8, qword [rbp + 0x4d0]
mov rax, qword [rbp + 0x4d8]
mov qword [rbp + 0x5d8], rax
test r8, r8
je 0x14008ef82
mov r9, qword [rbp + 0x4e0]
movups xmm6, xmmword [rbp - 0x18]
jmp 0x14008fc2a
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, [0x1401209b0]
mov edx, 0x2b
call fcn.1400e4650
jmp 0x140091a00
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [rbp + 0x580], rax
lea rax, [rbp + 0x580]
mov qword [rbp + 0x470], rax
lea rax, [fcn.1400895a0]
mov qword [rbp + 0x478], rax
lea rax, str.comparing_environment_keys_failed:
mov qword [rbp + 0x500], rax
mov qword [rbp + 0x508], 1
mov qword [rbp + 0x520], 0
lea rax, [rbp + 0x470]
mov qword [rbp + 0x510], rax
mov qword [rbp + 0x518], 1
lea rdx, str.library_std_src_syswindowsprocess.rs
lea rcx, [rbp + 0x500]
call fcn.1400e4490
jmp 0x140091a00
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, [0x140120010]
mov edx, 0x2b
call fcn.1400e4650
jmp 0x140091a00
call fcn.1400085a0
jmp 0x140091a00
call fcn.1400085a0
jmp 0x140091a00
mov byte [rbp + 0x5d2], 1
mov ecx, 1
mov rdx, rdi
call fcn.1400e41c0
jmp 0x140091a00
mov byte [rbp + 0x5d2], 1
call fcn.1400085a0
jmp 0x140091a00
mov ecx, 1
mov rdx, r13
call fcn.1400e41c0
jmp 0x140091a00
mov ecx, 2
mov rdx, r13
call fcn.1400e41c0
jmp 0x140091a00
lea r8, str.library_std_src_syswindowsos.rs
mov ecx, 1
xor edx, edx
call fcn.1400e44d0
jmp 0x140091a00
lea rax, str.library_std_src_syswindowsos.rs
mov rcx, r8
mov rdx, r15
mov r8, rax
call fcn.1400e45d0
jmp 0x140091a00
lea r8, str.library_std_src_syswindowsos.rs
mov rcx, r13
mov rdx, r15
call fcn.1400e44d0
jmp 0x140091a00
lea rcx, str.assertion_failed:_self.height___0
lea r8, [0x140120680]
mov edx, 0x21
call fcn.1400e4650
jmp 0x140091a00
lea rcx, str.internal_error:_entered_unreachable_code
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.1400e4650
jmp 0x140091a00
mov byte [rbp + 0x5e7], 1
mov ecx, 1
mov edx, 4
call fcn.1400e41c0
jmp 0x140091a00
lea rcx, str.internal_error:_entered_unreachable_code
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.1400e4650
jmp 0x140091a00
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [rbp + 0x580], rax
lea rax, [rbp + 0x580]
mov qword [rbp + 0x470], rax
lea rax, [fcn.1400895a0]
mov qword [rbp + 0x478], rax
lea rax, str.failure_getting_env_string_from_OS:
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], 1
mov qword [rbp], 0
lea rax, [rbp + 0x470]
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], 1
lea rdx, str.library_std_src_syswindowsos.rs
lea rcx, [rbp - 0x20]
call fcn.1400e4490
jmp 0x140091a00
mov byte [rbp + 0x5e7], 1
call fcn.1400085a0
jmp 0x140091a00
mov byte [rbp + 0x5e7], 1
mov ecx, 1
mov rdx, r14
call fcn.1400e41c0
jmp 0x140091a00
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, r14
mov r8, rax
call fcn.1400e45d0
jmp 0x140091a00
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, r12
mov r8, rax
call fcn.1400e45d0
jmp 0x140091a00
lea r8, [0x140120050]
call fcn.1400e44d0
jmp 0x140091a00