Function at 0x14001b130
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov r14, r8
mov rdi, rdx
mov r12, rcx
lea rbx, [rdx + 0x10]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x1401ea970]
shl rax, 1
test rax, rax
jne 0x14001b652
xor ebp, ebp
movzx eax, byte [rdi + 0x18]
test al, al
jne 0x14001b669
movabs r13, 0x7fffffffffffffff
movzx eax, byte [rdi + 0x98]
test al, al
je 0x14001b220
mov rsi, qword [r14]
mov rax, qword [r14 + 0x18]
mov qword [rsp + 0xa0], rax
movups xmm0, xmmword [r14 + 8]
movaps xmmword [rsp + 0x90], xmm0
mov r14d, 1
test bpl, bpl
jne 0x14001b1ca
mov rax, qword [0x1401ea970]
test rax, r13
jne 0x14001b844
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp r14d, 1
je 0x14001b1ed
cmp r14d, 3
jne 0x14001bb8a
mov qword [r12], 3
jmp 0x14001b20c
mov qword [r12], rsi
movaps xmm0, xmmword [rsp + 0x90]
movups xmmword [r12 + 8], xmm0
mov rax, qword [rsp + 0xa0]
mov qword [r12 + 0x18], rax
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rdi + 0x58]
test rax, rax
je 0x14001b34a
mov dword [rsp + 0x30], ebp
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], r12
mov r12, qword [r14]
mov rcx, qword [r14 + 8]
mov qword [rsp + 0x88], rcx
mov rcx, qword [r14 + 0x10]
mov qword [rsp + 0x90], rcx
mov rcx, qword [r14 + 0x18]
mov qword [rsp + 0x38], rcx
jmp 0x14001b27d
mov rax, qword [rdi + 0x58]
test rax, rax
je 0x14001b73c
mov rcx, qword [rdi + 0x50]
mov rdx, qword [rdi + 0x40]
mov r8, qword [rdi + 0x48]
lea r9, [rcx + 1]
cmp r9, r8
mov r9d, 0
cmovb r8, r9
neg r8
dec rax
add r8, rcx
inc r8
mov qword [rdi + 0x50], r8
mov qword [rdi + 0x58], rax
cmp r12, 3
je 0x14001bb70
shl rcx, 4
mov r14, qword [rdx + rcx + 8]
mov rbp, qword [r14 + 0x10]
cmp rbp, 9
mov eax, 8
cmovae rax, rbp
mov r15, qword [rdx + rcx]
dec rax
and rax, 0xfffffffffffffff0
lea rbx, [rax + r15]
add rbx, 0x10
mov rsi, qword [rsp + 0x90]
mov r13, qword [rsp + 0x38]
cmp qword [rax + r15 + 0x10], 0
jne 0x14001b5e1
cmp r12, 4
je 0x14001b63b
dec rbp
and rbp, 0xffffffffffffffc8
lea rcx, [rbx + rbp]
add rcx, 0x38
call qword [r14 + 0x18]
test al, al
je 0x14001b69e
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x38], r13
lock dec qword [r15]
jne 0x14001b270
mov rcx, r15
mov rdx, r14
call fcn.140019e50
jmp 0x14001b270
cmp qword [rdi + 0x68], 0
je 0x14001b7b5
mov rax, qword [rdi + 0x38]
cmp rax, qword [rdi + 0x60]
jb 0x14001b7b9
mov eax, dword [0x14021d30c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
movzx eax, byte [rax + 0x88]
cmp eax, 1
je 0x14001b3b7
test eax, eax
jne 0x14001bc0f
mov eax, dword [0x14021d30c]
mov rcx, qword gs:[0x58]
mov rsi, qword [rcx + rax*8]
lea rcx, [rsi + 0x80]
lea rdx, [0x1400fb5b0]
call fcn.1400fb5f0
mov byte [rsi + 0x88], 1
mov eax, dword [0x14021d30c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r15, qword [rax + 0x80]
test r15, r15
je 0x14001ba4f
lock inc qword [r15]
jle 0x14001ba9c
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rsp + 0xa7], xmm1
movups xmmword [rsp + 0x97], xmm0
mov rax, qword [rsp + 0xaf]
mov qword [rsp + 0x6f], rax
movups xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x60], xmm0
movups xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x50], xmm0
movzx eax, byte [0x1401ea9b8]
mov ecx, 0x50
mov edx, 8
call fcn.140143230
test rax, rax
je 0x14001bbbe
mov r14, rax
lea rcx, [rdi + 0x68]
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], 1
mov qword [rax + 0x18], 0
mov byte [rax + 0x20], 0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movups xmmword [rax + 0x21], xmm0
movups xmmword [rax + 0x31], xmm1
mov rax, qword [rsp + 0x6f]
mov qword [r14 + 0x40], rax
mov qword [r14 + 0x48], r15
cmp qword [rcx], 0
je 0x14001bbcf
lock inc qword [r14]
jle 0x14001ba9c
mov rsi, r13
mov rdx, qword [rdi + 0x70]
mov rax, qword [rdi + 0x80]
cmp rax, rdx
jne 0x14001b4c3
call fcn.1400192e0
mov rdx, qword [rdi + 0x70]
mov rax, qword [rdi + 0x80]
mov rcx, qword [rdi + 0x78]
add rcx, rax
xor r8d, r8d
cmp rcx, rdx
cmovae r8, rdx
sub rcx, r8
mov rdx, qword [rdi + 0x68]
shl rcx, 4
mov qword [rdx + rcx], r14
lea r8, [0x14016b0d8]
mov qword [rdx + rcx + 8], r8
inc rax
mov qword [rdi + 0x80], rax
test bpl, bpl
jne 0x14001b50e
mov rax, qword [0x1401ea970]
test rax, rsi
jne 0x14001bb43
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov qword [rsp + 0x38], r14
movzx eax, byte [rdi + 0x98]
test al, al
jne 0x14001b95b
mov rbx, r14
add rbx, 0x18
mov rsi, qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov r15, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x14001b56a
mov rcx, rbx
call r15
call fcn.1400fb770
movzx eax, byte [rdi + 0x98]
test al, al
jne 0x14001b95b
cmp qword [r14 + 0x10], 0
je 0x14001bba4
mov rcx, rbx
call rsi
mov rax, qword [0x1401ea970]
test rax, r13
jne 0x14001b5bc
xor eax, eax
movzx ecx, byte [r14 + 0x20]
test cl, cl
jne 0x14001b5cc
cmp dword [r14 + 0x28], 3
je 0x14001b93e
test al, al
jne 0x14001b550
mov rax, qword [0x1401ea970]
test rax, r13
je 0x14001b550
call fcn.140166650
test al, al
jne 0x14001b550
mov byte [r14 + 0x20], 1
jmp 0x14001b550
call fcn.140166650
xor al, 1
movzx ecx, byte [r14 + 0x20]
test cl, cl
je 0x14001b591
mov qword [rsp + 0x50], rbx
mov byte [rsp + 0x58], al
lea rax, str.C:Usersmqnu7.cargo_registry_src_rsproxy.cn_0dccff568467c15b_flume_0.11.0_srclib.rs
jmp 0x14001b67a
lea rcx, [rbx + 8]
mov qword [rsp + 0xc0], rcx
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x1401ea970]
movabs rcx, 0x7fffffffffffffff
test rax, rcx
jne 0x14001ba20
xor r8d, r8d
movzx eax, byte [rbx + 0x10]
test al, al
jne 0x14001ba38
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x14001b813
cmp eax, 1
jne 0x14001b878
lea rax, [rbx + 0x30]
jmp 0x14001b817
mov sil, 1
mov r12, qword [rsp + 0x40]
lock dec qword [r15]
je 0x14001b90c
jmp 0x14001b917
call fcn.140166650
mov ebp, eax
xor bpl, 1
movzx eax, byte [rdi + 0x18]
test al, al
je 0x14001b17a
mov qword [rsp + 0x50], rbx
mov byte [rsp + 0x58], bpl
lea rax, str.C:Usersmqnu7.cargo_registry_src_rsproxy.cn_0dccff568467c15b_flume_0.11.0_srclib.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x1401aa88f]
lea r9, [0x14016b138]
lea r8, [rsp + 0x50]
mov edx, 0x2b
call fcn.140163790
ud2
mov rcx, qword [rdi + 0x28]
mov rax, qword [rdi + 0x38]
cmp rax, rcx
jne 0x14001b6bc
lea rcx, [rdi + 0x20]
call fcn.140019420
mov rcx, qword [rdi + 0x28]
mov rax, qword [rdi + 0x38]
mov rdx, qword [rdi + 0x30]
add rdx, rax
xor r8d, r8d
cmp rdx, rcx
cmovae r8, rcx
sub rdx, r8
mov rcx, qword [rdi + 0x20]
shl rdx, 5
mov qword [rcx + rdx], r12
mov r8, qword [rsp + 0x88]
mov qword [rcx + rdx + 8], r8
mov qword [rcx + rdx + 0x10], rsi
mov qword [rcx + rdx + 0x18], r13
inc rax
mov qword [rdi + 0x38], rax
cmp byte [rsp + 0x30], 0
jne 0x14001b71b
mov rax, qword [0x1401ea970]
movabs rcx, 0x7fffffffffffffff
test rax, rcx
jne 0x14001bb2d
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor esi, esi
mov r12, qword [rsp + 0x40]
lock dec qword [r15]
je 0x14001b90c
jmp 0x14001b917
mov rsi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x38]
mov rcx, qword [rdi + 0x28]
mov rax, qword [rdi + 0x38]
cmp rax, rcx
jne 0x14001b767
lea rcx, [rdi + 0x20]
call fcn.140019420
mov rcx, qword [rdi + 0x28]
mov rax, qword [rdi + 0x38]
mov rdx, qword [rdi + 0x30]
add rdx, rax
xor r8d, r8d
cmp rdx, rcx
cmovae r8, rcx
sub rdx, r8
mov rcx, qword [rdi + 0x20]
shl rdx, 5
mov qword [rcx + rdx], r12
mov r8, qword [rsp + 0x88]
mov qword [rcx + rdx + 8], r8
mov qword [rcx + rdx + 0x10], rsi
mov qword [rcx + rdx + 0x18], rbx
inc rax
mov qword [rdi + 0x38], rax
mov r14d, 3
mov r12, qword [rsp + 0x40]
jmp 0x14001b926
mov rax, qword [rdi + 0x38]
mov rcx, qword [rdi + 0x28]
cmp rax, rcx
jne 0x14001b7d3
lea rcx, [rdi + 0x20]
call fcn.140019420
mov rcx, qword [rdi + 0x28]
mov rax, qword [rdi + 0x38]
mov rdx, qword [rdi + 0x30]
add rdx, rax
xor r8d, r8d
cmp rdx, rcx
cmovae r8, rcx
sub rdx, r8
mov rcx, qword [rdi + 0x20]
shl rdx, 5
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rcx + rdx + 0x10], xmm1
movups xmmword [rcx + rdx], xmm0
inc rax
mov qword [rdi + 0x38], rax
mov r14d, 3
jmp 0x14001b1b5
lea rax, [rbx + 0x28]
mov rcx, qword [rax]
movzx eax, byte [rcx + 0x10]
nop
mov edx, eax
xor dl, 1
lock cmpxchg byte [rcx + 0x10], dl
jne 0x14001b820
test al, al
je 0x14001b85a
movzx eax, al
cmp eax, 3
je 0x14001b878
mov dword [rsp + 0x34], r8d
call fcn.140142490
jmp 0x14001b873
call fcn.140166650
test al, al
jne 0x14001b1ca
mov byte [rdi + 0x18], 1
jmp 0x14001b1ca
mov rdx, qword [rcx]
mov rax, qword [rcx + 8]
mov dword [rsp + 0x34], r8d
mov r8b, 2
xchg byte [rcx + 0x10], r8b
mov rcx, rax
call qword [rdx + 8]
mov r8d, dword [rsp + 0x34]
mov qword [rbx + 0x18], r12
mov rax, qword [rsp + 0x88]
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rsi
mov qword [rbx + 0x30], r13
test r8b, r8b
jne 0x14001b8af
mov rax, qword [0x1401ea970]
movabs rcx, 0x7fffffffffffffff
test rax, rcx
jne 0x14001bb01
mov rcx, qword [rsp + 0xc0]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
dec rbp
and rbp, 0xffffffffffffffc8
lea r12, [rbx + rbp]
add r12, 0x38
cmp byte [rsp + 0x30], 0
jne 0x14001b8ed
mov rax, qword [0x1401ea970]
movabs rcx, 0x7fffffffffffffff
test rax, rcx
jne 0x14001bb17
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, r12
call qword [r14 + 0x18]
xor esi, esi
mov r12, qword [rsp + 0x40]
lock dec qword [r15]
jne 0x14001b917
mov rcx, r15
mov rdx, r14
call fcn.140019e50
test sil, sil
je 0x14001b1e3
mov r14d, 3
movabs r13, 0x7fffffffffffffff
mov rbx, qword [rsp + 0x48]
mov ebp, dword [rsp + 0x30]
jmp 0x14001b1b5
test al, al
jne 0x14001b952
mov rax, qword [0x1401ea970]
test rax, r13
jne 0x14001bb59
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rbx, qword [rsp + 0x38]
cmp qword [rbx + 0x10], 0
je 0x14001bbe9
lea rdi, [rbx + 0x18]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rax, qword [0x1401ea970]
test rax, r13
jne 0x14001baa0
movzx eax, byte [rbx + 0x20]
test al, al
jne 0x14001bc03
lea r14, [rbx + 0x20]
mov rsi, qword [rbx + 0x28]
mov rax, qword [rbx + 0x40]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rbx + 0x30]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rbx + 0x28], 3
mov rax, qword [0x1401ea970]
test rax, r13
jne 0x14001baeb
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r14d, 3
cmp rsi, 3
jne 0x14001b9e7
lock dec qword [rbx]
jne 0x14001b1d3
jmp 0x14001ba11
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0xa0], rax
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x90], xmm0
mov r14d, 1
lock dec qword [rbx]
jne 0x14001b1d3
lea rcx, [rsp + 0x38]
call fcn.140019b90
jmp 0x14001b1d3
call fcn.140166650
mov r8d, eax
xor r8b, 1
movzx eax, byte [rbx + 0x10]
test al, al
je 0x14001b61c
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x58], r8b
jmp 0x14001b5d5
call fcn.140166460
mov r15, rax
mov eax, dword [0x14021d30c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp qword [rax + 0x80], 0
jne 0x14001bc29
mov eax, dword [0x14021d30c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 0x80], r15
lock inc qword [r15]
jg 0x14001b3e4
ud2
call fcn.140166650
movzx ecx, byte [rbx + 0x20]
test cl, cl
jne 0x14001bc65
mov rsi, qword [rbx + 0x28]
mov rcx, qword [rbx + 0x40]
mov qword [rsp + 0x60], rcx
movups xmm0, xmmword [rbx + 0x30]
movaps xmmword [rsp + 0x50], xmm0
mov qword [rbx + 0x28], 3
test al, al
je 0x14001b9c6
lea r14, [rbx + 0x20]
mov rax, qword [0x1401ea970]
test rax, r13
je 0x14001b9c6
call fcn.140166650
test al, al
jne 0x14001b9c6
mov byte [r14], 1
jmp 0x14001b9c6
call fcn.140166650
test al, al
jne 0x14001b8af
mov byte [rbx + 0x10], 1
jmp 0x14001b8af
call fcn.140166650
test al, al
jne 0x14001b8ed
mov byte [rdi + 0x18], 1
jmp 0x14001b8ed
call fcn.140166650
test al, al
jne 0x14001b71b
mov byte [rdi + 0x18], 1
jmp 0x14001b71b
call fcn.140166650
test al, al
jne 0x14001b50e
mov byte [rdi + 0x18], 1
jmp 0x14001b50e
call fcn.140166650
test al, al
jne 0x14001b952
mov byte [r14 + 0x20], 1
jmp 0x14001b952
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, str.C:Usersmqnu7.cargo_registry_src_rsproxy.cn_0dccff568467c15b_flume_0.11.0_srclib.rs
mov edx, 0x2b
call fcn.140163440
ud2
lea rcx, str.internal_error:_entered_unreachable_codeC:Usersmqnu7.cargo_registry_src_rsproxy.cn_0dccff568467c15b_spin_0.5.2_srconce.rs
lea r8, str.C:Usersmqnu7.cargo_registry_src_rsproxy.cn_0dccff568467c15b_flume_0.11.0_srclib.rs
mov edx, 0x28
call fcn.140163440
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, str.C:Usersmqnu7.cargo_registry_src_rsproxy.cn_0dccff568467c15b_flume_0.11.0_srclib.rs
mov edx, 0x2b
call fcn.140163440
ud2
mov ecx, 8
mov edx, 0x50
call fcn.140162fc0
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, str.C:Usersmqnu7.cargo_registry_src_rsproxy.cn_0dccff568467c15b_flume_0.11.0_srclib.rs
mov edx, 0x2b
call fcn.140163440
ud2
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, str.C:Usersmqnu7.cargo_registry_src_rsproxy.cn_0dccff568467c15b_flume_0.11.0_srclib.rs
mov edx, 0x2b
call fcn.140163440
ud2
xor eax, eax
mov qword [rsp + 0x50], rdi
jmp 0x14001b5d1
lea rcx, str.use_of_std::thread::current___is_not_possible_after_the_threads_local_data_has_been_destroyed
lea r8, str.C:Usersmqnu7.rustup_toolchains_nightly_x86_64_pc_windows_gnulib_rustlib_src_rustlibrary_std_src_threadmod.rs
mov edx, 0x5e
call fcn.140163830
ud2
lea rax, str.reentrant_init
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 1
lea rax, [0x1401aa580]
mov qword [rsp + 0x60], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x68], xmm0
and al, 0x68
xor al, 1
mov qword [rsp + 0x50], rdi
jmp 0x14001b5d1