Function at 0x140023ac0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xa8
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x10], xmm6
mov r13d, r9d
mov r14, r8
mov qword [rbp - 0x78], rdx
mov r12, rcx
mov rsi, qword [rbp + 0x98]
mov rax, qword [0x1403486d0]
xor rax, rbp
mov qword [rbp + 8], rax
mov rcx, qword [rcx]
mov r10, qword [r12 + 8]
mov r8, qword [rcx + 0x10]
lea rax, [r8 + r8*2]
lea r9, [r10 + rax]
add r9, 0xffffffffffffffff
mov rax, r9
xor edx, edx
div r8
mov r15, r9
sub r15, rdx
and r15, 0xfffffffffffffffc
lea rax, [r15 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.1400e6f00
sub rsp, rax
mov qword [rbp - 0x48], rsp
mov rbx, qword [rcx]
lea rax, [rbx + 0xf]
and rax, 0xfffffffffffffff0
call fcn.1400e6f00
sub rsp, rax
mov rdx, rsp
lea rax, [rsi - 1]
cmp rax, 0x3f
jbe 0x140023b7a
sub rsp, 0x20
mov rcx, rbx
call fcn.140016010
add rsp, 0x20
mov edi, 0xffffffff
jmp 0x14002411c
mov ebx, r13d
test r13d, r13d
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x68], rdx
je 0x140023b99
cmp r13d, 3
ja 0x140023ba0
xor eax, eax
xor esi, esi
jmp 0x140023c70
xor esi, esi
jmp 0x140023c92
mov eax, ebx
and eax, 0xfffffffc
lea rbx, [rax - 4]
mov r11, rbx
shr r11, 2
add r11, 1
mov edi, r11d
and edi, 1
test rbx, rbx
je 0x140024147
mov rbx, rdi
sub rbx, r11
pxor xmm2, xmm2
xor esi, esi
pxor xmm0, xmm0
pxor xmm1, xmm1
nop word [rax + rax]
movq xmm3, qword [r14 + rsi*4]
movq xmm4, qword [r14 + rsi*4 + 8]
punpckldq xmm3, xmm2
paddq xmm3, xmm0
punpckldq xmm4, xmm2
paddq xmm4, xmm1
movq xmm0, qword [r14 + rsi*4 + 0x10]
movq xmm1, qword [r14 + rsi*4 + 0x18]
punpckldq xmm0, xmm2
paddq xmm0, xmm3
punpckldq xmm1, xmm2
paddq xmm1, xmm4
add rsi, 8
add rbx, 2
jne 0x140023be0
test rdi, rdi
je 0x140023c4b
movq xmm2, qword [r14 + rsi*4 + 8]
pxor xmm3, xmm3
punpckldq xmm2, xmm3
paddq xmm1, xmm2
movq xmm2, qword [r14 + rsi*4]
punpckldq xmm2, xmm3
paddq xmm0, xmm2
paddq xmm0, xmm1
pshufd xmm1, xmm0, 0x4e
paddq xmm1, xmm0
movq rsi, xmm1
mov rbx, qword [rbp - 0x58]
cmp rax, rbx
je 0x140023c80
nop word cs:[rax + rax]
mov edx, dword [r14 + rax*4]
add rsi, rdx
add rax, 1
cmp rbx, rax
jne 0x140023c70
mov rax, rsi
shr rax, 0x20
mov edi, 0xffffffff
jne 0x14002411c
mov qword [rbp - 0x60], r15
cmp r8, r9
ja 0x140024010
bswap esi
mov rax, qword [rbp + 0x98]
bswap eax
mov dword [rbp - 0x50], eax
xor edi, edi
movdqa xmm6, xmmword [0x1402ed530]
mov r15, qword [rbp - 0x48]
mov dword [rbp - 0x4c], r13d
mov qword [rbp - 0x70], rsi
jmp 0x140023d4d
mov rdi, qword [r12]
mov r13, qword [r12 + 0x28]
sub rsp, 0x20
mov rcx, rdi
mov rdx, r13
mov r8, r15
call qword [rdi + 0x20]
add rsp, 0x20
mov rdx, qword [rdi + 0x10]
sub rsp, 0x20
mov rcx, r13
lea r8, [0x1402ede90]
mov r9, r15
call qword [rdi + 0x28]
add rsp, 0x20
mov r13d, dword [rbp - 0x4c]
mov rcx, qword [r12]
mov r10, qword [r12 + 8]
mov r8, qword [rcx + 0x10]
mov rax, r8
and rax, 0xfffffffffffffffc
add r15, rax
mov rdi, qword [rbp - 0x80]
add rdi, 1
lea rax, [r8 + r8*2]
add rax, r10
add rax, 0xffffffffffffffff
xor edx, edx
div r8
cmp rdi, rax
mov rbx, qword [rbp - 0x58]
mov rsi, qword [rbp - 0x70]
jae 0x140024010
mov rdx, r8
mov qword [rbp - 0x80], rdi
imul rdx, rdi
add rdx, qword [r12 + 0x10]
sub rsp, 0x20
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
mov qword [r12 + 0x38], 0
mov dword [rbp - 0x40], esi
mov eax, dword [rbp - 0x50]
mov dword [rbp - 0x3c], eax
sub rsp, 0x20
mov r8d, 8
mov rcx, r12
lea rdx, [rbp - 0x40]
mov r9, r15
call fcn.140024490
add rsp, 0x20
test r13d, r13d
mov rdi, qword [rbp - 0x78]
je 0x140023dd4
xor esi, esi
nop word [rax + rax]
mov r8d, dword [r14 + rsi*4]
mov rdx, qword [rdi + rsi*8]
sub rsp, 0x20
mov rcx, r12
mov r9, r15
call fcn.140024490
add rsp, 0x20
add rsi, 1
cmp rbx, rsi
jne 0x140023db0
mov rbx, qword [r12 + 0x30]
sub rsp, 0x20
mov r8d, 1
mov rcx, r12
lea rdx, [0x1402edf10]
mov r9, r15
call fcn.140024490
add rsp, 0x20
mov rax, qword [r12 + 0x38]
test rax, rax
je 0x140023d0d
lea rdx, [rbx + rax]
mov rcx, qword [r12]
mov rcx, qword [rcx + 0x10]
sub rcx, rax
sub rsp, 0x20
call fcn.140016010
add rsp, 0x20
mov rdi, qword [r12]
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x140023cd4
cmp rax, 0x10
jb 0x140023fa0
lea rcx, [rbx + rax]
cmp rcx, r15
jbe 0x140023e54
lea rcx, [r15 + rax]
cmp rbx, rcx
jb 0x140023fa0
mov r8, rax
and r8, 0xfffffffffffffff0
lea rcx, [r8 - 0x10]
mov rdi, rcx
shr rdi, 4
add rdi, 1
mov r9d, edi
and r9d, 1
test rcx, rcx
je 0x140024003
sub rdi, r9
lea rcx, [rbx + rax]
add rcx, 0xfffffffffffffff8
lea rsi, [r15 + rax]
add rsi, 0xfffffffffffffff8
xor edx, edx
nop
movq xmm0, qword [rsi + rdx]
punpcklbw xmm0, xmm0
movq xmm1, qword [rsi + rdx - 8]
punpcklbw xmm1, xmm0
movq xmm2, qword [rcx + rdx]
punpcklbw xmm2, xmm0
pxor xmm2, xmm0
movq xmm0, qword [rcx + rdx - 8]
punpcklbw xmm0, xmm0
pxor xmm0, xmm1
pand xmm2, xmm6
packuswb xmm2, xmm2
movq qword [rsi + rdx], xmm2
pand xmm0, xmm6
packuswb xmm0, xmm0
movq qword [rsi + rdx - 8], xmm0
movq xmm0, qword [rsi + rdx - 0x10]
punpcklbw xmm0, xmm0
movq xmm1, qword [rsi + rdx - 0x18]
punpcklbw xmm1, xmm0
movq xmm2, qword [rcx + rdx - 0x10]
punpcklbw xmm2, xmm0
pxor xmm2, xmm0
movq xmm0, qword [rcx + rdx - 0x18]
punpcklbw xmm0, xmm0
pxor xmm0, xmm1
pand xmm2, xmm6
packuswb xmm2, xmm2
movq qword [rsi + rdx - 0x10], xmm2
pand xmm0, xmm6
packuswb xmm0, xmm0
movq qword [rsi + rdx - 0x18], xmm0
add rdx, 0xffffffffffffffe0
add rdi, 0xfffffffffffffffe
jne 0x140023e90
neg rdx
test r9, r9
je 0x140023f91
not rdx
add rdx, rax
movq xmm0, qword [r15 + rdx - 7]
punpcklbw xmm0, xmm0
movq xmm1, qword [r15 + rdx - 0xf]
punpcklbw xmm1, xmm0
movq xmm2, qword [rbx + rdx - 7]
punpcklbw xmm2, xmm0
pxor xmm2, xmm0
movq xmm0, qword [rbx + rdx - 0xf]
punpcklbw xmm0, xmm0
pxor xmm0, xmm1
pand xmm2, xmm6
packuswb xmm2, xmm2
movq qword [r15 + rdx - 7], xmm2
pand xmm0, xmm6
packuswb xmm0, xmm0
movq qword [r15 + rdx - 0xf], xmm0
cmp rax, r8
je 0x140023cd0
sub rax, r8
nop dword [rax]
lea rdi, [rax - 1]
mov rdx, rax
and rdx, 3
je 0x140023fc4
nop dword [rax]
movzx ecx, byte [rbx + rax - 1]
xor byte [r15 + rax - 1], cl
add rax, 0xffffffffffffffff
add rdx, 0xffffffffffffffff
jne 0x140023fb0
cmp rdi, 3
jb 0x140023cd0
nop
movzx ecx, byte [rbx + rax - 1]
xor byte [r15 + rax - 1], cl
movzx ecx, byte [rbx + rax - 2]
xor byte [r15 + rax - 2], cl
movzx ecx, byte [rbx + rax - 3]
xor byte [r15 + rax - 3], cl
movzx ecx, byte [rbx + rax - 4]
xor byte [r15 + rax - 4], cl
add rax, 0xfffffffffffffffc
jne 0x140023fd0
jmp 0x140023cd0
xor edx, edx
test r9, r9
jne 0x140023f3b
jmp 0x140023f91
sub rsp, 0x30
lea rax, [0x1402ede90]
mov qword [rsp + 0x20], rax
mov r15, qword [rbp - 0x68]
mov rdx, r15
mov r8, r10
mov r9, qword [rbp - 0x48]
call qword [rcx + 0x18]
add rsp, 0x30
mov rdi, qword [r12]
mov rcx, qword [rdi + 0x10]
mov rbx, qword [rbp + 0x98]
mov rax, rbx
xor edx, edx
div rcx
add rcx, 0xffffffffffffffff
xor esi, esi
test rcx, rbx
setne sil
add rsi, rax
je 0x1400240c7
lea rbx, [rbp - 0x40]
mov rax, qword [r12 + 8]
and rax, 0xfffffffffffffffc
mov r8, qword [rbp - 0x48]
add r8, rax
xor r14d, r14d
lea r13, [0x1402ede90]
nop dword [rax]
sub rsp, 0x20
mov rcx, rdi
mov rdx, r15
call qword [rdi + 0x20]
add rsp, 0x20
mov rdx, qword [rdi + 0x10]
sub rsp, 0x20
mov rcx, r15
mov r8, r13
mov r9, rbx
call qword [rdi + 0x28]
add rsp, 0x20
mov rdi, qword [r12]
mov rax, qword [rdi + 0x10]
and rax, 0xfffffffffffffffc
add rax, rbx
add r14, 1
mov r8, rbx
mov rbx, rax
cmp r14, rsi
jb 0x140024080
sub rsp, 0x20
lea rdi, [rbp - 0x40]
mov rcx, qword [rbp + 0x90]
mov rdx, rdi
mov r8, qword [rbp + 0x98]
call sub.VCRUNTIME140.dll_memcpy
add rsp, 0x20
mov rax, qword [r12]
mov rcx, qword [rax]
sub rsp, 0x20
mov rdx, r15
call fcn.140016010
mov rcx, qword [rbp - 0x60]
mov rdx, qword [rbp - 0x48]
call fcn.140016010
mov ecx, 0x40
mov rdx, rdi
call fcn.140016010
add rsp, 0x20
xor edi, edi
mov rcx, qword [rbp + 8]
xor rcx, rbp
sub rsp, 0x20
call fcn.1400e6b50
add rsp, 0x20
mov eax, edi
movaps xmm6, xmmword [rbp + 0x10]
lea rsp, [rbp + 0x28]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
pxor xmm0, xmm0
xor esi, esi
pxor xmm1, xmm1
test rdi, rdi
jne 0x140023c2a
jmp 0x140023c4b