Function at 0x1400298e0
Capabilities:
Check if file exists
Create process on windows
Encode data using base64
Get common file path
Get file attributes
Query environment variable

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x6c8
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x630], xmm6
mov qword [rbp + 0x628], 0xfffffffffffffffe
mov byte [rbp + 0x4c8], r9b
mov qword [rbp + 0x558], rcx
mov qword [rbp + 0x440], r8
mov al, byte [rdx + 0x48]
test al, al
sete cl
mov qword [rbp + 0x508], rdx
mov rbx, qword [rdx + 0x40]
test rbx, rbx
sete dl
and dl, cl
je 0x140029950
mov qword [rbp + 0x420], 0
jmp 0x14002a1b3
mov byte [rbp + 0x618], dl
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x568], xmm0
test al, al
jne 0x140029adf
mov qword [rbp + 0x5f0], rbx
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
test rax, rax
je 0x14002cdd9
mov qword [rbp + 0x4f0], rax
mov qword [rbp + 0x4f8], rax
lea r13, [rbp + 0x478]
lea r14, [rbp - 8]
lea r12, [rbp + 0x4f0]
lea rbx, [rbp + 0x510]
lea rsi, [rbp + 0x5a0]
lea r15, [rbp + 0x560]
lea rdi, [rbp - 0x20]
nop dword [rax]
lea rcx, [rbp + 0x460]
mov rdx, r12
call fcn.140027470
cmp qword [rbp + 0x460], 0
je 0x140029acb
mov rax, qword [r13 + 0x10]
mov qword [rbp + 0x610], rax
movups xmm0, xmmword [r13]
movaps xmmword [rbp + 0x600], xmm0
mov rax, qword [rbp + 0x470]
mov qword [rbp + 0x590], rax
movdqu xmm0, xmmword [rbp + 0x460]
movdqa xmmword [rbp + 0x580], xmm0
mov rcx, qword [rbp + 0x580]
add rax, rcx
mov qword [rbp + 0x5a0], rcx
mov qword [rbp + 0x5a8], rax
mov word [rbp + 0x5b0], 0
mov rcx, rbx
mov rdx, rsi
call fcn.140012750
movups xmm0, xmmword [rbp + 0x460]
movaps xmmword [rbp - 0x20], xmm0
mov rax, qword [rbp + 0x470]
mov qword [rbp - 0x10], rax
mov rax, qword [rbp + 0x520]
mov qword [r14 + 0x10], rax
movups xmm0, xmmword [rbp + 0x510]
movups xmmword [r14], xmm0
mov rax, qword [r13 + 0x10]
mov qword [rbp + 0x5b0], rax
movdqu xmm0, xmmword [r13]
movdqa xmmword [rbp + 0x5a0], xmm0
mov byte [rbp + 0x5ff], 0
mov rcx, rbx
mov rdx, r15
mov r8, rdi
mov r9, rsi
call fcn.140012fe0
mov rcx, qword [rbp + 0x510]
test rcx, rcx
je 0x1400299c0
mov rdx, qword [rbp + 0x518]
test rdx, rdx
je 0x1400299c0
mov r8d, 1
call fcn.140007f00
jmp 0x1400299c0
mov rcx, qword [rbp + 0x4f0]
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rbx, qword [rbp + 0x5f0]
mov rcx, qword [rbp + 0x508]
mov rax, qword [rcx + 0x30]
mov rcx, qword [rcx + 0x38]
xor edx, edx
test rcx, rcx
sete dl
cmove rbx, rcx
add rdx, rdx
mov qword [rbp + 0x510], rdx
mov qword [rbp + 0x518], rax
mov qword [rbp + 0x520], rcx
mov qword [rbp + 0x530], rdx
mov qword [rbp + 0x538], rax
mov qword [rbp + 0x540], rcx
mov qword [rbp + 0x550], rbx
lea r15, [rbp + 0x510]
nop word cs:[rax + rax]
nop
mov rcx, r15
call fcn.1400104e0
mov rsi, rax
test rax, rax
je 0x14002a184
mov r13, rdx
cmp qword [rdx], 0
je 0x140029b90
mov r12, qword [rsi]
mov rbx, qword [rsi + 0x10]
test rbx, rbx
je 0x140029d90
mov edx, 1
mov rcx, rbx
call fcn.140007ef0
mov rdi, rax
test rax, rax
jne 0x140029d95
jmp 0x14002cd70
mov r12, qword [rbp + 0x568]
test r12, r12
je 0x140029b40
mov r9, qword [rsi + 0x18]
mov rax, qword [rsi + 0x28]
mov r13, qword [rbp + 0x560]
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x580]
mov rdx, r13
mov r8, r12
call fcn.140016280
cmp qword [rbp + 0x580], 0
jne 0x140029b40
mov rdx, qword [rbp + 0x588]
mov rax, qword [rbp + 0x590]
mov rcx, qword [rbp + 0x598]
mov byte [rbp + 0x600], 0
test rdx, rdx
je 0x140029eed
mov rcx, qword [rax + rcx*8 + 0x328]
mov rax, rdx
add rax, 0xffffffffffffffff
je 0x140029cce
add rdx, 0xfffffffffffffffe
mov rbx, rax
and rbx, 7
je 0x140029c3b
xor edi, edi
nop dword [rax]
movzx esi, word [rcx + 0x322]
mov rcx, qword [rcx + rsi*8 + 0x328]
add rdi, 1
cmp rbx, rdi
jne 0x140029c20
sub rax, rdi
cmp rdx, 7
jb 0x140029cce
nop word cs:[rax + rax]
nop
movzx edx, word [rcx + 0x322]
mov rcx, qword [rcx + rdx*8 + 0x328]
movzx edx, word [rcx + 0x322]
mov rcx, qword [rcx + rdx*8 + 0x328]
movzx edx, word [rcx + 0x322]
mov rcx, qword [rcx + rdx*8 + 0x328]
movzx edx, word [rcx + 0x322]
mov rcx, qword [rcx + rdx*8 + 0x328]
movzx edx, word [rcx + 0x322]
mov rcx, qword [rcx + rdx*8 + 0x328]
movzx edx, word [rcx + 0x322]
mov rcx, qword [rcx + rdx*8 + 0x328]
movzx edx, word [rcx + 0x322]
mov rcx, qword [rcx + rdx*8 + 0x328]
movzx edx, word [rcx + 0x322]
mov rcx, qword [rcx + rdx*8 + 0x328]
add rax, 0xfffffffffffffff8
jne 0x140029c50
movzx eax, word [rcx + 0x322]
add rax, 0xffffffffffffffff
mov qword [rbp + 0x460], 0
mov qword [rbp + 0x468], rcx
mov qword [rbp + 0x470], rax
lea rcx, [rbp - 0x20]
lea rdx, [rbp + 0x460]
lea r8, [rbp + 0x600]
call fcn.140015b60
mov rax, qword [rbp + 0x20]
mov qword [rbp + 0x5e0], rax
movdqu xmm0, xmmword [rbp - 0x20]
movups xmm1, xmmword [rbp - 0x10]
movups xmm2, xmmword [rbp]
movups xmm3, xmmword [rbp + 0x10]
movaps xmmword [rbp + 0x5d0], xmm3
movaps xmmword [rbp + 0x5c0], xmm2
movaps xmmword [rbp + 0x5b0], xmm1
movdqa xmmword [rbp + 0x5a0], xmm0
mov rbx, qword [rbp + 0x28]
mov rdx, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x38]
movzx eax, word [rdx + 0x322]
cmp rcx, rax
jb 0x140029f24
nop
mov rax, qword [rdx]
test rax, rax
je 0x140029f22
movzx ecx, word [rdx + 0x320]
add rbx, 1
mov rdx, rax
cmp cx, word [rax + 0x322]
jae 0x140029d60
jmp 0x140029f24
mov edi, 1
mov rcx, rdi
mov rdx, r12
mov r8, rbx
call fcn.140043e60
mov qword [rbp + 0x460], rdi
mov qword [rbp + 0x468], rbx
mov qword [rbp + 0x470], rbx
mov r12, qword [rsi + 0x18]
mov r14, qword [rsi + 0x28]
test r14, r14
je 0x140029e00
xor esi, esi
mov rax, r14
add rax, r14
setae al
mov rbx, r14
add rbx, r14
jb 0x14002cd4d
mov sil, al
add rsi, rsi
test rbx, rbx
je 0x140029e07
mov rcx, rbx
mov rdx, rsi
call fcn.140007ef0
mov rdi, rax
test rdi, rdi
jne 0x140029e13
jmp 0x14002cd3d
mov edi, 2
jmp 0x140029e13
mov rdi, rsi
test rdi, rdi
je 0x14002cd3d
lea r8, [r14 + r14]
mov rcx, rdi
mov rdx, r12
call fcn.140043e60
movdqu xmm0, xmmword [rbp + 0x460]
movdqa xmmword [rbp - 0x20], xmm0
mov rax, qword [rbp + 0x470]
mov qword [rbp - 0x10], rax
mov qword [rbp - 8], rdi
mov qword [rbp], r14
mov qword [rbp + 8], r14
mov rdi, qword [r13]
mov rsi, qword [r13 + 0x10]
test rsi, rsi
je 0x140029e70
mov edx, 1
mov rcx, rsi
call fcn.140007ef0
mov rbx, rax
test rax, rax
jne 0x140029e75
jmp 0x14002cd57
mov ebx, 1
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call fcn.140043e60
mov qword [rbp + 0x460], rbx
mov qword [rbp + 0x468], rsi
mov qword [rbp + 0x470], rsi
mov byte [rbp + 0x5fe], 0
lea rcx, [rbp + 0x5a0]
lea rdx, [rbp + 0x560]
lea r8, [rbp - 0x20]
lea r9, [rbp + 0x460]
call fcn.140012fe0
mov rcx, qword [rbp + 0x5a0]
test rcx, rcx
je 0x140029b40
mov rdx, qword [rbp + 0x5a8]
test rdx, rdx
je 0x140029b40
mov r8d, 1
call fcn.140007f00
jmp 0x140029b40
mov qword [rbp + 0x460], 0
mov qword [rbp + 0x468], rax
mov qword [rbp + 0x470], rcx
lea rcx, [rbp - 0x20]
lea rdx, [rbp + 0x460]
lea r8, [rbp + 0x600]
call fcn.140015b60
jmp 0x14002a077
xor edx, edx
lea rdi, [rcx + rcx*2]
mov rax, rdi
shl rax, 4
movups xmm0, xmmword [rdx + rax + 8]
movups xmm1, xmmword [rdx + rax + 0x18]
movups xmm2, xmmword [rdx + rax + 0x28]
movaps xmmword [rbp + 0x480], xmm2
movaps xmmword [rbp + 0x470], xmm1
movaps xmmword [rbp + 0x460], xmm0
movaps xmm0, xmmword [rbp + 0x5a0]
movaps xmm1, xmmword [rbp + 0x5b0]
movaps xmm2, xmmword [rbp + 0x5c0]
movups xmmword [rdx + rax + 0x28], xmm2
movups xmmword [rdx + rax + 0x18], xmm1
movups xmmword [rdx + rax + 8], xmm0
mov rax, qword [rdx + rdi*8 + 0x228]
lea rsi, [rbp + 0x490]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rdx + rdi*8 + 0x218]
movups xmmword [rsi], xmm0
lea rax, [rbp + 0x5d0]
movdqu xmm0, xmmword [rax]
movdqu xmmword [rdx + rdi*8 + 0x218], xmm0
mov rax, qword [rax + 0x10]
mov qword [rdx + rdi*8 + 0x228], rax
test rbx, rbx
je 0x14002a03e
mov rax, rbx
add rax, 0xffffffffffffffff
je 0x14002a03e
mov rcx, qword [rdx + rcx*8 + 0x330]
add rbx, 0xfffffffffffffffe
mov rdx, rax
and rdx, 7
je 0x140029ff3
xor edi, edi
nop
mov rcx, qword [rcx + 0x328]
add rdi, 1
cmp rdx, rdi
jne 0x140029fe0
sub rax, rdi
cmp rbx, 7
jb 0x14002a03e
nop dword [rax]
mov rcx, qword [rcx + 0x328]
mov rcx, qword [rcx + 0x328]
mov rcx, qword [rcx + 0x328]
mov rcx, qword [rcx + 0x328]
mov rcx, qword [rcx + 0x328]
mov rcx, qword [rcx + 0x328]
mov rcx, qword [rcx + 0x328]
mov rcx, qword [rcx + 0x328]
add rax, 0xfffffffffffffff8
jne 0x14002a000
mov rax, qword [rbp + 0x4a0]
mov qword [rbp + 0x20], rax
movdqa xmm0, xmmword [rbp + 0x460]
movaps xmm1, xmmword [rbp + 0x470]
movaps xmm2, xmmword [rbp + 0x480]
movaps xmm3, xmmword [rbp + 0x490]
movaps xmmword [rbp + 0x10], xmm3
movaps xmmword [rbp], xmm2
movaps xmmword [rbp - 0x10], xmm1
movdqa xmmword [rbp - 0x20], xmm0
mov rax, qword [rbp + 0x20]
mov qword [rbp + 0x4a0], rax
movdqa xmm0, xmmword [rbp - 0x20]
movaps xmm1, xmmword [rbp - 0x10]
movaps xmm2, xmmword [rbp]
movaps xmm3, xmmword [rbp + 0x10]
movaps xmmword [rbp + 0x490], xmm3
movaps xmmword [rbp + 0x480], xmm2
add qword [rbp + 0x570], 0xffffffffffffffff
movaps xmmword [rbp + 0x470], xmm1
movdqa xmmword [rbp + 0x460], xmm0
cmp byte [rbp + 0x600], 0
je 0x14002a0fe
test r13, r13
je 0x14002cd82
mov rax, qword [r12 + 0x328]
mov qword [rbp + 0x568], rax
add r13, 0xffffffffffffffff
mov qword [rbp + 0x560], r13
mov qword [rax], 0
mov edx, 0x388
mov r8d, 8
mov rcx, r12
call fcn.140007f00
mov rcx, qword [rbp + 0x460]
test rcx, rcx
je 0x140029b40
mov rdx, qword [rbp + 0x468]
mov r12, qword [rbp + 0x478]
mov rbx, qword [rbp + 0x480]
mov rsi, qword [rbp + 0x490]
mov rdi, qword [rbp + 0x498]
test rdx, rdx
je 0x14002a141
mov r8d, 1
call fcn.140007f00
test rbx, rbx
je 0x14002a15c
add rbx, rbx
je 0x14002a15c
mov r8d, 2
mov rcx, r12
mov rdx, rbx
call fcn.140007f00
test rsi, rsi
je 0x140029b40
test rdi, rdi
je 0x140029b40
mov r8d, 1
mov rcx, rsi
mov rdx, rdi
call fcn.140007f00
jmp 0x140029b40
movdqu xmm0, xmmword [rbp + 0x560]
movdqu xmmword [rbp + 0x428], xmm0
mov rax, qword [rbp + 0x570]
mov qword [rbp + 0x438], rax
mov qword [rbp + 0x420], 1
mov dl, byte [rbp + 0x618]
mov qword [rbp + 0x4a8], 0
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x494], xmm0
movdqu xmmword [rbp + 0x468], xmm0
movdqu xmmword [rbp + 0x478], xmm0
movdqu xmmword [rbp + 0x488], xmm0
pcmpeqd xmm0, xmm0
movdqu xmmword [rbp + 0x4b0], xmm0
mov qword [rbp + 0x4c0], 0xffffffffffffffff
mov dword [rbp + 0x460], 0x68
mov dword [rbp + 0x49c], 0x100
test dl, dl
je 0x14002a218
xor esi, esi
jmp 0x14002a34b
mov byte [rbp + 0x627], 1
lea rdx, str.PATHlock_count_overflow_in_reentrant_mutexlibrary_std_src_sys_common_remutex.rs
lea rcx, [rbp + 0x5a0]
mov r8d, 4
call fcn.140029560
mov r13, qword [rbp + 0x5b8]
mov rbx, qword [rbp + 0x430]
test rbx, rbx
je 0x14002a638
mov rdi, qword [rbp + 0x5c8]
mov rax, qword [rbp + 0x428]
mov qword [rbp + 0x618], rax
mov r12, qword [sym.imp.KERNEL32.dll_CompareStringOrdinal]
movzx r14d, word [rbx + 0x322]
mov qword [rbp + 0x5f0], r14
neg r14
mov r15d, 0x210
mov rsi, 0xffffffffffffffff
nop word [rax + rax]
lea rax, [r14 + rsi]
cmp rax, 0xffffffffffffffff
je 0x14002a2d0
mov r8, qword [rbx + r15*2 - 0x400]
mov r9d, dword [rbx + r15*2 - 0x3f0]
mov dword [rsp + 0x20], 1
mov rcx, r13
mov edx, edi
call r12
add r15, 0x18
add rsi, 1
cmp eax, 3
je 0x14002a290
cmp eax, 1
jne 0x14002a2fc
jmp 0x14002a2d7
mov rsi, qword [rbp + 0x5f0]
mov rax, qword [rbp + 0x618]
sub rax, 1
jb 0x14002b249
mov qword [rbp + 0x618], rax
mov rbx, qword [rbx + rsi*8 + 0x328]
jmp 0x14002a26b
cmp eax, 2
jne 0x14002ccc9
mov rsi, qword [rbx + r15 - 0x10]
mov r14, qword [rbx + r15]
mov rdx, qword [rbp + 0x5a8]
test rdx, rdx
je 0x14002a32c
mov rcx, qword [rbp + 0x5a0]
mov r8d, 1
call fcn.140007f00
mov rdx, qword [rbp + 0x5c0]
test rdx, rdx
je 0x14002a34b
add rdx, rdx
je 0x14002a34b
mov r8d, 2
mov rcx, r13
call fcn.140007f00
mov rax, qword [rbp + 0x508]
mov r15, qword [rax]
mov r12, qword [rax + 0x10]
mov qword [rbp + 0x400], r15
mov qword [rbp + 0x408], r12
test r12, r12
je 0x14002a3b3
cmp r12, 3
ja 0x14002a384
mov al, byte [r12 + r15 - 1]
cmp al, 0x2f
je 0x14002a3b3
cmp al, 0x5c
je 0x14002a3b3
jmp 0x14002a8da
cmp dword [r15], 0x5c3f5c5c
lea rax, [0x140027bc0]
lea rdx, [0x140027bb0]
cmove rdx, rax
mov cl, byte [r12 + r15 - 1]
mov byte [rbp + 0x627], 1
call rdx
test al, al
je 0x14002a877
lea rax, str.program_path_has_no_file_name
mov qword [rbp + 0x518], rax
mov qword [rbp + 0x510], 1
cmp qword [rbp + 0x510], 0
mov r12, qword [rbp + 0x518]
je 0x14002a432
mov rax, qword [rbp + 0x558]
mov qword [rax + 8], r12
mov qword [rax], 1
cmp qword [rbp + 0x420], 0
je 0x14002a607
mov rcx, qword [rbp + 0x430]
test rcx, rcx
je 0x14002a5eb
mov rdx, qword [rbp + 0x428]
mov rax, qword [rbp + 0x438]
mov qword [rbp - 0x18], rdx
mov qword [rbp - 0x10], rcx
mov qword [rbp + 8], rdx
mov qword [rbp + 0x10], rcx
xor ecx, ecx
jmp 0x14002a5f2
movdqu xmm0, xmmword [rbp + 0x520]
movdqu xmmword [rbp + 0x3f0], xmm0
mov qword [rbp + 0x3e8], r12
mov rcx, qword [rbp + 0x3f8]
mov rdx, rcx
sub rdx, 5
jae 0x14002a64f
mov rax, qword [rbp + 0x508]
mov rsi, qword [rax]
mov rbx, qword [rax + 0x10]
mov rdi, qword [rax + 0x18]
mov r15, qword [rax + 0x28]
mov r14b, byte [rax + 0x9d]
mov qword [rbp + 0x5a0], 2
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x5a8], xmm0
lea rcx, [rbp + 0x5a0]
xor edx, edx
call fcn.1400168e0
mov rax, qword [rbp + 0x5a0]
mov rcx, qword [rbp + 0x5b0]
mov word [rax + rcx*2], 0x22
add rcx, 1
mov qword [rbp + 0x5b0], rcx
add rbx, rsi
mov qword [rbp - 0x20], rsi
mov qword [rbp - 0x18], rbx
mov word [rbp - 0x10], 0
lea rcx, [rbp + 0x5a0]
lea rdx, [rbp - 0x20]
call fcn.140016b30
mov rdx, qword [rbp + 0x5b0]
cmp rdx, qword [rbp + 0x5a8]
jne 0x14002a502
lea rcx, [rbp + 0x5a0]
call fcn.1400168e0
mov rdx, qword [rbp + 0x5b0]
lea r13, [rbp + 0x5a8]
mov rax, qword [rbp + 0x5a0]
mov word [rax + rdx*2], 0x22
add rdx, 1
mov qword [rbp + 0x5b0], rdx
shl r15, 5
add r15, rdi
lea rsi, [rbp + 0x5a0]
nop
cmp rdi, r15
je 0x14002a741
mov rdx, qword [rbp + 0x5b0]
cmp rdx, qword [rbp + 0x5a8]
jne 0x14002a558
mov rcx, rsi
call fcn.1400168e0
mov rdx, qword [rbp + 0x5b0]
mov rax, qword [rbp + 0x5a0]
mov word [rax + rdx*2], 0x20
add rdx, 1
mov qword [rbp + 0x5b0], rdx
mov rcx, rsi
mov rdx, rdi
mov r8d, r14d
call fcn.140024490
mov rbx, rax
add rdi, 0x20
test rax, rax
je 0x14002a530
mov rdx, qword [rbp + 0x5a8]
test rdx, rdx
je 0x14002a5ad
add rdx, rdx
je 0x14002a5ad
mov rcx, qword [rbp + 0x5a0]
mov r8d, 2
call fcn.140007f00
mov rax, qword [rbp + 0x558]
mov qword [rax + 8], rbx
mov qword [rax], 1
mov rdx, qword [rbp + 0x3f0]
test rdx, rdx
je 0x14002a3ef
add rdx, rdx
je 0x14002a3ef
mov r8d, 2
mov rcx, r12
call fcn.140007f00
jmp 0x14002a3ef
mov ecx, 2
xor eax, eax
mov qword [rbp - 0x20], rcx
mov qword [rbp], rcx
mov qword [rbp + 0x20], rax
lea rcx, [rbp - 0x20]
call fcn.1400114d0
cmp dword [rbp + 0x440], 3
jb 0x14002a61d
mov rcx, qword [rbp + 0x448]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movaps xmm6, xmmword [rbp + 0x630]
add rsp, 0x6c8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor esi, esi
mov rdx, qword [rbp + 0x5a8]
test rdx, rdx
jne 0x14002a31a
jmp 0x14002a32c
xor eax, eax
sub rcx, rdx
lea rdx, [r12 + rdx*2]
cmovae rax, rdx
cmp rcx, 5
sete cl
test rax, rax
je case.0x14002a6ab.2
test cl, cl
je case.0x14002a6ab.2
cmp word [rax], 0x2e
jne case.0x14002a6ab.2
cmp word [rax + 8], 0
jne case.0x14002a6ab.2
movzx ecx, word [rax + 2]
lea edx, [rcx - 0x42]
cmp dx, 0x21
ja case.0x14002a6ab.2
movzx edx, dx
lea rbx, [0x14002dd24]
movsxd rdx, dword [rbx + rdx*4]
add rdx, rbx
jmp rdx
movzx edx, word [rax + 4]
or edx, 0x20
cmp dx, 0x61
jne 0x14002a6c7
movzx edx, word [rax + 6]
or edx, 0x20
cmp dx, 0x74
je 0x14002a6f3
cmp cx, 0x43
jne case.0x14002a6ab.2
movzx ecx, word [rax + 4]
or ecx, 0x20
cmp cx, 0x6d
jne case.0x14002a6ab.2
movzx eax, word [rax + 6]
or eax, 0x20
cmp ax, 0x64
jne case.0x14002a6ab.2
xor r13d, r13d
lea rcx, [rbp - 0x20]
mov r8d, 0x400
xor edx, edx
call fcn.140044ad0
mov qword [rbp + 0x5a0], 2
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x5a8], xmm0
mov edi, 0x200
mov eax, 2
mov qword [rbp + 0x618], rax
cmp rdi, 0x201
jae 0x14002a944
jmp 0x14002a98f
mov rsi, qword [rbp + 0x5a0]
movups xmm0, xmmword [r13]
movaps xmmword [rbp + 0x450], xmm0
mov rax, qword [rbp + 0x3f8]
mov qword [rbp + 0x570], rax
movdqu xmm0, xmmword [rbp + 0x3e8]
movdqa xmmword [rbp + 0x560], xmm0
mov rax, qword [rbp + 0x570]
mov qword [rbp + 0x410], rax
movaps xmm0, xmmword [rbp + 0x560]
movaps xmmword [rbp + 0x400], xmm0
mov qword [rbp + 0x4f0], rsi
movdqa xmm0, xmmword [rbp + 0x450]
movdqu xmmword [rbp + 0x4f8], xmm0
mov rdx, qword [rbp + 0x500]
cmp rdx, qword [rbp + 0x4f8]
jne 0x14002a7d6
mov byte [rbp + 0x624], 1
lea rcx, [rbp + 0x4f0]
call fcn.1400168e0
mov rsi, qword [rbp + 0x4f0]
mov rdx, qword [rbp + 0x500]
mov word [rsi + rdx*2], 0
add rdx, 1
mov qword [rbp + 0x500], rdx
mov rcx, qword [rbp + 0x508]
cmp byte [rcx + 0x9c], 0
mov eax, 0x400
mov r14d, 0x608
cmove r14d, eax
or r14d, dword [rcx + 0x98]
cmp qword [rbp + 0x420], 1
jne 0x14002a9ee
mov rsi, qword [rbp + 0x428]
mov rdi, qword [rbp + 0x430]
mov rbx, qword [rbp + 0x438]
mov qword [rbp + 0x560], rsi
mov qword [rbp + 0x568], rdi
mov qword [rbp + 0x570], rbx
mov qword [rbp + 0x600], 2
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x608], xmm0
test rbx, rbx
je 0x14002ad1b
mov eax, 2
mov qword [rbp + 0x5f0], rax
xor r13d, r13d
jmp 0x14002ad57
mov al, byte [r12 + r15 - 4]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x2e
jne 0x14002a8da
mov al, byte [r15 + r12 - 3]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x65
jne 0x14002a8da
mov al, byte [r15 + r12 - 2]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x78
jne 0x14002a8da
mov al, byte [r15 + r12 - 1]
lea ecx, [rax - 0x41]
cmp cl, 0x1a
setb cl
shl cl, 5
or cl, al
cmp cl, 0x65
sete al
jmp 0x14002a8dc
xor eax, eax
lea r8, [r15 + r12]
xor ecx, ecx
nop word cs:[rax + rax]
nop dword [rax]
cmp r12, rcx
je 0x14002ab05
movzx edx, byte [r15 + rcx]
cmp dl, 0x2f
je 0x14002a90c
add rcx, 1
cmp dl, 0x5c
jne 0x14002a8f0
test al, al
je 0x14002abc0
mov byte [rbp + 0x627], 1
lea rcx, [rbp + 0x510]
mov rdx, r15
mov r8, r12
call fcn.1400281d0
jmp 0x14002a3cc
mov rdi, rbx
jae 0x14002c0b1
cmp rdi, 0x201
jb 0x14002a98f
mov r8, rdi
sub r8, r13
mov rax, qword [rbp + 0x5a8]
sub rax, r13
cmp rax, r8
jae 0x14002a976
lea rcx, [rbp + 0x5a0]
mov rdx, r13
call fcn.1400518b0
mov rax, qword [rbp + 0x5a0]
mov qword [rbp + 0x618], rax
mov qword [rbp + 0x5b0], rdi
mov r13, rdi
mov rsi, qword [rbp + 0x618]
mov r14, rsi
mov r15, rdi
jmp 0x14002a99c
lea rsi, [rbp - 0x20]
mov r14, rsi
mov r15d, 0x200
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, rsi
mov edx, edi
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov esi, eax
test eax, eax
jne 0x14002a9c3
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14002c0e4
mov ebx, esi
cmp rdi, rbx
jne 0x14002a932
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14002ce4d
add rdi, rdi
cmp rdi, 0x201
jb 0x14002a98f
jmp 0x14002a944
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x450], xmm0
mov ecx, 2
xor r15d, r15d
movdqa xmm0, xmmword [rbp + 0x450]
movdqa xmmword [rbp - 0x30], xmm0
mov qword [rbp + 0x580], rcx
movdqu xmmword [rbp + 0x588], xmm0
mov rdx, qword [rbp + 0x508]
lea rax, [rdx + 0x50]
mov rdx, qword [rdx + 0x50]
test rdx, rdx
cmove rax, rdx
je 0x14002acee
mov r8, qword [rax]
mov r9, qword [rax + 0x10]
add r9, r8
xor edi, edi
mov r10, r8
jmp 0x14002aa5b
xor edi, edi
test bx, bx
je 0x14002acd0
mov bx, 1
test di, di
jne 0x14002aa50
cmp r10, r9
je 0x14002b2d1
movzx eax, byte [r10]
movzx esi, al
test sil, sil
js 0x14002aa83
add r10, 1
xor edi, edi
mov ebx, esi
jmp 0x14002aa52
mov edi, esi
and edi, 0x1f
movzx edx, byte [r10 + 1]
and edx, 0x3f
cmp sil, 0xdf
jbe 0x14002aacc
movzx esi, byte [r10 + 2]
shl edx, 6
and esi, 0x3f
or esi, edx
cmp al, 0xf0
jb 0x14002aae1
movzx eax, byte [r10 + 3]
add r10, 4
and edi, 7
shl edi, 0x12
shl esi, 6
and eax, 0x3f
or eax, esi
or eax, edi
mov esi, eax
cmp esi, 0xffff
jbe 0x14002aa7d
jmp 0x14002aaf2
add r10, 2
shl edi, 6
or edi, edx
mov esi, edi
cmp esi, 0xffff
ja 0x14002aaf2
jmp 0x14002aa7d
add r10, 3
shl edi, 0xc
or esi, edi
cmp esi, 0xffff
jbe 0x14002aa7d
and esi, 0x3ff
or esi, 0xdc00
mov edi, esi
jmp 0x14002aa52
mov r13, rsi
xor eax, eax
mov rdi, r15
jmp 0x14002ab1b
xor eax, eax
test dx, dx
je 0x14002acc4
mov dx, 1
test ax, ax
jne 0x14002ab10
cmp rdi, r8
je 0x14002b217
movzx ecx, byte [rdi]
movzx ebx, cl
test bl, bl
js 0x14002ab41
add rdi, 1
xor eax, eax
mov edx, ebx
jmp 0x14002ab12
mov eax, ebx
and eax, 0x1f
movzx esi, byte [rdi + 1]
and esi, 0x3f
cmp bl, 0xdf
jbe 0x14002ab87
movzx ebx, byte [rdi + 2]
shl esi, 6
and ebx, 0x3f
or ebx, esi
cmp cl, 0xf0
jb 0x14002ab9c
movzx ecx, byte [rdi + 3]
add rdi, 4
and eax, 7
shl eax, 0x12
shl ebx, 6
and ecx, 0x3f
or ecx, ebx
or ecx, eax
mov ebx, ecx
cmp ebx, 0xffff
jbe 0x14002ab3b
jmp 0x14002abad
add rdi, 2
shl eax, 6
or eax, esi
mov ebx, eax
cmp ebx, 0xffff
ja 0x14002abad
jmp 0x14002ab3b
add rdi, 3
shl eax, 0xc
or ebx, eax
cmp ebx, 0xffff
jbe 0x14002ab3b
and ebx, 0x3ff
or ebx, 0xdc00
mov eax, ebx
jmp 0x14002ab12
mov edx, 1
mov rcx, r12
call fcn.140007ef0
test rax, rax
je 0x14002ce6a
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], 0
lea rcx, [rbp - 0x20]
mov rdx, r15
mov r8, r12
call fcn.140021810
mov rax, qword [rbp - 0x10]
mov qword [rbp + 0x5b0], rax
movdqu xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rbp + 0x5a0], xmm0
mov qword [rbp - 0x10], rax
movdqa xmmword [rbp - 0x20], xmm0
lea rdx, str..exeprogram_not_found
lea rcx, [rbp - 0x20]
mov r8d, 4
call fcn.140021810
mov r15, qword [rbp - 0x10]
mov qword [rbp + 0x5b0], r15
movdqa xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rbp + 0x5a0], xmm0
mov r14, qword [rbp + 0x5a0]
mov byte [rbp + 0x621], 1
lea rcx, [rbp - 0x20]
mov rdx, r14
mov r8, r15
call fcn.1400281d0
cmp qword [rbp - 0x20], 0
je 0x14002b1d4
mov rax, qword [rbp - 0x18]
mov qword [rbp + 0x580], rax
mov byte [rbp + 0x621], 1
lea rcx, [rbp + 0x580]
call fcn.1400117c0
mov rcx, r14
mov rdx, r15
call fcn.14001f320
test rax, rax
je 0x14002b60a
cmp rdx, 2
jne 0x14002b18a
movzx ecx, word [rax]
cmp ecx, 0x2e2e
jne 0x14002b18a
mov r8d, 2
xor ecx, ecx
jmp 0x14002b1cf
lea rax, str.nul_byte_found_in_provided_data
jmp 0x14002a3ba
lea rax, str.nul_byte_found_in_provided_data
mov rdx, qword [rbp + 0x558]
mov qword [rdx + 8], rax
mov qword [rdx], 1
jmp 0x14002b4ed
mov dword [rbp + 0x4e0], r14d
mov qword [rbp + 0x4d0], r15
mov qword [rbp + 0x618], rcx
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x510], xmm0
mov eax, 2
xor ecx, ecx
jmp 0x14002b355
mov byte [rbp + 0x623], 1
lea rcx, [rbp + 0x600]
xor edx, edx
call fcn.1400168e0
mov rax, qword [rbp + 0x600]
mov r13, qword [rbp + 0x610]
mov qword [rbp + 0x5f0], rax
mov word [rax + r13*2], 0
add r13, 1
mov qword [rbp + 0x610], r13
xor eax, eax
test rdi, rdi
cmove rbx, rdi
sete al
add rax, rax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], rdi
mov qword [rbp], rax
mov qword [rbp + 8], rsi
mov qword [rbp + 0x10], rdi
mov qword [rbp + 0x20], rbx
lea rcx, [rbp + 0x5a0]
lea rdx, [rbp - 0x20]
call fcn.140014650
mov rax, qword [rbp + 0x5a8]
test rax, rax
je 0x14002be63
mov rcx, qword [rbp + 0x5b0]
lea rdi, [rcx + rcx*2]
mov rbx, rdi
shl rbx, 4
mov rcx, qword [rax + rbx + 8]
test rcx, rcx
je 0x14002be63
mov rdx, qword [rax + rbx + 0x10]
mov r8, qword [rax + rbx + 0x18]
mov rsi, qword [rax + rbx + 0x20]
mov qword [rbp + 0x618], rsi
mov r15, qword [rax + rbx + 0x28]
mov r12, qword [rax + rbx + 0x30]
mov rbx, qword [rax + rdi*8 + 0x228]
mov qword [rbp + 0x590], rbx
movdqu xmm0, xmmword [rax + rdi*8 + 0x218]
movdqa xmmword [rbp + 0x580], xmm0
add r8, rcx
xor eax, eax
mov r9, rcx
jmp 0x14002ae1b
xor eax, eax
test si, si
je 0x14002b138
mov si, 1
test ax, ax
jne 0x14002ae10
cmp r9, r8
je 0x14002aecd
movzx eax, byte [r9]
movzx ebx, al
test bl, bl
js 0x14002ae42
add r9, 1
xor eax, eax
mov esi, ebx
jmp 0x14002ae12
mov r10d, ebx
and r10d, 0x1f
movzx edi, byte [r9 + 1]
and edi, 0x3f
cmp bl, 0xdf
jbe 0x14002ae8f
movzx ebx, byte [r9 + 2]
shl edi, 6
and ebx, 0x3f
or ebx, edi
cmp al, 0xf0
jb 0x14002aea7
movzx eax, byte [r9 + 3]
add r9, 4
and r10d, 7
shl r10d, 0x12
shl ebx, 6
and eax, 0x3f
or eax, ebx
or eax, r10d
mov ebx, eax
cmp ebx, 0xffff
jbe 0x14002ae3c
jmp 0x14002aeba
add r9, 2
shl r10d, 6
or r10d, edi
mov ebx, r10d
cmp ebx, 0xffff
ja 0x14002aeba
jmp 0x14002ae3c
add r9, 3
shl r10d, 0xc
or ebx, r10d
cmp ebx, 0xffff
jbe 0x14002ae3c
and ebx, 0x3ff
or ebx, 0xdc00
mov eax, ebx
jmp 0x14002ae12
test rdx, rdx
je 0x14002aedd
mov r8d, 1
call fcn.140007f00
mov rcx, qword [rbp + 0x618]
lea rax, [rcx + r12*2]
mov qword [rbp + 0x5a0], rcx
mov qword [rbp + 0x5a8], r15
mov qword [rbp + 0x5b0], rcx
mov qword [rbp + 0x5b8], rax
mov rax, qword [rbp + 0x608]
sub rax, r13
cmp rax, r12
jae 0x14002af35
lea rcx, [rbp + 0x600]
mov rdx, r13
mov r8, r12
call fcn.1400518b0
mov rax, qword [rbp + 0x600]
mov r13, qword [rbp + 0x610]
jmp 0x14002af3c
mov rax, qword [rbp + 0x5f0]
lea r8, [r12 + r12]
mov rsi, rax
lea rcx, [rax + r13*2]
mov rdx, qword [rbp + 0x618]
call fcn.140043e60
add r13, r12
mov qword [rbp + 0x610], r13
test r15, r15
je 0x14002af7c
add r15, r15
je 0x14002af7c
mov r8d, 2
mov rcx, qword [rbp + 0x618]
mov rdx, r15
call fcn.140007f00
cmp r13, qword [rbp + 0x608]
jne 0x14002afa9
mov byte [rbp + 0x622], 1
lea rcx, [rbp + 0x600]
mov rdx, r13
call fcn.1400168e0
mov rsi, qword [rbp + 0x600]
mov r13, qword [rbp + 0x610]
mov word [rsi + r13*2], 0x3d
add r13, 1
mov qword [rbp + 0x610], r13
mov r12, qword [rbp + 0x580]
mov r15, qword [rbp + 0x588]
mov r8, qword [rbp + 0x590]
lea r9, [r12 + r8]
xor ecx, ecx
mov rdx, r12
jmp 0x14002afeb
xor ecx, ecx
test bx, bx
je 0x14002b260
mov bx, 1
test cx, cx
jne 0x14002afe0
cmp rdx, r9
je 0x14002b091
movzx eax, byte [rdx]
movzx edi, al
test dil, dil
js 0x14002b012
add rdx, 1
xor ecx, ecx
mov ebx, edi
jmp 0x14002afe2
mov ecx, edi
and ecx, 0x1f
movzx esi, byte [rdx + 1]
and esi, 0x3f
cmp dil, 0xdf
jbe 0x14002b058
movzx edi, byte [rdx + 2]
shl esi, 6
and edi, 0x3f
or edi, esi
cmp al, 0xf0
jb 0x14002b06d
movzx eax, byte [rdx + 3]
add rdx, 4
and ecx, 7
shl ecx, 0x12
shl edi, 6
and eax, 0x3f
or eax, edi
or eax, ecx
mov edi, eax
cmp edi, 0xffff
jbe 0x14002b00c
jmp 0x14002b07e
add rdx, 2
shl ecx, 6
or ecx, esi
mov edi, ecx
cmp edi, 0xffff
ja 0x14002b07e
jmp 0x14002b00c
add rdx, 3
shl ecx, 0xc
or edi, ecx
cmp edi, 0xffff
jbe 0x14002b00c
and edi, 0x3ff
or edi, 0xdc00
mov ecx, edi
jmp 0x14002afe2
mov qword [rbp + 0x510], r12
mov qword [rbp + 0x518], r15
mov qword [rbp + 0x520], r8
mov qword [rbp + 0x5a0], r12
mov qword [rbp + 0x5a8], r9
mov word [rbp + 0x5b0], 0
lea rcx, [rbp + 0x600]
lea rdx, [rbp + 0x5a0]
call fcn.140016b30
test r15, r15
je 0x14002b0e6
mov r8d, 1
mov rcx, r12
mov rdx, r15
call fcn.140007f00
mov r13, qword [rbp + 0x610]
cmp r13, qword [rbp + 0x608]
jne 0x14002b113
mov byte [rbp + 0x622], 0
lea rcx, [rbp + 0x600]
mov rdx, r13
call fcn.1400168e0
mov r13, qword [rbp + 0x610]
mov rax, qword [rbp + 0x600]
mov qword [rbp + 0x5f0], rax
mov word [rax + r13*2], 0
add r13, 1
mov qword [rbp + 0x610], r13
jmp 0x14002ad82
test rdx, rdx
je 0x14002b148
mov r8d, 1
call fcn.140007f00
mov rdx, qword [rbp + 0x588]
test rdx, rdx
je 0x14002b166
mov rcx, qword [rbp + 0x580]
mov r8d, 1
call fcn.140007f00
test r15, r15
je 0x14002b276
add r15, r15
je 0x14002b276
mov r8d, 2
mov rcx, qword [rbp + 0x618]
jmp 0x14002b26e
xor ebx, ebx
mov rcx, rax
nop
cmp rdx, rbx
je 0x14002b2c7
mov rsi, rbx
lea rdi, [rcx - 1]
add rbx, 1
cmp byte [rcx + rdx - 1], 0x2e
mov rcx, rdi
jne 0x14002b190
mov r8, rdx
sub r8, rbx
lea rcx, [r8 + 1]
cmp rdx, rcx
jb 0x14002ce80
cmp rdx, rbx
jne 0x14002b5d7
xor ecx, ecx
mov r8, rdx
jmp 0x14002b5e2
mov rbx, qword [rbp - 0x18]
test rbx, rbx
je 0x14002ac8a
movdqu xmm6, xmmword [rbp - 0x10]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002b6d1
mov qword [rbp + 0x518], rbx
movdqu xmmword [rbp + 0x520], xmm6
mov qword [rbp + 0x510], 0
jmp 0x14002b61c
cmp r12, 0xf
ja 0x14002b5be
xor eax, eax
xor ecx, ecx
nop word cs:[rax + rax]
nop
cmp byte [r15 + rcx], 0x2e
je 0x14002b6fb
add rcx, 1
cmp r12, rcx
jne 0x14002b230
jmp 0x14002b700
xor esi, esi
mov rdx, qword [rbp + 0x5a8]
test rdx, rdx
jne 0x14002a31a
jmp 0x14002a32c
test r15, r15
je 0x14002b276
mov r8d, 1
mov rcx, r12
mov rdx, r15
call fcn.140007f00
mov byte [rbp + 0x623], 0
lea rcx, [rbp - 0x20]
call fcn.1400114d0
mov rdx, qword [rbp + 0x608]
test rdx, rdx
je 0x14002b2a9
add rdx, rdx
je 0x14002b2a9
mov rcx, qword [rbp + 0x600]
mov r8d, 2
call fcn.140007f00
lea rax, str.nul_byte_found_in_provided_data
mov rcx, qword [rbp + 0x558]
mov qword [rcx + 8], rax
mov qword [rcx], 1
jmp 0x14002b509
mov rcx, rax
xor eax, eax
jmp 0x14002b5e2
mov qword [rbp + 0x618], rcx
mov qword [rbp - 0x20], r8
mov qword [rbp - 0x18], r9
mov word [rbp - 0x10], 0
lea rcx, [rbp + 0x5a0]
lea rdx, [rbp - 0x20]
call fcn.140012750
mov rdx, qword [rbp + 0x5b0]
cmp rdx, qword [rbp + 0x5a8]
mov dword [rbp + 0x4e0], r14d
jne 0x14002b320
lea rcx, [rbp + 0x5a0]
call fcn.1400168e0
mov rdx, qword [rbp + 0x5b0]
mov qword [rbp + 0x4d0], r15
lea rax, [rbp + 0x5a8]
mov rcx, qword [rbp + 0x5a0]
mov word [rcx + rdx*2], 0
add rdx, 1
mov qword [rbp + 0x5b0], rdx
movdqu xmm0, xmmword [rax]
movdqa xmmword [rbp + 0x510], xmm0
mov rax, rcx
mov qword [rbp + 0x4d8], rcx
movdqa xmm0, xmmword [rbp + 0x510]
movdqa xmmword [rbp + 0x600], xmm0
mov qword [rbp + 0x5f0], rax
mov qword [rbp + 0x510], rax
movdqu xmmword [rbp + 0x518], xmm0
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x5a0], xmm0
mov qword [rbp + 0x5b0], 0
lea rbx, [0x140071848]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov qword [rbp + 0x560], rbx
mov qword [rbp - 0x20], 0
mov qword [rbp - 0x10], 0
mov qword [rbp], 0
mov rbx, qword [rbp + 0x508]
lea rax, [rbx + 0x68]
mov rcx, qword [rbx + 0x68]
mov r13, qword [rbx + 0x78]
lea r12, [rbx + 0x78]
xor edx, edx
cmp r13, 5
cmove r12, rdx
mov r15, qword [rbx + 0x88]
add rbx, 0x88
cmp r15, 5
cmove rbx, rdx
mov qword [rbp + 0x508], rbx
cmp byte [rbp + 0x4c8], 0
lea r14, [rbp + 0x440]
lea rdi, [rbp + 0x600]
cmovne rdi, r14
lea rsi, [rbp + 0x448]
lea rbx, [rbp + 0x608]
cmovne rbx, rsi
mov qword [rbp + 0x600], 1
cmp rcx, 5
cmove rax, rdx
cmovne rdi, rax
add rax, 8
cmp ecx, 5
mov rcx, qword [rdi]
cmove rax, rbx
mov rdx, qword [rax]
lea r9, [rbp - 0x20]
mov r8d, 0xfffffff6
call fcn.14002def0
test rax, rax
je 0x14002b55c
mov rax, qword [rbp + 0x558]
mov qword [rax + 8], rdx
mov qword [rax], 1
cmp qword [rbp - 0x20], 0
je 0x14002b494
mov rcx, qword [rbp - 0x18]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp qword [rbp - 0x10], 0
je 0x14002b4a5
mov rcx, qword [rbp - 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp qword [rbp], 0
je 0x14002b4b6
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [0x140071848]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rdx, qword [rbp + 0x518]
test rdx, rdx
je 0x14002b4e6
add rdx, rdx
je 0x14002b4e6
mov r8d, 2
mov rcx, qword [rbp + 0x5f0]
call fcn.140007f00
mov rcx, qword [rbp + 0x618]
mov rdx, qword [rbp + 0x588]
test rdx, rdx
je 0x14002b509
add rdx, rdx
je 0x14002b509
mov r8d, 2
call fcn.140007f00
mov rdx, qword [rbp + 0x4f8]
test rdx, rdx
je 0x14002b52c
add rdx, rdx
je 0x14002b52c
mov rcx, qword [rbp + 0x4f0]
mov r8d, 2
call fcn.140007f00
mov rdx, qword [rbp + 0x408]
test rdx, rdx
je 0x14002a607
add rdx, rdx
je 0x14002a607
mov rcx, qword [rbp + 0x400]
mov r8d, 2
call fcn.140007f00
jmp 0x14002a607
mov qword [rbp + 0x4c8], rdx
lea r9, [rbp - 0x10]
cmp r13, 5
mov rax, r12
cmove rax, r14
add r12, 8
cmp r13d, 5
mov rcx, qword [rax]
lea rdi, [rbp + 0x448]
cmove r12, rdi
mov rdx, qword [r12]
mov r8d, 0xfffffff5
call fcn.14002def0
test rax, rax
je 0x14002b63f
mov rax, qword [rbp + 0x558]
mov qword [rax + 8], rdx
mov qword [rax], 1
mov rdi, qword [rbp + 0x4c8]
jmp 0x14002b6b8
mov byte [rbp + 0x627], 1
mov cl, 0x2e
mov rdx, r15
mov r8, r12
call fcn.14003c0e0
jmp 0x14002b700
lea rcx, [rdi + rdx]
add rcx, 1
mov rdx, rsi
test rax, rax
cmovne rcx, rax
test rcx, rcx
je 0x14002b60a
test rax, rax
cmove r8, rdx
add rcx, r8
sub rcx, r14
cmp r15, rcx
jb 0x14002b60a
mov qword [rbp + 0x5b0], rcx
mov r15, rcx
lea rcx, [rbp + 0x510]
mov rdx, r14
mov r8, r15
call fcn.1400281d0
mov rdx, qword [rbp + 0x5a8]
test rdx, rdx
je 0x14002a3cc
mov r8d, 1
mov rcx, r14
call fcn.140007f00
jmp 0x14002a3cc
mov qword [rbp + 0x4e8], rdx
lea r9, [rbp]
cmp r15, 5
mov rax, qword [rbp + 0x508]
cmovne r14, rax
add rax, 8
cmp r15d, 5
mov rcx, qword [r14]
cmove rax, rdi
mov rdx, qword [rax]
mov r8d, 0xfffffff4
call fcn.14002def0
mov rbx, rdx
test rax, rax
mov rcx, qword [rbp + 0x4d0]
mov edx, dword [rbp + 0x4e0]
je 0x14002c0f9
mov rax, qword [rbp + 0x558]
mov qword [rax + 8], rbx
mov qword [rax], 1
mov rdi, qword [rbp + 0x4c8]
mov rsi, qword [rbp + 0x4e8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp qword [rbp - 0x20], 0
jne 0x14002b48a
jmp 0x14002b494
movq rdx, xmm6
test rdx, rdx
je 0x14002ac8a
add rdx, rdx
je 0x14002ac8a
mov r8d, 2
mov rcx, rbx
call fcn.140007f00
jmp 0x14002ac8a
mov eax, 1
cmp rax, 1
sete byte [rbp + 0x450]
lea rax, [rbp + 0x400]
mov qword [rbp + 0x4f0], rax
lea rax, [rbp + 0x450]
mov qword [rbp + 0x4f8], rax
test r13, r13
je 0x14002ba5b
add r14, r13
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x18], r14
mov word [rbp - 0x10], 0
mov byte [rbp - 8], 1
mov byte [rbp + 0x627], 1
lea rcx, [rbp + 0x600]
lea rdx, [rbp - 0x20]
call fcn.140027630
mov rcx, qword [rbp + 0x600]
test rcx, rcx
je 0x14002ba5b
pxor xmm6, xmm6
jmp 0x14002b782
mov rcx, qword [rbp + 0x600]
test rcx, rcx
je 0x14002ba5b
mov rdx, qword [rbp + 0x608]
mov rax, qword [rbp + 0x610]
test rax, rax
je 0x14002b7f7
mov qword [rbp + 0x5a0], rcx
mov qword [rbp + 0x5a8], rdx
mov qword [rbp + 0x5b0], rax
mov byte [rbp + 0x627], 1
lea rcx, [rbp + 0x580]
lea rdx, [rbp + 0x4f0]
lea r8, [rbp + 0x5a0]
call fcn.14002ddb0
mov rsi, qword [rbp + 0x580]
test rsi, rsi
jne 0x14002bc80
mov byte [rbp + 0x627], 1
lea rcx, [rbp + 0x600]
lea rdx, [rbp - 0x20]
call fcn.140027630
jmp 0x14002b772
test rdx, rdx
je 0x14002b807
mov r8d, 1
call fcn.140007f00
movzx eax, byte [rbp - 8]
mov byte [rbp + 0x618], al
mov byte [rbp - 8], 0
mov qword [rbp + 0x580], 2
lea rax, [rbp + 0x588]
movdqu xmmword [rax], xmm6
mov r13, qword [rbp - 0x18]
mov eax, 2
xor r8d, r8d
movzx r15d, word [rbp - 0x10]
xor r14d, r14d
test r15w, r15w
je 0x14002b8ae
nop word cs:[rax + rax]
nop
mov word [rbp - 0x10], 0
xor r12d, r12d
cmp r15w, 0x22
je 0x14002b89e
jmp 0x14002b980
shl ecx, 6
or ecx, edi
mov r15d, ecx
cmp r15d, 0xffff
ja 0x14002b949
nop word cs:[rax + rax]
nop
xor r12d, r12d
cmp r15w, 0x22
jne 0x14002b980
not r14b
and r14b, 1
mov r15d, r12d
test r15w, r15w
jne 0x14002b850
mov rdx, qword [rbp - 0x20]
cmp rdx, r13
je 0x14002b9d9
lea rcx, [rdx + 1]
mov qword [rbp - 0x20], rcx
movzx ebx, byte [rdx]
movzx r15d, bl
test r15b, r15b
jns 0x14002b890
mov ecx, r15d
and ecx, 0x1f
lea rdi, [rdx + 2]
mov qword [rbp - 0x20], rdi
movzx edi, byte [rdx + 1]
and edi, 0x3f
cmp r15b, 0xdf
jbe 0x14002b870
lea rsi, [rdx + 3]
mov qword [rbp - 0x20], rsi
movzx r15d, byte [rdx + 2]
shl edi, 6
and r15d, 0x3f
or r15d, edi
cmp bl, 0xf0
jb 0x14002b936
lea rbx, [rdx + 4]
mov qword [rbp - 0x20], rbx
movzx edx, byte [rdx + 3]
and ecx, 7
shl ecx, 0x12
shl r15d, 6
and edx, 0x3f
or edx, r15d
or edx, ecx
mov r15d, edx
cmp r15d, 0xffff
jbe 0x14002b890
jmp 0x14002b949
shl ecx, 0xc
or r15d, ecx
cmp r15d, 0xffff
jbe 0x14002b890
add r15d, 0xffff0000
mov ecx, r15d
shr ecx, 0xa
or ecx, 0xd800
and r15d, 0x3ff
or r15d, 0xdc00
mov word [rbp - 0x10], r15w
mov r12d, r15d
mov r15d, ecx
cmp r15w, 0x22
je 0x14002b89e
cmp r15w, 0x3b
jne 0x14002b98d
test r14b, 1
je 0x14002b9d5
cmp r8, qword [rbp + 0x588]
jne 0x14002b9b3
lea rcx, [rbp + 0x580]
mov rdx, r8
call fcn.1400168e0
mov rax, qword [rbp + 0x580]
mov r8, qword [rbp + 0x590]
mov word [rax + r8*2], r15w
add r8, 1
mov qword [rbp + 0x590], r8
mov r15d, r12d
test r15w, r15w
je 0x14002b8ae
jmp 0x14002b850
mov byte [rbp - 8], 1
cmp byte [rbp + 0x618], 0
jne 0x14002b9fb
test r8, r8
jne 0x14002b9fb
mov qword [rbp + 0x600], 0
mov rbx, qword [rbp + 0x580]
jmp 0x14002ba2f
mov rbx, qword [rbp + 0x580]
lea rcx, [rbp + 0x5a0]
mov rdx, rbx
call fcn.14001cb90
mov rax, qword [rbp + 0x5b0]
mov qword [rbp + 0x610], rax
movdqu xmm0, xmmword [rbp + 0x5a0]
movdqa xmmword [rbp + 0x600], xmm0
mov rdx, qword [rbp + 0x588]
test rdx, rdx
je 0x14002b772
add rdx, rdx
je 0x14002b772
mov r8d, 2
mov rcx, rbx
call fcn.140007f00
jmp 0x14002b772
mov byte [rbp + 0x627], 1
lea rcx, [rbp - 0x20]
call fcn.1400278a0
cmp qword [rbp - 0x20], 0
je 0x14002bbf2
lea rcx, [rbp - 0x18]
mov byte [rbp + 0x627], 1
call fcn.1400117c0
xor r14d, r14d
mov r8d, 0x400
lea rcx, [rbp - 0x20]
xor edx, edx
call fcn.140044ad0
mov qword [rbp + 0x560], 2
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x568], xmm0
mov ebx, 0x200
mov r12d, 2
cmp rbx, 0x201
jae 0x14002bae2
jmp 0x14002bb30
mov rbx, r8
jae 0x14002bb8f
cmp rbx, 0x201
jb 0x14002bb30
mov r8, rbx
sub r8, r14
mov rax, qword [rbp + 0x568]
sub rax, r14
cmp rax, r8
jae 0x14002bb0d
lea rcx, [rbp + 0x560]
mov rdx, r14
call fcn.1400518b0
mov r12, qword [rbp + 0x560]
mov qword [rbp + 0x570], rbx
mov r14, rbx
mov r13, r12
mov rdi, rbx
mov r15, r12
jmp 0x14002bb3c
lea r15, [rbp - 0x20]
mov r13, r15
mov edi, 0x200
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, r15
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov esi, eax
test eax, eax
jne 0x14002bb63
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14002bc8d
mov r8d, esi
cmp rbx, r8
jne 0x14002bad0
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14002cd9f
add rbx, rbx
cmp rbx, 0x201
jb 0x14002bb30
jmp 0x14002bae2
cmp rdi, r8
jb 0x14002ce8e
lea rcx, [rbp + 0x580]
mov rdx, r13
call fcn.14001cb90
lea rcx, [rbp + 0x600]
lea rdx, [rbp + 0x4f0]
lea r8, [rbp + 0x580]
call fcn.14002ddb0
movdqu xmm0, xmmword [rbp + 0x600]
movdqu xmmword [rbp + 0x5a8], xmm0
mov rax, qword [rbp + 0x610]
mov qword [rbp + 0x5b8], rax
mov qword [rbp + 0x5a0], 0
mov sil, 1
jmp 0x14002bcaf
movdqu xmm0, xmmword [rbp - 0x18]
movdqa xmmword [rbp + 0x600], xmm0
mov rsi, qword [rbp - 8]
mov qword [rbp + 0x610], rsi
mov rcx, qword [rbp + 0x600]
mov byte [rbp + 0x5fd], 1
mov rdx, rsi
call fcn.14001f1c0
test rax, rax
je 0x14002bc31
cmp rsi, rdx
jb 0x14002bc31
mov qword [rbp + 0x610], rdx
mov rax, qword [rbp + 0x610]
mov qword [rbp + 0x5b0], rax
movdqa xmm0, xmmword [rbp + 0x600]
movdqa xmmword [rbp + 0x5a0], xmm0
mov byte [rbp + 0x5fd], 0
lea rcx, [rbp + 0x580]
lea rdx, [rbp + 0x4f0]
lea r8, [rbp + 0x5a0]
call fcn.14002ddb0
mov rsi, qword [rbp + 0x580]
test rsi, rsi
je 0x14002ba86
movdqu xmm6, xmmword [rbp + 0x588]
jmp 0x14002bf35
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [rbp + 0x5a8], rax
mov qword [rbp + 0x5a0], 1
xor esi, esi
mov rdx, qword [rbp + 0x568]
test rdx, rdx
je 0x14002bcce
add rdx, rdx
je 0x14002bcce
mov r8d, 2
mov rcx, r12
call fcn.140007f00
test sil, sil
je 0x14002bce5
mov rsi, qword [rbp + 0x5a8]
test rsi, rsi
jne 0x14002bf2d
jmp 0x14002bcf8
lea rcx, [rbp + 0x5a8]
mov byte [rbp + 0x627], 1
call fcn.1400117c0
xor edi, edi
lea rcx, [rbp - 0x20]
mov r8d, 0x400
xor edx, edx
call fcn.140044ad0
mov qword [rbp + 0x560], 2
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x568], xmm0
mov ebx, 0x200
mov r12d, 2
cmp rbx, 0x201
jae 0x14002bd52
jmp 0x14002bda0
mov rbx, r8
jae 0x14002be00
cmp rbx, 0x201
jb 0x14002bda0
mov r8, rbx
sub r8, rdi
mov rax, qword [rbp + 0x568]
sub rax, rdi
cmp rax, r8
jae 0x14002bd7d
lea rcx, [rbp + 0x560]
mov rdx, rdi
call fcn.1400518b0
mov r12, qword [rbp + 0x560]
mov qword [rbp + 0x570], rbx
mov rdi, rbx
mov r13, r12
mov r14, rbx
mov r15, r12
jmp 0x14002bdad
lea r15, [rbp - 0x20]
mov r13, r15
mov r14d, 0x200
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, r15
mov edx, ebx
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov esi, eax
test eax, eax
jne 0x14002bdd4
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14002bedb
mov r8d, esi
cmp rbx, r8
jne 0x14002bd40
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x14002cdbc
add rbx, rbx
cmp rbx, 0x201
jb 0x14002bda0
jmp 0x14002bd52
cmp r14, r8
jb 0x14002cea5
lea rcx, [rbp + 0x580]
mov rdx, r13
call fcn.14001cb90
lea rcx, [rbp + 0x600]
lea rdx, [rbp + 0x4f0]
lea r8, [rbp + 0x580]
call fcn.14002ddb0
movdqu xmm0, xmmword [rbp + 0x600]
movdqu xmmword [rbp + 0x5a8], xmm0
mov rax, qword [rbp + 0x610]
mov qword [rbp + 0x5b8], rax
mov qword [rbp + 0x5a0], 0
mov sil, 1
jmp 0x14002befd
mov byte [rbp + 0x623], 0
lea rcx, [rbp - 0x20]
call fcn.1400114d0
cmp r13, qword [rbp + 0x608]
mov rax, qword [rbp + 0x5f0]
jne 0x14002bea7
mov byte [rbp + 0x623], 0
lea rcx, [rbp + 0x600]
mov rdx, r13
call fcn.1400168e0
mov rax, qword [rbp + 0x600]
mov r13, qword [rbp + 0x610]
mov word [rax + r13*2], 0
add r13, 1
mov qword [rbp + 0x610], r13
mov r15, qword [rbp + 0x600]
lea rax, [rbp + 0x608]
movdqu xmm0, xmmword [rax]
movdqa xmmword [rbp + 0x450], xmm0
mov rcx, r15
jmp 0x14002aa02
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [rbp + 0x5a8], rax
mov qword [rbp + 0x5a0], 1
xor esi, esi
mov rdx, qword [rbp + 0x568]
test rdx, rdx
je 0x14002bf1c
add rdx, rdx
je 0x14002bf1c
mov r8d, 2
mov rcx, r12
call fcn.140007f00
test sil, sil
je 0x14002bf54
mov rsi, qword [rbp + 0x5a8]
test rsi, rsi
je 0x14002bf67
movdqu xmm6, xmmword [rbp + 0x5b0]
mov qword [rbp + 0x518], rsi
movdqu xmmword [rbp + 0x520], xmm6
mov qword [rbp + 0x510], 0
jmp 0x14002a3cc
lea rcx, [rbp + 0x5a8]
mov byte [rbp + 0x627], 1
call fcn.1400117c0
mov byte [rbp + 0x627], 1
lea rdx, str.PATHlock_count_overflow_in_reentrant_mutexlibrary_std_src_sys_common_remutex.rs
lea rcx, [rbp + 0x560]
mov r8d, 4
call fcn.140017e40
cmp qword [rbp + 0x560], 0
je 0x14002c0a5
movdqu xmm0, xmmword [rbp + 0x560]
movdqa xmmword [rbp + 0x600], xmm0
mov rax, qword [rbp + 0x570]
mov qword [rbp + 0x610], rax
mov r12, qword [rbp + 0x600]
add rax, r12
mov qword [rbp - 0x20], r12
mov qword [rbp - 0x18], rax
mov word [rbp - 0x10], 0
mov byte [rbp - 8], 1
lea rdi, [rbp + 0x5a0]
lea rbx, [rbp - 0x20]
lea r14, [rbp + 0x580]
lea r15, [rbp + 0x4f0]
mov rcx, rdi
mov rdx, rbx
call fcn.140027630
jmp 0x14002c000
mov rcx, rdi
mov rdx, rbx
call fcn.140027630
mov rcx, qword [rbp + 0x5a0]
test rcx, rcx
je 0x14002c08b
mov rdx, qword [rbp + 0x5a8]
mov rax, qword [rbp + 0x5b0]
test rax, rax
jne 0x14002c031
test rdx, rdx
je 0x14002bff5
mov r8d, 1
call fcn.140007f00
jmp 0x14002bff5
mov qword [rbp + 0x5a0], rcx
mov qword [rbp + 0x5a8], rdx
mov qword [rbp + 0x5b0], rax
mov rcx, r14
mov rdx, r15
mov r8, rdi
call fcn.14002ddb0
mov rsi, qword [rbp + 0x580]
test rsi, rsi
je 0x14002bfe8
movdqu xmm6, xmmword [rbp + 0x588]
mov rdx, qword [rbp + 0x608]
test rdx, rdx
je 0x14002bf35
mov r8d, 1
mov rcx, r12
call fcn.140007f00
jmp 0x14002bf35
mov rdx, qword [rbp + 0x608]
test rdx, rdx
je 0x14002c0a5
mov r8d, 1
mov rcx, r12
call fcn.140007f00
lea rax, [0x14005cbb0]
jmp 0x14002a3ba
cmp r15, rbx
jb 0x14002cebc
test esi, esi
je 0x14002c263
lea r15, [rbx + rbx]
mov edx, 2
mov rcx, r15
call fcn.140007ef0
test rax, rax
je 0x14002ced0
mov rcx, rax
jmp 0x14002c26b
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
xor esi, esi
jmp 0x14002c27f
mov rdi, qword [rbp + 0x4c8]
mov qword [rbp + 0x4b0], rdi
mov rsi, qword [rbp + 0x4e8]
mov qword [rbp + 0x4b8], rsi
mov qword [rbp + 0x4c0], rbx
mov r12, qword [rbp + 0x400]
mov r15, qword [rbp + 0x4f0]
lea rax, [rbp + 0x5a0]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x460]
mov qword [rsp + 0x40], rax
mov rax, qword [rbp + 0x4d8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x20], 1
mov rcx, r12
mov rdx, r15
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x14002c5a1
movdqa xmm0, xmmword [rbp + 0x5a0]
movups xmm1, xmmword [rbp - 0x20]
movups xmm2, xmmword [rbp - 0x10]
movups xmm3, xmmword [rbp]
mov rax, qword [rbp + 0x558]
movups xmmword [rax + 0x38], xmm3
movups xmmword [rax + 0x28], xmm2
movups xmmword [rax + 0x18], xmm1
movdqu xmmword [rax + 8], xmm0
mov qword [rax], 0
mov r14, qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbx
call r14
mov rcx, rsi
call r14
mov rcx, rdi
call r14
lea rcx, [0x140071848]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rdx, qword [rbp + 0x518]
test rdx, rdx
je 0x14002c1f5
add rdx, rdx
je 0x14002c1f5
mov r8d, 2
mov rcx, qword [rbp + 0x5f0]
call fcn.140007f00
mov rdx, qword [rbp + 0x588]
test rdx, rdx
je 0x14002c218
add rdx, rdx
je 0x14002c218
mov r8d, 2
mov rcx, qword [rbp + 0x618]
call fcn.140007f00
mov rdx, qword [rbp + 0x4f8]
test rdx, rdx
je 0x14002c237
add rdx, rdx
je 0x14002c237
mov r8d, 2
mov rcx, r15
call fcn.140007f00
mov rdx, qword [rbp + 0x408]
test rdx, rdx
je 0x14002a607
add rdx, rdx
je 0x14002a607
mov r8d, 2
mov rcx, r12
call fcn.140007f00
jmp 0x14002a607
mov ecx, 2
xor r15d, r15d
mov rdx, r14
mov r8, r15
mov rsi, rcx
call fcn.140043e60
mov rax, rsi
mov sil, 1
mov rdx, qword [rbp + 0x5a8]
test rdx, rdx
je 0x14002c2a8
add rdx, rdx
je 0x14002c2a8
mov r8d, 2
mov rcx, qword [rbp + 0x618]
mov rdi, rax
call fcn.140007f00
mov rax, rdi
test sil, sil
je 0x14002c4b8
mov rdi, rax
mov qword [rbp + 0x510], rax
mov qword [rbp + 0x518], rbx
mov qword [rbp + 0x520], rbx
lea rdx, [0x14005cbce]
lea rcx, [rbp - 0x20]
mov r8d, 8
call fcn.14003dd30
mov r12, qword [rbp - 0x20]
mov rsi, qword [rbp - 0x18]
movzx r15d, word [rbp - 0x10]
lea rax, [rsi + 3]
mov qword [rbp + 0x618], rax
xor r14d, r14d
mov r11, 0xffffffffffffffff
mov rax, r12
jmp 0x14002c323
mov word [rdi + rbx*2], r15w
add rbx, 1
mov qword [rbp + 0x520], rbx
mov r15d, r13d
test rax, rax
je 0x14002c3af
test r15w, r15w
je 0x14002c343
xor r13d, r13d
cmp qword [rbp + 0x518], rbx
jne 0x14002c310
jmp 0x14002c426
cmp rsi, rax
je 0x14002c3ac
movzx edx, byte [rax]
movzx ecx, dl
test cl, cl
js 0x14002c35e
add rax, 1
mov r12, rax
jmp 0x14002c413
mov r10, rsi
mov r9d, ecx
and r9d, 0x1f
movzx esi, byte [rax + 1]
and esi, 0x3f
cmp cl, 0xdf
jbe 0x14002c3d5
movzx r8d, byte [rax + 2]
shl esi, 6
and r8d, 0x3f
or r8d, esi
cmp dl, 0xf0
jb 0x14002c3eb
movzx ecx, byte [rax + 3]
and r9d, 7
shl r9d, 0x12
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
or ecx, r9d
cmp ecx, 0x110000
mov rsi, r10
jne 0x14002c401
xor r12d, r12d
test r14, r14
jne 0x14002c4df
mov r14d, 1
xor eax, eax
mov r13d, r15d
xor r15d, r15d
cmp qword [rbp + 0x518], rbx
jne 0x14002c310
jmp 0x14002c426
add rax, 2
shl r9d, 6
or r9d, esi
mov r12, rax
mov ecx, r9d
mov rsi, r10
jmp 0x14002c408
add rax, 3
shl r9d, 0xc
or r8d, r9d
mov r12, rax
mov ecx, r8d
mov rsi, r10
jmp 0x14002c408
add rax, 4
mov r12, rax
cmp ecx, 0xffff
ja 0x14002c480
mov rax, r12
xor r13d, r13d
mov r15d, ecx
cmp qword [rbp + 0x518], rbx
jne 0x14002c310
test r12, r12
je 0x14002c44b
mov rax, qword [rbp + 0x618]
sub rax, r12
shr rax, 2
mov r8d, 1
sub r8, r14
add r8, rax
cmovb r8, r11
jmp 0x14002c454
mov r8d, 1
sub r8, r14
inc r8
cmove r8, r11
lea rcx, [rbp + 0x510]
mov rdx, rbx
call fcn.1400518b0
mov rdi, qword [rbp + 0x510]
mov rax, r12
mov r11, 0xffffffffffffffff
jmp 0x14002c310
add ecx, 0xffff0000
mov r15d, ecx
shr r15d, 0xa
or r15d, 0xd800
and ecx, 0x3ff
or ecx, 0xdc00
mov r13d, ecx
mov rax, r12
cmp qword [rbp + 0x518], rbx
je 0x14002c426
jmp 0x14002c310
mov rcx, qword [rbp + 0x558]
mov qword [rcx + 8], rax
mov qword [rcx], 1
mov rdx, qword [rbp + 0x3f0]
test rdx, rdx
jne 0x14002a5cf
jmp 0x14002a3ef
mov rsi, qword [rbp + 0x510]
lea rax, [rbp + 0x518]
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x608], xmm0
mov qword [rbp + 0x600], rsi
mov rdx, qword [rbp + 0x3e8]
mov rcx, qword [rbp + 0x3f0]
mov rax, qword [rbp + 0x3f8]
cmp rax, 0x105
jae 0x14002c636
cmp rax, 6
jbe 0x14002c636
cmp word [rdx], 0x5c
jne 0x14002c636
cmp word [rdx + 2], 0x5c
jne 0x14002c636
cmp word [rdx + 4], 0x3f
jne 0x14002c636
movzx ebx, word [rdx + 6]
cmp bx, 0x5c
jne 0x14002c636
cmp word [rdx + 0xa], 0x3a
jne 0x14002c5cf
cmp word [rdx + 0xc], 0x5c
jne 0x14002c5cf
lea rbx, [rdx + 8]
mov qword [rbp + 0x510], rbx
mov qword [rbp + 0x5a0], rdx
mov qword [rbp + 0x5a8], rcx
mov qword [rbp + 0x5b0], rax
lea rcx, [rbp - 0x20]
lea rdx, [rbp + 0x510]
lea r8, [rbp + 0x5a0]
call fcn.14002f650
jmp 0x14002c64a
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov rcx, qword [rbp + 0x558]
mov qword [rcx + 8], rax
mov qword [rcx], 1
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14002b6af
cmp rax, 8
jb 0x14002c636
cmp bx, 0x5c
jne 0x14002c636
cmp word [rdx + 8], 0x55
jne 0x14002c636
cmp word [rdx + 0xa], 0x4e
jne 0x14002c636
cmp word [rdx + 0xc], 0x43
jne 0x14002c636
cmp word [rdx + 0xe], 0x5c
jne 0x14002c636
lea rbx, [rdx + 0xc]
mov word [rdx + 0xc], 0x5c
mov qword [rbp + 0x510], rbx
mov qword [rbp + 0x5a0], rdx
mov qword [rbp + 0x5a8], rcx
mov qword [rbp + 0x5b0], rax
lea rcx, [rbp - 0x20]
lea rdx, [rbp + 0x510]
lea r8, [rbp + 0x5a0]
call fcn.14002fad0
jmp 0x14002c64a
mov qword [rbp - 0x18], rdx
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], rax
mov qword [rbp - 0x20], 0
cmp qword [rbp - 0x20], 0
mov rcx, qword [rbp - 0x18]
je 0x14002c68e
mov rax, qword [rbp + 0x558]
mov qword [rax + 8], rcx
mov qword [rax], 1
mov rdx, qword [rbp + 0x608]
test rdx, rdx
je 0x14002a3ef
add rdx, rdx
je 0x14002a3ef
mov r8d, 2
mov rcx, rsi
jmp 0x14002a5e1
movdqu xmm0, xmmword [rbp - 0x10]
movdqu xmmword [rbp + 0x588], xmm0
mov qword [rbp + 0x4e0], rcx
mov qword [rbp + 0x580], rcx
mov rax, qword [rbp + 0x590]
mov qword [rbp + 0x5f0], rax
mov rax, qword [rbp + 0x508]
mov rsi, qword [rax + 0x18]
mov r15, qword [rax + 0x28]
mov r13b, byte [rax + 0x9d]
lea rdx, [0x14005c5d6]
lea rcx, [rbp + 0x5a0]
mov r8d, 0xc
call fcn.14003dd30
mov r14, qword [rbp + 0x5a0]
mov rax, qword [rbp + 0x5a8]
movzx r12d, word [rbp + 0x5b0]
test r12w, r12w
mov qword [rbp + 0x618], rax
je 0x14002c8f0
mov byte [rbp + 0x4e8], r13b
mov qword [rbp + 0x4d8], r15
mov qword [rbp + 0x4d0], rsi
xor r15d, r15d
lea r13, [rax + 3]
mov rax, r13
sub rax, r14
shr rax, 2
cmp rax, 4
mov ebx, 3
cmovae rbx, rax
lea rdi, [rbx + rbx]
add rdi, 2
mov edx, 2
mov rcx, rdi
call fcn.140007ef0
test rax, rax
je 0x14002cedf
add rbx, 1
mov word [rax], r12w
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rbx
mov qword [rbp - 0x10], 1
mov ebx, 1
lea rsi, [rbp - 0x20]
mov rdi, qword [rbp + 0x618]
jmp 0x14002c798
mov word [rax + rbx*2], r15w
add rbx, 1
mov qword [rbp - 0x10], rbx
mov r15d, r12d
test r15w, r15w
je 0x14002c7a6
xor r12d, r12d
jmp 0x14002c87e
cmp r14, rdi
je 0x14002c8aa
movzx edx, byte [r14]
movzx r15d, dl
test r15b, r15b
js 0x14002c7c8
add r14, 1
xor r12d, r12d
jmp 0x14002c87e
mov r8, rsi
mov ecx, r15d
and ecx, 0x1f
movzx esi, byte [r14 + 1]
and esi, 0x3f
cmp r15b, 0xdf
jbe 0x14002c826
movzx edi, byte [r14 + 2]
shl esi, 6
and edi, 0x3f
or edi, esi
cmp dl, 0xf0
jb 0x14002c834
movzx r15d, byte [r14 + 3]
and ecx, 7
shl ecx, 0x12
shl edi, 6
and r15d, 0x3f
or r15d, edi
or r15d, ecx
cmp r15d, 0x110000
mov rdi, qword [rbp + 0x618]
je 0x14002c8aa
mov rsi, r8
add r14, 4
jmp 0x14002c84a
add r14, 2
shl ecx, 6
or ecx, esi
mov r15d, ecx
jmp 0x14002c847
add r14, 3
shl ecx, 0xc
or edi, ecx
mov r15d, edi
mov rdi, qword [rbp + 0x618]
mov rsi, r8
cmp r15d, 0xffff
jbe 0x14002c79e
add r15d, 0xffff0000
mov ecx, r15d
shr ecx, 0xa
or ecx, 0xd800
and r15d, 0x3ff
or r15d, 0xdc00
mov r12d, r15d
mov r15d, ecx
cmp rbx, qword [rbp - 0x18]
jne 0x14002c788
mov r8, r13
sub r8, r14
shr r8, 2
add r8, 1
mov rcx, rsi
mov rdx, rbx
call fcn.1400518b0
mov rax, qword [rbp - 0x20]
jmp 0x14002c788
mov r14, qword [rbp - 0x10]
mov qword [rbp + 0x520], r14
movdqu xmm0, xmmword [rbp - 0x20]
movdqa xmmword [rbp + 0x510], xmm0
cmp r14, qword [rbp + 0x518]
mov rsi, qword [rbp + 0x4d0]
mov r15, qword [rbp + 0x4d8]
mov r13b, byte [rbp + 0x4e8]
mov rdi, qword [rbp + 0x4e0]
je 0x14002c9ac
jmp 0x14002c9c2
cmp r14, rax
je 0x14002c98b
mov dl, byte [r14]
movzx r12d, dl
test r12b, r12b
mov qword [rbp + 0x4d0], rsi
mov qword [rbp + 0x4d8], r15
mov byte [rbp + 0x4e8], r13b
js 0x14002c923
add r14, 1
jmp 0x14002c722
mov eax, r12d
and eax, 0x1f
movzx ebx, byte [r14 + 1]
and ebx, 0x3f
cmp r12b, 0xdf
jbe 0x14002cc62
movzx ecx, byte [r14 + 2]
shl ebx, 6
and ecx, 0x3f
or ecx, ebx
cmp dl, 0xf0
jb 0x14002cc70
movzx r12d, byte [r14 + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and r12d, 0x3f
or r12d, ecx
or r12d, eax
cmp r12d, 0x110000
mov rsi, qword [rbp + 0x4d0]
mov r15, qword [rbp + 0x4d8]
mov r13b, byte [rbp + 0x4e8]
jne 0x14002cc7e
mov qword [rbp + 0x510], 2
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x518], xmm0
xor r14d, r14d
mov rdi, qword [rbp + 0x4e0]
lea rcx, [rbp + 0x510]
mov rdx, r14
call fcn.1400168e0
mov r14, qword [rbp + 0x520]
mov rax, qword [rbp + 0x510]
mov word [rax + r14*2], 0x22
add r14, 1
mov qword [rbp + 0x520], r14
mov rax, qword [rbp + 0x5f0]
add rax, rax
xor ecx, ecx
lea rbx, [0x14005c618]
cmp rax, rcx
je 0x14002ca03
cmp word [rdi + rcx], 0x22
lea rcx, [rcx + 2]
jne 0x14002c9ee
jmp 0x14002cb35
mov r12, qword [rbp + 0x5f0]
sub r12, 1
jae 0x14002ca14
xor eax, eax
jmp 0x14002ca2c
movzx ecx, word [rdi + r12*2]
cmp cx, 0x5c
je 0x14002cb35
xor eax, eax
test cx, cx
cmove rax, rdi
test rax, rax
cmovne rdi, rax
mov qword [rbp + 0x4e0], rdi
cmove r12, qword [rbp + 0x5f0]
mov rdi, qword [rbp + 0x518]
mov rax, rdi
sub rax, r14
cmp rax, r12
jae 0x14002ca74
lea rcx, [rbp + 0x510]
mov rdx, r14
mov r8, r12
call fcn.1400518b0
mov rdi, qword [rbp + 0x518]
mov r14, qword [rbp + 0x520]
lea r8, [r12 + r12]
mov rbx, qword [rbp + 0x510]
lea rcx, [rbx + r14*2]
mov rdx, qword [rbp + 0x4e0]
call fcn.140043e60
add r14, r12
mov qword [rbp + 0x520], r14
cmp r14, rdi
jne 0x14002cabb
lea rcx, [rbp + 0x510]
mov rdx, rdi
call fcn.1400168e0
mov rbx, qword [rbp + 0x510]
mov r14, qword [rbp + 0x520]
mov word [rbx + r14*2], 0x22
add r14, 1
mov qword [rbp + 0x520], r14
shl r15, 5
add r15, rsi
lea rdi, [rbp + 0x510]
cmp rsi, r15
je 0x14002cbb8
mov rdx, qword [rbp + 0x520]
cmp rdx, qword [rbp + 0x518]
jne 0x14002cb03
mov rcx, rdi
call fcn.1400168e0
mov rdx, qword [rbp + 0x520]
mov rax, qword [rbp + 0x510]
mov word [rax + rdx*2], 0x20
add rdx, 1
mov qword [rbp + 0x520], rdx
mov rcx, rdi
mov rdx, rsi
mov r8d, r13d
call fcn.140024490
mov rbx, rax
add rsi, 0x20
test rax, rax
je 0x14002cadb
mov rdx, qword [rbp + 0x518]
test rdx, rdx
je 0x14002cb58
add rdx, rdx
je 0x14002cb58
mov rcx, qword [rbp + 0x510]
mov r8d, 2
call fcn.140007f00
mov rax, qword [rbp + 0x558]
mov qword [rax + 8], rbx
mov qword [rax], 1
mov rdx, qword [rbp + 0x608]
test rdx, rdx
je 0x14002cb8d
add rdx, rdx
je 0x14002cb8d
mov rcx, qword [rbp + 0x600]
mov r8d, 2
call fcn.140007f00
mov rdx, qword [rbp + 0x588]
test rdx, rdx
je 0x14002a3ef
add rdx, rdx
je 0x14002a3ef
mov rcx, qword [rbp + 0x580]
mov r8d, 2
jmp 0x14002a5e1
mov rdx, qword [rbp + 0x520]
cmp rdx, qword [rbp + 0x518]
jne 0x14002cbdb
lea rcx, [rbp + 0x510]
call fcn.1400168e0
mov rdx, qword [rbp + 0x520]
mov rax, qword [rbp + 0x510]
mov word [rax + rdx*2], 0x22
add rdx, 1
mov qword [rbp + 0x520], rdx
mov rsi, qword [rbp + 0x510]
mov rax, qword [rbp + 0x518]
mov qword [rbp + 0x450], rax
mov rax, qword [rbp + 0x520]
mov qword [rbp + 0x458], rax
movups xmm0, xmmword [rbp + 0x600]
movaps xmmword [rbp + 0x560], xmm0
mov rax, qword [rbp + 0x610]
mov qword [rbp + 0x570], rax
mov rdx, qword [rbp + 0x588]
test rdx, rdx
je 0x14002a772
add rdx, rdx
je 0x14002a772
mov rcx, qword [rbp + 0x580]
mov r8d, 2
call fcn.140007f00
jmp 0x14002a772
add r14, 2
shl eax, 6
or eax, ebx
mov r12d, eax
jmp 0x14002cc82
add r14, 3
shl eax, 0xc
or ecx, eax
mov r12d, ecx
jmp 0x14002cc82
add r14, 4
cmp r12d, 0xffff
ja 0x14002cc97
mov rax, qword [rbp + 0x618]
jmp 0x14002c722
add r12d, 0xffff0000
mov eax, r12d
shr eax, 0xa
or eax, 0xd800
and r12d, 0x3ff
or r12d, 0xdc00
mov r15d, r12d
mov r12d, eax
mov rax, qword [rbp + 0x618]
jmp 0x14002c725
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 + 0x510], rax
lea rax, [0x14001a080]
mov qword [rbp + 0x518], rax
lea rax, str.comparing_environment_keys_failed:
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], 1
mov qword [rbp - 0x10], 0
lea rax, [rbp + 0x510]
mov qword [rbp], rax
mov qword [rbp + 8], 1
lea rdx, str.library_std_src_syswindowsprocess.rs
lea rcx, [rbp - 0x20]
call fcn.1400529f0
jmp 0x14002ceec
mov rcx, rbx
mov rdx, rsi
call fcn.140052860
jmp 0x14002ceec
call fcn.1400387f0
jmp 0x14002ceec
mov byte [rbp + 0x5fe], 1
mov edx, 1
mov rcx, rsi
call fcn.140052860
jmp 0x14002ceec
mov edx, 1
mov rcx, rbx
call fcn.140052860
jmp 0x14002ceec
lea rcx, str.assertion_failed:_self.height___0
lea r8, [0x14005a5a0]
mov edx, 0x21
call fcn.140052880
jmp 0x14002ceec
lea rcx, str.internal_error:_entered_unreachable_code8
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140052880
jmp 0x14002ceec
lea rcx, str.internal_error:_entered_unreachable_code8
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140052880
jmp 0x14002ceec
call qword [sym.imp.KERNEL32.dll_GetLastError]
shl rax, 0x20
or rax, 2
mov qword [rbp + 0x5a0], rax
lea rax, [rbp + 0x5a0]
mov qword [rbp + 0x460], rax
lea rax, [0x14001a080]
mov qword [rbp + 0x468], rax
lea rax, str.failure_getting_env_string_from_OS:
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], 1
mov qword [rbp - 0x10], 0
lea rax, [rbp + 0x460]
mov qword [rbp], rax
mov qword [rbp + 8], 1
lea rdx, str.library_std_src_syswindowsos.rs
lea rcx, [rbp - 0x20]
call fcn.1400529f0
jmp 0x14002ceec
lea rcx, str.internal_error:_entered_unreachable_code8
lea r8, str.library_std_src_syswindowsmod.rs
mov edx, 0x28
call fcn.140052880
jmp 0x14002ceec
mov byte [rbp + 0x627], 1
mov edx, 1
mov rcx, r12
call fcn.140052860
jmp 0x14002ceec
lea r8, str._rustc_a8314ef7d0ec7b75c336af2c9857bfaf43002bfclibrarycore_src_sliceiter.rs
call fcn.140052ad0
jmp 0x14002ceec
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, rdi
mov r8, rax
call fcn.140052ae0
jmp 0x14002ceec
lea rax, str.library_std_src_syswindowsmod.rs
mov rcx, r8
mov rdx, r14
mov r8, rax
call fcn.140052ae0
jmp 0x14002ceec
lea r8, str.library_std_src_syswindowsmod.rs
mov rcx, rbx
mov rdx, r15
call fcn.140052ae0
jmp 0x14002ceec
mov edx, 2
mov rcx, r15
call fcn.140052860
jmp 0x14002ceec
mov edx, 2
mov rcx, rdi
call fcn.140052860
ud2