Function at 0x14009d5e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0xf0]
sub rsp, 0x1f0
mov rax, qword [0x14044f8c0]
xor rax, rsp
mov qword [rbp + 0xe0], rax
mov rdi, qword [rcx + 0x1540]
mov rbx, rcx
test rdi, rdi
je 0x14009d914
xor r12d, r12d
lea rcx, [rbp - 0x20]
xor edx, edx
mov dword [rsp + 0x40], r12d
mov r8d, 0x100
call fcn.1402ef020
mov rcx, qword [rdi + 0x4e0]
test rcx, rcx
je 0x14009d914
movups xmm0, xmmword [str._alsC]
lea rax, [rsp + 0x44]
mov dword [rsp + 0x44], r12d
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x50]
lea rax, [rsp + 0x40]
mov dword [rsp + 0x28], 4
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
movaps xmmword [rsp + 0x50], xmm0
call fcn.14003b1f0
test eax, eax
je 0x14009d914
mov eax, dword [rsp + 0x40]
test eax, eax
jne 0x14009d6a0
lea eax, [r12 + 1]
jmp 0x14009d916
lea rdx, [rax + rax*2]
mov r13, 0xffffffffffffffff
mov eax, 4
mul rdx
cmovo rax, r13
mov rcx, rax
call fcn.140153a84
mov r15, rax
test rax, rax
je 0x14009d914
mov ecx, dword [rsp + 0x40]
lea eax, [rcx + rcx*2]
mov rcx, qword [rbx + 0x1540]
shl eax, 2
mov rcx, qword [rcx + 0x4e0]
test rcx, rcx
je 0x14009d90c
movups xmm0, xmmword [str._alsC]
lea rdx, [rsp + 0x44]
mov dword [rsp + 0x44], r12d
mov qword [rsp + 0x30], rdx
lea r8d, [r13 + 2]
mov dword [rsp + 0x28], eax
lea rdx, [rsp + 0x50]
xor r9d, r9d
movaps xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x20], r15
call fcn.14003b1f0
test eax, eax
je 0x14009d90c
mov qword [rsp + 0x228], rsi
lea rcx, [rbp - 0x20]
mov qword [rsp + 0x230], r14
mov rdx, r15
mov r14d, dword [rsp + 0x40]
lea rsi, [r14*8]
mov r8, rsi
call fcn.1402eebc0
shr rsi, 2
lea r8, [r14*4]
lea rcx, [rsp + 0x60]
lea rdx, [r15 + rsi*4]
call fcn.1402eebc0
mov r8d, r12d
test r14d, r14d
je 0x14009d8d5
mov r14d, dword [rbx + 0xc]
mov r9d, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x54]
mov r11d, dword [rsp + 0x50]
mov edi, dword [rsp + 0x48]
mov esi, dword [rsp + 0x44]
nop word [rax + rax]
mov edx, r8d
mov eax, r11d
and r9d, 0xfff00000
mov ecx, dword [rbp + rdx*8 - 0x20]
xor eax, ecx
movzx eax, al
xor r11d, eax
mov eax, ecx
shr eax, 8
xor eax, r10d
shr ecx, 0xc
and eax, 0xf
mov dword [rsp + 0x50], r11d
xor r10d, eax
or r9d, ecx
lea ecx, [r14 + r8]
mov dword [rsp + 0x54], r10d
movsd xmm0, qword [rsp + 0x50]
imul rax, rcx, 0xa8
mov ecx, dword [rbp + rdx*8 - 0x1c]
movsd qword [rax + rbx + 0x38], xmm0
mov dword [rax + rbx + 0x40], r9d
mov eax, esi
xor eax, ecx
shr ecx, 8
movzx eax, al
xor ecx, edi
xor esi, eax
movzx eax, cx
xor edi, eax
mov dword [rsp + 0x44], esi
mov eax, dword [rbx + 0xc]
add eax, r8d
mov dword [rsp + 0x48], edi
imul rcx, rax, 0xa8
mov rax, qword [rsp + 0x44]
mov qword [rcx + rbx + 0xb8], rax
mov eax, dword [rbx + 0xc]
add eax, r8d
imul rcx, rax, 0xa8
mov eax, dword [rsp + rdx*4 + 0x60]
mov dword [rcx + rbx + 0xc0], eax
mov eax, dword [rbx + 0xc]
add eax, r8d
imul rcx, rax, 0xa8
mov dword [rcx + rbx + 0xd8], 1
mov eax, dword [rbx + 0xc]
add eax, r8d
imul rcx, rax, 0xa8
mov dword [rcx + rbx + 0xdc], r12d
mov eax, dword [rbx + 0xc]
add eax, r8d
imul rcx, rax, 0xa8
mov dword [rcx + rbx + 0xd0], r13d
mov eax, dword [rbx + 0xc]
add eax, r8d
imul rcx, rax, 0xa8
xor eax, eax
mov qword [rcx + rbx + 0xc4], rax
mov dword [rcx + rbx + 0xcc], eax
mov r14d, dword [rbx + 0xc]
lea ecx, [r14 + r8]
imul rax, rcx, 0xa8
mov ecx, r12d
cmp byte [rax + rbx + 0xbd], 4
sete cl
inc r8d
and dword [rbx + 0x153c], ecx
cmp r8d, dword [rsp + 0x40]
jb 0x14009d7a0
mov rcx, r15
call fcn.140153a7c
mov eax, dword [rbx + 0xc]
mov ecx, dword [rsp + 0x40]
mov r14, qword [rsp + 0x230]
mov rsi, qword [rsp + 0x228]
mov dword [rbx + 0x1538], eax
add eax, ecx
mov dword [rbx + 0xc], eax
mov eax, 1
mov dword [rbx + 0x14], ecx
mov dword [rbx + 0x10], ecx
jmp 0x14009d916
mov rcx, r15
call fcn.140153a7c
xor eax, eax
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.1402ecc20
mov rbx, qword [rsp + 0x238]
add rsp, 0x1f0
pop r15
pop r13
pop r12
pop rdi
pop rbp
ret