Function at 0x140021650
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, qword [rcx + 8]
test rsi, rsi
je 0x14002195c
mov r9, rdx
mov r10, rcx
mov rax, qword [rcx + 0x20]
movabs rdi, 0x646f72616e646f83
xor rdi, rax
movabs rbx, 0x7465646279746573
xor rbx, rax
mov edx, r8d
and edx, 7
mov rax, r8
and rax, 0xfffffffffffffff8
je 0x14002171f
movabs r14, 0x736f6d6570736575
movabs r11, 0x6c7967656e657261
xor r15d, r15d
nop word [rax + rax]
add r14, rdi
rol rdi, 0xd
mov rcx, qword [r9 + r15]
xor rdi, r14
rol r14, 0x20
xor rbx, rcx
add r11, rbx
rol rbx, 0x10
xor rbx, r11
add r14, rbx
rol rbx, 0x15
add r11, rdi
rol rdi, 0x11
xor rdi, r11
rol r11, 0x20
xor rbx, r14
xor r14, rcx
add r15, 8
cmp r15, rax
jb 0x1400216c0
cmp edx, 4
jb 0x14002173b
mov r12d, dword [r9 + r15]
mov eax, 4
mov rcx, rax
or rcx, 1
cmp rcx, rdx
jb 0x14002174c
jmp 0x140021766
xor r15d, r15d
movabs r14, 0x736f6d6570736575
movabs r11, 0x6c7967656e657261
cmp edx, 4
jae 0x140021708
xor r12d, r12d
xor eax, eax
mov rcx, rax
or rcx, 1
cmp rcx, rdx
jae 0x140021766
lea rcx, [r9 + rax]
movzx r13d, word [r15 + rcx]
lea ecx, [rax*8]
shl r13, cl
or r12, r13
or rax, 2
cmp rax, rdx
jb 0x14002196e
test esi, esi
je 0x140021989
mov rax, r8
shl rax, 0x38
add r14, rdi
rol rdi, 0xd
or r12, rax
xor rdi, r14
rol r14, 0x20
xor rbx, r12
add r11, rbx
rol rbx, 0x10
xor rbx, r11
add r14, rbx
rol rbx, 0x15
add r11, rdi
rol rdi, 0x11
xor rbx, r14
xor rdi, r11
rol r11, 0x20
xor r14, r12
add r14, rdi
rol rdi, 0xd
xor rdi, r14
rol r14, 0x20
xor r11, 0xee
add r11, rbx
rol rbx, 0x10
xor rbx, r11
add r14, rbx
rol rbx, 0x15
add r11, rdi
rol rdi, 0x11
xor rdi, r11
rol r11, 0x20
xor rbx, r14
add r14, rdi
rol rdi, 0xd
xor rdi, r14
rol r14, 0x20
add r11, rbx
rol rbx, 0x10
xor rbx, r11
add r14, rbx
rol rbx, 0x15
add r11, rdi
rol rdi, 0x11
xor rdi, r11
rol r11, 0x20
xor rbx, r14
add r14, rdi
rol rdi, 0xd
xor rdi, r14
add r11, rbx
rol rbx, 0x10
xor rbx, r11
mov r15, rbx
rol r15, 0x15
add r11, rdi
rol rdi, 0x11
xor rdi, r11
rol r11, 0x20
mov rcx, r11
xor rcx, rdi
xor rcx, r15
mov rax, rcx
shr rax, 0x20
xor edx, edx
div esi
cmp rsi, rdx
jbe 0x140021995
mov rsi, qword [r10 + 0x18]
test esi, esi
je 0x1400219a7
rol r14, 0x20
add rbx, r14
xor r15, rbx
xor rdi, 0xdd
add rbx, rdi
rol rdi, 0xd
xor rdi, rbx
rol rbx, 0x20
add r11, r15
rol r15, 0x10
xor r15, r11
add rbx, r15
rol r15, 0x15
add r11, rdi
rol rdi, 0x11
xor rdi, r11
rol r11, 0x20
xor r15, rbx
add rbx, rdi
rol rdi, 0xd
xor rdi, rbx
rol rbx, 0x20
add r11, r15
rol r15, 0x10
xor r15, r11
add rbx, r15
rol r15, 0x15
add r11, rdi
rol rdi, 0x11
xor rdi, r11
rol r11, 0x20
xor r15, rbx
add rbx, rdi
rol rdi, 0xd
add r11, r15
rol r15, 0x10
xor r15, r11
rol r15, 0x15
xor rdi, rbx
add r11, rdi
rol rdi, 0x11
mov rax, qword [r10]
mov rbx, r11
shr rbx, 0x20
xor ebx, edi
xor ebx, r15d
xor r11d, ebx
imul ecx, dword [rax + rdx*8]
add r11d, dword [rax + rdx*8 + 4]
add r11d, ecx
mov eax, r11d
xor edx, edx
div esi
cmp rsi, rdx
jbe 0x1400219b3
mov rax, qword [r10 + 0x10]
lea rcx, [rdx + rdx*2]
cmp qword [rax + rcx*8 + 8], r8
jne 0x14002195c
lea rsi, [rax + rcx*8]
mov rcx, qword [rsi]
mov rdx, r9
call sub.VCRUNTIME140.dll_memcmp
mov ecx, eax
lea rdx, [rsi + 0x10]
xor eax, eax
test ecx, ecx
cmove rax, rsi
jmp 0x14002195e
xor eax, eax
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
add r15, rax
movzx edx, byte [r9 + r15]
shl eax, 3
mov ecx, eax
shl rdx, cl
or r12, rdx
test esi, esi
jne 0x140021777
lea rcx, str.C:Users_sushi.cargo_registry_srcindex.crates.io_6f17d22bba15001fphf_shared_0.11.2_src_lib.rsp
call fcn.14021aa20
lea r8, str.C:Users_sushi.cargo_registry_srcindex.crates.io_6f17d22bba15001fphf_shared_0.11.2_src_lib.rsp
mov rcx, rdx
mov rdx, rsi
call fcn.14021a410
lea rcx, str.C:Users_sushi.cargo_registry_srcindex.crates.io_6f17d22bba15001fphf_shared_0.11.2_src_lib.rsp
call fcn.14021aa20
lea r8, str.C:Users_sushi.cargo_registry_srcindex.crates.io_6f17d22bba15001fphf_0.11.2_srcmap.rs
mov rcx, rdx
mov rdx, rsi
call fcn.14021a410
int3