Function at 0x1400171b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov qword [rbp], 0xfffffffffffffffe
mov r13, rcx
mov r12, qword [rcx + 8]
mov rsi, qword [rcx + 0x10]
mov r10, qword [0x1403c9040]
mov rax, qword [r10 + 0x30]
movabs r11, 0x646f72616e646f83
xor r11, rax
movabs rbx, 0x7465646279746573
xor rbx, rax
mov edx, esi
and edx, 7
mov rax, rsi
and rax, 0xfffffffffffffff8
je 0x14001728f
movabs r14, 0x736f6d6570736575
movabs r8, 0x6c7967656e657261
xor r9d, r9d
nop word cs:[rax + rax]
add r14, r11
rol r11, 0xd
mov rcx, qword [r12 + r9]
xor r11, r14
rol r14, 0x20
xor rbx, rcx
add r8, rbx
rol rbx, 0x10
xor rbx, r8
add r14, rbx
rol rbx, 0x15
add r8, r11
rol r11, 0x11
xor r11, r8
rol r8, 0x20
xor rbx, r14
xor r14, rcx
add r9, 8
cmp r9, rax
jb 0x140017230
cmp edx, 4
jb 0x1400172ab
mov edi, dword [r12 + r9]
mov eax, 4
mov rcx, rax
or rcx, 1
cmp rcx, rdx
jb 0x1400172bb
jmp 0x1400172d5
xor r9d, r9d
movabs r14, 0x736f6d6570736575
movabs r8, 0x6c7967656e657261
cmp edx, 4
jae 0x140017278
xor edi, edi
xor eax, eax
mov rcx, rax
or rcx, 1
cmp rcx, rdx
jae 0x1400172d5
lea rcx, [r12 + rax]
movzx r15d, word [r9 + rcx]
lea ecx, [rax*8]
shl r15, cl
or rdi, r15
or rax, 2
cmp rax, rdx
jae 0x140017313
add r9, rax
movzx edx, byte [r12 + r9]
shl eax, 3
mov ecx, eax
shl rdx, cl
or rdi, rdx
mov r9, qword [r10 + 8]
test r9d, r9d
jne 0x14001731c
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x10], r12
mov byte [rbp - 1], 1
lea rcx, [0x140254da0]
call fcn.1402519e0
jmp 0x14001766e
mov r9, qword [r10 + 8]
test r9d, r9d
je 0x1400172f6
mov rax, rsi
shl rax, 0x38
add r14, r11
rol r11, 0xd
or rdi, rax
xor r11, r14
rol r14, 0x20
xor rbx, rdi
add r8, rbx
rol rbx, 0x10
xor rbx, r8
add r14, rbx
rol rbx, 0x15
add r8, r11
rol r11, 0x11
xor rbx, r14
xor r11, r8
rol r8, 0x20
xor r14, rdi
add r14, r11
rol r11, 0xd
xor r11, r14
rol r14, 0x20
xor r8, 0xee
add r8, rbx
rol rbx, 0x10
xor rbx, r8
add r14, rbx
rol rbx, 0x15
add r8, r11
rol r11, 0x11
xor r11, r8
rol r8, 0x20
xor rbx, r14
add r14, r11
rol r11, 0xd
xor r11, r14
rol r14, 0x20
add r8, rbx
rol rbx, 0x10
xor rbx, r8
add r14, rbx
rol rbx, 0x15
add r8, r11
rol r11, 0x11
xor r11, r8
rol r8, 0x20
xor rbx, r14
add r14, r11
rol r11, 0xd
xor r11, r14
add r8, rbx
rol rbx, 0x10
xor rbx, r8
mov r15, rbx
rol r15, 0x15
add r8, r11
rol r11, 0x11
xor r11, r8
rol r8, 0x20
mov rcx, r8
xor rcx, r15
xor rcx, r11
mov rdi, rcx
shr rdi, 0x20
mov eax, edi
xor edx, edx
div r9d
cmp r9, rdx
jbe 0x140017616
mov r9, qword [r10 + 0x18]
test r9d, r9d
je 0x140017636
rol r14, 0x20
add rbx, r14
xor r15, rbx
xor r11, 0xdd
add rbx, r11
rol r11, 0xd
xor r11, rbx
rol rbx, 0x20
add r8, r15
rol r15, 0x10
xor r15, r8
add rbx, r15
rol r15, 0x15
add r8, r11
rol r11, 0x11
xor r11, r8
rol r8, 0x20
xor r15, rbx
add rbx, r11
rol r11, 0xd
xor r11, rbx
rol rbx, 0x20
add r8, r15
rol r15, 0x10
xor r15, r8
add rbx, r15
rol r15, 0x15
add r8, r11
rol r11, 0x11
xor r11, r8
rol r8, 0x20
xor r15, rbx
add rbx, r11
rol r11, 0xd
add r8, r15
rol r15, 0x10
xor r15, r8
rol r15, 0x15
xor r11, rbx
add r8, r11
rol r11, 0x11
mov rax, r8
shr rax, 0x20
xor r11d, r15d
xor r8d, eax
xor r8d, r11d
mov rax, qword [r10]
imul ecx, dword [rax + rdx*8]
add r8d, dword [rax + rdx*8 + 4]
add r8d, ecx
mov eax, r8d
xor edx, edx
div r9d
mov ebx, edx
cmp r9, rbx
jbe 0x140017650
mov rax, qword [r10 + 0x10]
mov rcx, rbx
shl rcx, 4
cmp qword [rax + rcx + 8], rsi
jne 0x140017506
add rax, rcx
mov rcx, qword [rax]
mov rdx, r12
mov r8, rsi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1400175db
mov r14, qword [r13]
cmp rsi, 8
jae 0x14001757b
mov rdi, rsi
shl rdi, 4
mov byte [rbp - 0x12], 0
mov word [rbp - 0x14], 0
mov dword [rbp - 0x18], 0
lea rcx, [rbp - 0x18]
mov rdx, r12
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
movzx eax, byte [rbp - 0x12]
shl eax, 0x10
movzx ecx, word [rbp - 0x14]
or ecx, eax
mov ebx, dword [rbp - 0x18]
shl rcx, 0x28
shl rbx, 8
or rbx, rcx
or rbx, rdi
or rbx, 1
lea rax, [r14*2]
test rax, rax
je 0x140017602
mov r8d, 1
mov rcx, r12
mov rdx, r14
jmp 0x1400175fd
mov qword [rbp - 0x28], r14
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x10], r12
mov rax, qword [0x1403c9080]
mov rax, qword [rax + 0x10]
cmp rax, 2
je 0x1400175ab
mov byte [rbp - 2], 1
mov rcx, qword [0x1403c9080]
mov rdx, rcx
call fcn.140245440
mov rax, qword [rbp - 0x28]
mov qword [rbp - 0x40], rax
mov rax, qword [rbp - 0x10]
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rsi
mov byte [rbp - 2], 0
mov rcx, qword [0x1403c9080]
lea rdx, [rbp - 0x40]
mov r8d, edi
call fcn.1400627f0
mov rbx, rax
jmp 0x140017602
shl rbx, 0x20
or rbx, 2
mov rdx, qword [r13]
lea rax, [rdx*2]
test rax, rax
je 0x140017602
mov r8d, 1
mov rcx, r12
call fcn.14000fff0
mov rax, rbx
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x10], r12
mov byte [rbp - 1], 1
lea r8, [0x140254db8]
mov rcx, rdx
mov rdx, r9
call fcn.1402513d0
jmp 0x14001766e
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x10], r12
mov byte [rbp - 1], 1
lea rcx, [0x140254dd0]
call fcn.1402519e0
jmp 0x14001766e
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x10], r12
mov byte [rbp - 1], 1
lea r8, str.C:Users_sushi.cargo_registry_srcindex.crates.io_6f17d22bba15001f_string_cache_0.8.7_src_atom.rstext_htmlapplication_xhtmlxml
mov rcx, rbx
mov rdx, r9
call fcn.1402513d0
ud2