Function at 0x18002bc50
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], 0xfffffffffffffffe
lea rcx, [0x1801a1d55]
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x48], 0xe
lea r8, [0x1801a1d63]
mov qword [rbp - 0x10], r8
mov qword [rbp - 8], 1
mov edx, 0xe
mov r9d, 1
call fcn.18016d910
test rax, rax
jne 0x18002c36e
mov rsi, qword [0x180277148]
mov rax, qword [rsi]
cmp rax, 3
jb 0x18002be69
mov rax, qword [0x180277178]
movzx eax, byte [rax]
test al, al
jne 0x18002bde5
mov ecx, dword [0x18028ec98]
test cl, 1
jne 0x18002bde5
cmp ecx, 0x100
jae 0x18002bd0d
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x18028ec98], edx
jne 0x18002bd0d
lea rax, [0x18028ec98]
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
jmp 0x18002bd44
lea rdx, [0x18028ec98]
lea r9, [0x18028ec48]
mov rcx, rbp
lea r8, [rbp - 0x10]
call fcn.1801844d0
mov eax, dword [rbp]
test eax, eax
je 0x18002bdaf
cmp eax, 2
je 0x18002bde5
mov rax, qword [rbp + 8]
movq xmm0, qword [rbp + 0x10]
lea rcx, [0x18028ec48]
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rax
movq qword [rbp - 0x30], xmm0
mov rcx, rbp
lea rdx, [rbp - 0x40]
call fcn.18018df00
mov r8d, dword [rbp + 0x10]
mov rcx, qword [rbp + 8]
mov eax, r8d
or eax, 0x20000000
mov edx, dword [rbp + 0x14]
lock cmpxchg dword [rcx], edx
je 0x18002bde5
xor edx, r8d
or edx, 0x20000000
mov eax, dword [rcx]
nop dword [rax + rax]
mov r8d, eax
xor r8d, edx
lock cmpxchg dword [rcx], r8d
jne 0x18002bd90
cmp eax, 0x40000000
jb 0x18002bde5
xor eax, edx
mov edx, eax
call fcn.18018c540
jmp 0x18002bde5
mov rcx, qword [rbp + 8]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18002bde5
add edx, 0xffffff00
call fcn.18018c540
lea rax, [0x18028ec88]
mov qword [rbp - 0x10], rax
lea rax, [0x180067d10]
mov qword [rbp - 8], rax
lea rax, [0x1801a1d78]
mov qword [rbp], rax
mov qword [rbp + 8], 1
mov qword [rbp + 0x20], 0
lea rax, [rbp - 0x10]
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], 1
lea rcx, str.src_lib.rs
call fcn.18007b990
lea rcx, str.dfint_hookdfint_:
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], 0xa
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], 0xa
mov qword [rbp - 0x20], rax
mov rcx, rbp
lea r8, [rbp - 0x40]
mov edx, 3
xor r9d, r9d
call fcn.18007b8a0
mov rax, qword [rsi]
cmp rax, 3
jb 0x18002c019
mov rax, qword [0x180277178]
movzx eax, byte [rax]
test al, al
jne 0x18002bf95
mov ecx, dword [0x18028ecc0]
test cl, 1
jne 0x18002bf95
cmp ecx, 0x100
jae 0x18002bec5
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x18028ecc0], edx
jne 0x18002bec5
lea rax, [0x18028ecc0]
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
jmp 0x18002bef8
lea rdx, [0x18028ecc0]
lea r9, [0x18028eca8]
mov rcx, rbp
lea r8, [rbp - 0x10]
call fcn.1801844d0
mov eax, dword [rbp]
test eax, eax
je 0x18002bf5f
cmp eax, 2
je 0x18002bf95
mov rax, qword [rbp + 8]
movq xmm0, qword [rbp + 0x10]
lea rcx, [0x18028eca8]
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rax
movq qword [rbp - 0x30], xmm0
mov rcx, rbp
lea rdx, [rbp - 0x40]
call fcn.18018ce80
mov r8d, dword [rbp + 0x10]
mov rcx, qword [rbp + 8]
mov eax, r8d
or eax, 0x20000000
mov edx, dword [rbp + 0x14]
lock cmpxchg dword [rcx], edx
je 0x18002bf95
xor edx, r8d
or edx, 0x20000000
mov eax, dword [rcx]
nop dword [rax]
mov r8d, eax
xor r8d, edx
lock cmpxchg dword [rcx], r8d
jne 0x18002bf40
cmp eax, 0x40000000
jb 0x18002bf95
xor eax, edx
mov edx, eax
call fcn.18018c540
jmp 0x18002bf95
mov rcx, qword [rbp + 8]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18002bf95
add edx, 0xffffff00
call fcn.18018c540
lea rax, [0x18028eca8]
mov qword [rbp - 0x10], rax
lea rax, [0x180015400]
mov qword [rbp - 8], rax
lea rax, [0x1801a1dc8]
mov qword [rbp], rax
mov qword [rbp + 8], 1
mov qword [rbp + 0x20], 0
lea rax, [rbp - 0x10]
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], 1
lea rcx, str.src_lib.rs
call fcn.18007b990
lea rcx, str.dfint_hookdfint_:
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], 0xa
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], 0xa
mov qword [rbp - 0x20], rax
mov rcx, rbp
lea r8, [rbp - 0x40]
mov edx, 3
xor r9d, r9d
call fcn.18007b8a0
mov rax, qword [rsi]
cmp rax, 3
jb 0x18002c1c9
mov rax, qword [0x180277178]
movzx eax, byte [rax]
test al, al
jne 0x18002c145
mov ecx, dword [0x18028ec98]
test cl, 1
jne 0x18002c145
cmp ecx, 0x100
jae 0x18002c075
mov edx, ecx
or edx, 0x20000000
mov eax, ecx
lock cmpxchg dword [0x18028ec98], edx
jne 0x18002c075
lea rax, [0x18028ec98]
movd xmm0, ecx
pshufd xmm0, xmm0, 0x50
jmp 0x18002c0a8
lea rdx, [0x18028ec98]
lea r9, [0x18028ec48]
mov rcx, rbp
lea r8, [rbp - 0x10]
call fcn.1801844d0
mov eax, dword [rbp]
test eax, eax
je 0x18002c10f
cmp eax, 2
je 0x18002c145
mov rax, qword [rbp + 8]
movq xmm0, qword [rbp + 0x10]
lea rcx, [0x18028ec48]
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], rax
movq qword [rbp - 0x30], xmm0
mov rcx, rbp
lea rdx, [rbp - 0x40]
call fcn.18018df00
mov r8d, dword [rbp + 0x10]
mov rcx, qword [rbp + 8]
mov eax, r8d
or eax, 0x20000000
mov edx, dword [rbp + 0x14]
lock cmpxchg dword [rcx], edx
je 0x18002c145
xor edx, r8d
or edx, 0x20000000
mov eax, dword [rcx]
nop dword [rax]
mov r8d, eax
xor r8d, edx
lock cmpxchg dword [rcx], r8d
jne 0x18002c0f0
cmp eax, 0x40000000
jb 0x18002c145
xor eax, edx
mov edx, eax
call fcn.18018c540
jmp 0x18002c145
mov rcx, qword [rbp + 8]
mov edx, 0xffffff00
lock xadd dword [rcx], edx
mov eax, edx
and eax, 0x3fffff00
cmp eax, 0x100
setne al
cmp edx, 0x40000000
setb r8b
or r8b, al
jne 0x18002c145
add edx, 0xffffff00
call fcn.18018c540
lea rax, [0x18028ec68]
mov qword [rbp - 0x10], rax
lea rax, [0x180029700]
mov qword [rbp - 8], rax
lea rax, str.:
mov qword [rbp], rax
mov qword [rbp + 8], 1
mov qword [rbp + 0x20], 0
lea rax, [rbp - 0x10]
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], 1
lea rcx, str.src_lib.rs
call fcn.18007b990
lea rcx, str.dfint_hookdfint_:
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], 0xa
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], 0xa
mov qword [rbp - 0x20], rax
mov rcx, rbp
lea r8, [rbp - 0x40]
mov edx, 3
xor r9d, r9d
call fcn.18007b8a0
call fcn.180019b00
test rax, rax
je 0x18002c287
mov qword [rbp - 0x50], rax
mov rax, qword [rsi]
test rax, rax
je 0x18002c268
lea rax, [rbp - 0x50]
mov qword [rbp - 0x10], rax
lea rax, [0x18015eb10]
mov qword [rbp - 8], rax
lea rax, str.unable_to_attach_hooks___
mov qword [rbp], rax
mov qword [rbp + 8], 1
mov qword [rbp + 0x20], 0
lea rax, [rbp - 0x10]
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], 1
lea rcx, str.src_lib.rs
call fcn.18007b990
lea rcx, str.dfint_hookdfint_:
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], 0xa
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], 0xa
mov qword [rbp - 0x20], rax
mov rcx, rbp
lea r8, [rbp - 0x40]
mov edx, 1
xor r9d, r9d
call fcn.18007b8a0
lea rcx, [0x1801a1ea0]
mov edx, 0x12
call fcn.180038290
lea rcx, [rbp - 0x50]
call fcn.18015eb20
jmp 0x18002c361
mov rax, qword [rsi]
cmp rax, 4
jb 0x18002c2f7
lea rax, [0x1801a1e38]
mov qword [rbp], rax
mov qword [rbp + 8], 1
mov qword [rbp + 0x10], 8
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x18], xmm0
lea rcx, str.src_lib.rs
call fcn.18007b990
lea rcx, str.dfint_hookdfint_:
mov qword [rbp - 0x40], rcx
mov qword [rbp - 0x38], 0xa
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x28], 0xa
mov qword [rbp - 0x20], rax
mov rcx, rbp
lea r8, [rbp - 0x40]
mov edx, 4
xor r9d, r9d
call fcn.18007b8a0
movabs rax, 0x8000000000000000
mov qword [rbp + 0x10], rax
mov qword [rbp], 0
lea rcx, [rbp - 0x40]
mov rdx, rbp
call fcn.180060e50
cmp qword [rbp - 0x40], 0
je 0x18002c3e0
mov rcx, qword [rbp - 0x30]
mov qword [rbp + 0x10], rcx
movdqu xmm0, xmmword [rbp - 0x40]
movdqa xmmword [rbp], xmm0
call qword [sym.imp.kernel32.dll_CloseHandle]
mov rax, qword [rbp]
lock dec qword [rax]
jne 0x18002c34e
mov rcx, rbp
call fcn.18002a010
mov rax, qword [rbp + 8]
lock dec qword [rax]
jne 0x18002c361
lea rcx, [rbp + 8]
call fcn.180029d20
nop
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop rbp
ret
mov qword [rbp - 0x58], rax
lea rax, [rbp - 0x50]
mov qword [rbp], rax
lea rax, [0x180040f30]
mov qword [rbp + 8], rax
lea rcx, [rbp - 0x10]
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rax
lea rax, [rbp - 0x58]
mov qword [rbp + 0x20], rax
lea rax, [0x1801651f0]
mov qword [rbp + 0x28], rax
lea rax, str.failed_to_set_environment_variable____to___:
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], 3
mov qword [rbp - 0x20], 0
mov rax, rbp
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], 3
lea rdx, str._rustc_9b72238eb813e9d06e9e9d270168512fbffd7ee7library_std_srcenv.rs
lea rcx, [rbp - 0x40]
call fcn.18019e170
jmp 0x18002c40f
mov rax, qword [rbp - 0x38]
mov qword [rbp], rax
lea rax, [0x1801a1bd8]
mov qword [rsp + 0x20], rax
lea rcx, str.failed_to_spawn_thread_rustc_9b72238eb813e9d06e9e9d270168512fbffd7ee7library_std_src_threadmod.rs
lea r9, fcn.1800294d0
mov r8, rbp
mov edx, 0x16
call fcn.18019e500
ud2