Function at 0x1400023c0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rdi
push r13
push r15
sub rsp, 0xc8
mov rax, qword [0x140036040]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov rax, qword [rcx + 0x18]
mov rdi, rcx
cmp rax, qword [rcx + 0x20]
je 0x1400023ee
mov qword [rcx + 0x20], rax
mov rax, qword [rcx + 0x38]
add rcx, 0x18
mov edx, dword [rax + 0x50]
call fcn.140002880
mov rax, qword [rdi + 0x38]
mov r8d, dword [rax + 0x54]
test r8d, r8d
je 0x140002417
mov rdx, qword [rdi]
mov rcx, qword [rdi + 0x18]
call sub.VCRUNTIME140.dll_memmove
mov rax, qword [rdi + 0x38]
xor r13d, r13d
mov ebp, r13d
cmp r13w, word [rax + 6]
jae 0x1400026cf
mov qword [rsp + 0xf8], rbx
mov qword [rsp + 0x100], rsi
mov qword [rsp + 0x108], r12
mov r12d, dword [0x140036010]
mov qword [rsp + 0xc0], r14
mov r14d, r13d
movaps xmmword [rsp + 0xb0], xmm6
movdqa xmm6, xmmword [0x140030db0]
movaps xmmword [rsp + 0xa0], xmm7
movdqa xmm7, xmmword [0x140030d90]
movaps xmmword [rsp + 0x90], xmm8
movdqa xmm8, xmmword [0x140030d70]
movaps xmmword [rsp + 0x80], xmm9
movdqa xmm9, xmmword [0x140030d50]
movaps xmmword [rsp + 0x70], xmm10
movdqa xmm10, xmmword [0x140030cd0]
nop dword [rax]
mov rsi, qword [rdi + 0x40]
add rsi, r14
mov eax, dword [rsi + 0x10]
test eax, eax
je 0x1400024d3
mov edx, dword [rsi + 0x14]
mov r8d, eax
mov ecx, dword [rsi + 0xc]
add rdx, qword [rdi]
add rcx, qword [rdi + 0x18]
call sub.VCRUNTIME140.dll_memmove
mov eax, dword [0x140028a18]
mov ecx, r13d
mov r11d, dword [rsi + 0xc]
movups xmm0, xmmword [0x1400289f8]
add r11, qword [rdi]
mov dword [rsp + 0x40], eax
movzx eax, byte [0x140028a1c]
mov byte [rsp + 0x44], al
movups xmm1, xmmword [0x140028a08]
movups xmmword [rsp + 0x20], xmm0
movups xmmword [rsp + 0x30], xmm1
cmp r12d, 2
jl 0x14000261c
movdqa xmmword [rsp + 0x50], xmm7
lea rdx, [rsp + 0x24]
mov r8d, dword [rsp + 0x50]
nop dword [rax]
nop dword [rax + rax]
movd xmm2, ecx
lea eax, [rcx + 4]
pshufd xmm2, xmm2, 0
lea rdx, [rdx + 8]
paddd xmm2, xmm10
add ecx, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm6
pmuldq xmm1, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
movd xmm0, r8d
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rdx - 0xc]
xorps xmm2, xmm0
movd dword [rdx - 0xc], xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm10
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm6
pmuldq xmm1, xmm6
shufps xmm1, xmm0, 0xdd
psrad xmm1, 4
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm9
psubd xmm2, xmm0
movd xmm0, r8d
andps xmm2, xmm8
packuswb xmm2, xmm2
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rdx - 8]
xorps xmm2, xmm0
movd dword [rdx - 8], xmm2
cmp ecx, 0x20
jl 0x140002530
cmp ecx, 0x25
jge 0x14000265f
movsxd rax, ecx
lea r10, [rsp + 0x20]
add r10, rax
nop word [rax + rax]
mov eax, 0x4d4873ed
lea r10, [r10 + 1]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul r9d, eax, 0x35
movzx eax, cl
inc ecx
sub al, r9b
add al, 0x39
xor byte [r10 - 1], al
cmp ecx, 0x25
jl 0x140002630
mov r8, r11
lea rcx, [rsp + 0x20]
mov rdx, rsi
call fcn.1400021c0
mov rax, qword [rdi + 0x38]
inc rbp
add r14, 0x28
movzx ecx, word [rax + 6]
cmp rbp, rcx
jb 0x1400024b0
movaps xmm10, xmmword [rsp + 0x70]
movaps xmm9, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0xb0]
mov r14, qword [rsp + 0xc0]
mov r12, qword [rsp + 0x108]
mov rsi, qword [rsp + 0x100]
mov rbx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140025c30
add rsp, 0xc8
pop r15
pop r13
pop rdi
pop rbp
ret