Function at 0x14009d940
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
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 0x14009dc6b
xor edx, edx
mov dword [rsp + 0x40], 0
mov r8d, 0x100
lea rcx, [rbp - 0x20]
call fcn.1402ef020
mov rcx, qword [rdi + 0x4f8]
test rcx, rcx
je 0x14009dc6b
movups xmm0, xmmword [str._alsC]
lea rax, [rsp + 0x44]
mov dword [rsp + 0x44], 0
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 0x14009dc6b
mov eax, dword [rsp + 0x40]
test eax, eax
jne 0x14009d9fe
mov eax, 1
jmp 0x14009dc6d
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 0x14009dc6b
mov ecx, dword [rsp + 0x40]
lea eax, [rcx + rcx*2]
mov rcx, qword [rbx + 0x1540]
shl eax, 2
mov rcx, qword [rcx + 0x4f8]
test rcx, rcx
je 0x14009dc63
movups xmm0, xmmword [str._alsC]
lea rdx, [rsp + 0x44]
mov dword [rsp + 0x44], 0
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 0x14009dc63
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
xor r8d, r8d
test r14d, r14d
je 0x14009dc37
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 ecx, dword [rbp + r8*8 - 0x20]
mov eax, r11d
xor eax, ecx
and r9d, 0xfff00000
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 + r8*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 + r8*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], 1
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
xor ecx, ecx
cmp byte [rax + rbx + 0xbd], 4
sete cl
inc r8d
and dword [rbx + 0x153c], ecx
cmp r8d, dword [rsp + 0x40]
jb 0x14009db00
mov rcx, r15
call fcn.140153a7c
mov eax, dword [rsp + 0x40]
add dword [rbx + 0x10], eax
add dword [rbx + 0xc], eax
mov r14, qword [rsp + 0x230]
mov rsi, qword [rsp + 0x228]
mov dword [rbx + 0x18], eax
mov eax, 1
jmp 0x14009dc6d
mov rcx, r15
call fcn.140153a7c
xor eax, eax
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.1402ecc20
add rsp, 0x1f0
pop r15
pop r13
pop rdi
pop rbx
pop rbp
ret