Function at 0x140023540
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
movdqa xmmword [rbp - 0x10], xmm10
movdqa xmmword [rbp - 0x20], xmm9
movdqa xmmword [rbp - 0x30], xmm8
movdqa xmmword [rbp - 0x40], xmm7
movdqa xmmword [rbp - 0x50], xmm6
mov r10, rcx
mov rax, qword [0x1403486d0]
xor rax, rbp
mov qword [rbp - 0x58], rax
mov r8, qword [rcx + 8]
lea rax, [r8 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.1400e6f00
sub rsp, rax
mov r9, rsp
mov rcx, qword [rcx]
mov r14, qword [rcx + 0x10]
and r14, 0xfffffffffffffffc
lea rax, [r14 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.1400e6f00
sub rsp, rax
mov rdi, rsp
test r8, r8
je 0x14002375f
cmp r8, 0x20
jae 0x1400235cf
xor eax, eax
xor edx, edx
jmp 0x140023750
lea rdx, [r8 - 1]
xor eax, eax
cmp edx, 0xffffffff
je 0x140023622
shr rdx, 0x20
mov edx, 0
jne 0x140023750
mov rax, r8
and rax, 0xffffffffffffffe0
lea rsi, [rax - 0x20]
mov rdx, rsi
shr rdx, 5
add rdx, 1
mov ebx, edx
and ebx, 3
cmp rsi, 0x60
jae 0x140023629
movdqa xmm0, xmmword [0x1402ede00]
xor esi, esi
test rbx, rbx
jne 0x140023705
jmp 0x14002373e
xor edx, edx
jmp 0x140023750
sub rdx, rbx
movdqa xmm0, xmmword [0x1402ede00]
xor esi, esi
movdqa xmm8, xmmword [0x1402ede10]
movdqa xmm9, xmmword [str.________________0000000000000000________________PPPPPPPPPPPPPPPP________________pppppppppppppppp]
movdqa xmm10, xmmword [0x1402ede30]
movdqa xmm4, xmmword [0x1402ede40]
movdqa xmm5, xmmword [0x1402ede50]
movdqa xmm6, xmmword [0x1402ede60]
movdqa xmm7, xmmword [0x1402ede70]
movdqa xmm1, xmmword [0x1402ede80]
nop dword [rax]
movdqa xmm2, xmm0
paddb xmm2, xmm8
movdqa xmmword [r9 + rsi], xmm0
movdqa xmmword [r9 + rsi + 0x10], xmm2
movdqa xmm2, xmm0
paddb xmm2, xmm9
movdqa xmm3, xmm0
paddb xmm3, xmm10
movdqa xmmword [r9 + rsi + 0x20], xmm2
movdqa xmmword [r9 + rsi + 0x30], xmm3
movdqa xmm2, xmm0
paddb xmm2, xmm4
movdqa xmm3, xmm0
paddb xmm3, xmm5
movdqa xmmword [r9 + rsi + 0x40], xmm2
movdqa xmmword [r9 + rsi + 0x50], xmm3
movdqa xmm2, xmm0
paddb xmm2, xmm6
movdqa xmm3, xmm0
paddb xmm3, xmm7
movdqa xmmword [r9 + rsi + 0x60], xmm2
movdqa xmmword [r9 + rsi + 0x70], xmm3
sub rsi, 0xffffffffffffff80
pxor xmm0, xmm1
add rdx, 0xfffffffffffffffc
jne 0x140023680
test rbx, rbx
je 0x14002373e
lea rdx, [rsi + r9]
add rdx, 0x10
neg rbx
movdqa xmm1, xmmword [0x1402ede10]
movdqa xmm2, xmmword [str.________________0000000000000000________________PPPPPPPPPPPPPPPP________________pppppppppppppppp]
movdqa xmm3, xmm0
paddb xmm3, xmm1
movdqa xmmword [rdx - 0x10], xmm0
movdqa xmmword [rdx], xmm3
paddb xmm0, xmm2
add rdx, 0x20
inc rbx
jne 0x140023720
mov edx, eax
cmp r8, rax
je 0x14002375f
nop word cs:[rax + rax]
nop
mov byte [r9 + rax], dl
add edx, 1
mov rax, rdx
cmp r8, rdx
ja 0x140023750
mov rdx, qword [r10 + 0x28]
sub rsp, 0x30
lea rax, [0x1402ede90]
mov qword [rsp + 0x20], rax
mov qword [rbp - 0x60], r10
call qword [rcx + 0x18]
add rsp, 0x10
mov rcx, r14
mov rdx, rdi
call fcn.140016010
mov rsi, qword [rbp - 0x60]
add rsp, 0x20
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov r15, qword [rax + 0x10]
lea rax, [r15 + r15*2]
add rax, rcx
add rax, 0xffffffffffffffff
cmp r15, rax
ja 0x140023a7e
lea rax, [rdi - 8]
mov qword [rbp - 0x68], rax
xor ebx, ebx
movdqa xmm6, xmmword [0x1402ed530]
jmp 0x140023836
mov rsi, qword [r10]
mov rbx, qword [r10 + 0x28]
sub rsp, 0x20
mov rcx, rsi
mov rdx, rbx
mov r8, r12
call qword [rsi + 0x20]
add rsp, 0x20
mov rdx, qword [rsi + 0x10]
sub rsp, 0x20
mov rcx, rbx
lea r8, [0x1402ede90]
mov r9, r12
call qword [rsi + 0x28]
mov rsi, qword [rbp - 0x60]
add rsp, 0x20
add r13d, 1
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov r15, qword [rax + 0x10]
lea rax, [r15 + r15*2]
add rax, rcx
add rax, 0xffffffffffffffff
xor edx, edx
div r15
mov rbx, r13
cmp rax, r13
jbe 0x140023a7e
mov r13d, ebx
mov eax, ebx
bswap eax
mov dword [rdi], eax
mov r14, qword [rsi + 0x10]
imul rbx, r15
lea r12, [r14 + rbx]
sub rsp, 0x20
mov rcx, r15
mov rdx, r12
call fcn.140016010
mov r10, qword [rbp - 0x60]
add rsp, 0x20
mov rsi, qword [r10]
mov rax, qword [rsi + 0x10]
test rax, rax
je 0x1400237d3
cmp rax, 0x10
jb 0x1400239f0
lea rcx, [rdi + rax]
cmp r12, rcx
jae 0x140023894
add rbx, rax
add rbx, r14
cmp rbx, rdi
ja 0x1400239f0
mov r8, rax
and r8, 0xfffffffffffffff0
lea rcx, [r8 - 0x10]
mov rsi, rcx
shr rsi, 4
add rsi, 1
mov r9d, esi
and r9d, 1
test rcx, rcx
je 0x140023a6e
sub rsi, r9
mov rcx, qword [rbp - 0x68]
add rcx, rax
mov rdx, r15
imul rdx, r13
add rdx, rax
lea rbx, [r14 + rdx]
add rbx, 0xfffffffffffffff8
xor edx, edx
nop dword [rax + rax]
movq xmm0, qword [rbx + rdx]
punpcklbw xmm0, xmm0
movq xmm1, qword [rbx + 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 [rbx + rdx], xmm2
pand xmm0, xmm6
packuswb xmm0, xmm0
movq qword [rbx + rdx - 8], xmm0
movq xmm0, qword [rbx + rdx - 0x10]
punpcklbw xmm0, xmm0
movq xmm1, qword [rbx + 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 [rbx + rdx - 0x10], xmm2
pand xmm0, xmm6
packuswb xmm0, xmm0
movq qword [rbx + rdx - 0x18], xmm0
add rdx, 0xffffffffffffffe0
add rsi, 0xfffffffffffffffe
jne 0x1400238e0
neg rdx
test r9, r9
je 0x1400239e1
not rdx
add rdx, rax
movq xmm0, qword [r12 + rdx - 7]
punpcklbw xmm0, xmm0
movq xmm1, qword [r12 + rdx - 0xf]
punpcklbw xmm1, xmm0
movq xmm2, qword [rdi + rdx - 7]
punpcklbw xmm2, xmm0
pxor xmm2, xmm0
movq xmm0, qword [rdi + rdx - 0xf]
punpcklbw xmm0, xmm0
pxor xmm0, xmm1
pand xmm2, xmm6
packuswb xmm2, xmm2
movq qword [r12 + rdx - 7], xmm2
pand xmm0, xmm6
packuswb xmm0, xmm0
movq qword [r12 + rdx - 0xf], xmm0
cmp rax, r8
je 0x1400237d0
sub rax, r8
nop dword [rax]
lea rsi, [rax - 1]
mov rdx, rax
and rdx, 3
je 0x140023a22
mov rbx, r15
imul rbx, r13
add rbx, r14
add rbx, 0xffffffffffffffff
nop dword [rax + rax]
movzx ecx, byte [rdi + rax - 1]
xor byte [rbx + rax], cl
add rax, 0xffffffffffffffff
add rdx, 0xffffffffffffffff
jne 0x140023a10
cmp rsi, 3
jb 0x1400237d0
imul r15, r13
lea rcx, [r14 + r15]
add rcx, 0xffffffffffffffff
nop dword [rax + rax]
movzx edx, byte [rdi + rax - 1]
xor byte [rcx + rax], dl
movzx edx, byte [rdi + rax - 2]
xor byte [rcx + rax - 1], dl
movzx edx, byte [rdi + rax - 3]
xor byte [rcx + rax - 2], dl
movzx edx, byte [rdi + rax - 4]
xor byte [rcx + rax - 3], dl
add rax, 0xfffffffffffffffc
jne 0x140023a40
jmp 0x1400237d0
xor edx, edx
test r9, r9
jne 0x14002398b
jmp 0x1400239e1
mov rcx, qword [rbp - 0x58]
xor rcx, rbp
sub rsp, 0x20
call fcn.1400e6b50
add rsp, 0x20
movaps xmm6, xmmword [rbp - 0x50]
movaps xmm7, xmmword [rbp - 0x40]
movaps xmm8, xmmword [rbp - 0x30]
movaps xmm9, xmmword [rbp - 0x20]
movaps xmm10, xmmword [rbp - 0x10]
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret