Function at 0x14005c189
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 r15, qword [rcx]
mov rax, qword [rcx + 8]
mov qword [rsp + 0x60], rax
lea rdi, [rsp + 0x30]
lea r13, [rsp + 0x58]
mov rax, qword [rdx]
mov qword [rsp + 0x88], rax
lea r12, [rsp + 0x28]
mov esi, 0x80
mov rbx, qword [r15 + 8]
mov rdx, qword [rbx]
sub rdx, 0xffffffffffffff80
mov rcx, r12
call fcn.14006af67
cmp byte [rsp + 0x28], 0
je 0x14005c4ee
mov rbp, qword [r15]
mov rcx, r12
mov rdx, rbp
call fcn.14006af67
cmp byte [rsp + 0x28], 0
je 0x14005c4f8
mov eax, dword [rbp + 0x270]
add rbp, 0x270
cmp eax, 0x3ffffffd
ja 0x14005c446
lea ecx, [rax + 1]
lock cmpxchg dword [rbp], ecx
jne 0x14005c446
mov r12, r13
lea rcx, [rsp + 0x28]
mov rdx, rbp
call fcn.14006b2cf
cmp dword [rsp + 0x28], 1
je 0x14005c515
mov r11, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x90], r11
mov qword [rsp + 0x98], rax
mov r10, qword [r11 + 0x10]
mov rbp, qword [r15 + 0x10]
mov qword [rsp + 0xa0], r10
test r10, r10
movabs rax, 0x2d358dccaa6c78a5
movabs rcx, 0x8bb84b93962eacc9
je 0x14005c547
mov r13, r15
mov r15, qword [rbp]
lea r14, [r15 + rax]
mov rax, r14
xor rax, rcx
mul r14
xor rax, rdx
mul r10
mov rcx, rdx
mov qword [rbp], r14
cmp rax, r10
jae 0x14005c30e
mov r9, rax
mov rax, r10
neg rax
xor edx, edx
div r10
cmp r9, rdx
jae 0x14005c30e
mov r8, rdx
movabs rax, 0x5a6b1b9954d8f14a
add r15, rax
movabs rcx, 0x2d358dccaa6c78a5
movabs r9, 0x8bb84b93962eacc9
mov rax, r15
xor rax, r9
mul r15
add r14, rcx
xor rdx, rax
mov rax, r10
imul rax, rdx
add r15, rcx
cmp rax, r8
jb 0x14005c2e3
mov qword [rbp], r14
mov rax, rdx
mul r10
mov rcx, rdx
mov rax, qword [r11 + 8]
mov rdx, qword [r11 + 0x10]
lea rdx, [rax + rdx*8]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x58], r10
lea r14, [rsp + 0x68]
mov r15, r13
mov r13, r12
lea r12, [rsp + 0x28]
mov qword [rsp + 0x50], 0
test rcx, rcx
je 0x14005c3ca
dec rcx
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x14005c39b
mov rdx, qword [rsp + 0x38]
mov r8, rdx
sub r8, rax
shr r8, 3
cmp r8, rcx
cmovae r8, rcx
sub rcx, r8
jne 0x14005c392
lea rax, [rax + r8*8]
cmp rax, rdx
je 0x14005c392
add rax, 8
mov qword [rsp + 0x30], rax
jmp 0x14005c3ca
mov qword [rsp + 0x30], 0
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x14005c41a
mov rdx, qword [rsp + 0x48]
mov r8, rdx
sub r8, rax
shr r8, 3
lea rax, [rax + rcx*8]
add rax, 8
cmp r8, rcx
cmovbe rax, rdx
mov qword [rsp + 0x40], rax
jbe 0x14005c41a
mov rcx, rdi
mov rdx, r13
mov r8, r12
call fcn.140057d68
test rax, rax
je 0x14005c41a
test rdx, rdx
je 0x14005c41a
mov rcx, qword [rdx]
add rcx, rsi
mov rdx, qword [rbx]
add rdx, rsi
call fcn.140057e0c
mov rdx, qword [rbx]
add rdx, rsi
mov rcx, r14
call fcn.14006af67
cmp byte [rsp + 0x68], 0
je 0x14005c453
cmp qword [rsp + 0x58], 0
je 0x14005c41a
mov rcx, qword [rsp + 0x50]
jmp 0x14005c348
lea rcx, [rsp + 0x90]
call fcn.14006b573
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x88]
call fcn.14006a832
test al, al
jne 0x14005c1c7
jmp 0x14005c511
mov rcx, rbp
call fcn.14007d950
jmp 0x14005c224
mov rsi, qword [rsp + 0x70]
lea rcx, [rsp + 0x90]
call fcn.14006b573
mov rdi, qword [rsp + 0x60]
mov rcx, rdi
call fcn.14006aa3a
mov rdx, qword [rdi]
mov cl, 1
xor eax, eax
lock cmpxchg byte [rdx + 0x298], cl
jne 0x14005c4d7
add rdx, 0x200
lea rdi, [rsp + 0x28]
mov rcx, rdi
call fcn.14005fa95
cmp dword [rdi], 1
je 0x14005c5c4
mov rcx, qword [rsp + 0x30]
mov al, byte [rsp + 0x38]
lea r14, [rsp + 0x68]
mov qword [r14], rcx
mov byte [r14 + 8], al
add rcx, 8
call fcn.14006a806
mov rdi, rax
mov rbx, rdx
mov rcx, r14
call fcn.140006f35
test rdi, rdi
je 0x14005c4d7
mov rcx, rbx
call qword [rdi + 8]
mov rax, rsi
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [rsp + 0x30]
jmp 0x14005c465
mov rsi, qword [rsp + 0x30]
mov rdx, qword [rbx]
sub rdx, 0xffffffffffffff80
mov rcx, rbp
call fcn.140057e0c
jmp 0x14005c465
xor esi, esi
jmp 0x14005c4d7
movups xmm0, xmmword [rsp + 0x30]
lea r8, [rsp + 0x68]
movups xmmword [r8], xmm0
lea rax, str.C:Usershezhi.cargo_registry_srcmirrors.aliyun.com_8754fae0eb2f08f1_async_executor_1.13.0_src_lib.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14008fe50]
lea r9, [0x14008fe80]
mov edx, 0x2b
call fcn.14007e1b0
mov eax, 2
lea rcx, [rsp + 0xa8]
mov qword [rcx], rax
lea rdx, [rsp + 0xb8]
mov qword [rdx], 1
lea r8, [rsp + 0xa0]
mov qword [rdx + 8], r8
mov qword [rsp + 0x68], rcx
lea rcx, [0x14005bdcc]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x80], rcx
lea rdx, str.empty_range:_..
lea rcx, [rsp + 0x28]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
mov qword [rcx + 0x20], 0
lea rdx, [rsp + 0x68]
mov qword [rcx + 0x10], rdx
mov qword [rcx + 0x18], rax
lea rdx, str.C:Usershezhi.cargo_registry_srcmirrors.aliyun.com_8754fae0eb2f08f1_fastrand_2.1.0_srclib.rs
call fcn.14007de60
mov rax, qword [rsp + 0x30]
mov cl, byte [rsp + 0x38]
lea r8, [rsp + 0x68]
mov qword [r8], rax
mov byte [r8 + 8], cl
lea rax, str.C:Usershezhi.cargo_registry_srcmirrors.aliyun.com_8754fae0eb2f08f1_async_executor_1.13.0_src_lib.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14008fe50]
lea r9, [0x14008fea0]
jmp 0x14005c53d