Function at 0x1800960d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x20], r9d
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x30
call fcn.18017e6d0
sub rsp, rax
mov eax, dword [rcx + 0x18]
mov r9d, dword [rcx + 0x14]
mov rbp, rcx
mov ecx, dword [rcx + 0x1c]
mov ebx, dword [rbp + 0xc]
mov r11d, dword [rbp]
mov edi, dword [rbp + 4]
mov esi, dword [rbp + 8]
mov r15, r8
mov r8d, dword [rbp + 0x20]
mov r12d, eax
mov r13d, ecx
shr r12d, 2
shr r13d, 2
mov r14d, r8d
shr r14d, 2
add r12d, eax
add r13d, ecx
add r14d, r8d
mov r10, rdx
mov edx, dword [rbp + 0x10]
mov dword [rsp], ebx
cmp r15, 0x10
jb 0x1800963d1
add r10, 6
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x10], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x20], r9
shr r15, 4
mov qword [rsp + 0x18], r10
mov ebp, edx
nop dword [rax]
movzx eax, byte [r10 - 4]
movzx ebx, byte [r10 - 3]
movzx r9d, byte [r10 + 1]
movzx r8d, byte [r10 + 5]
movzx edx, byte [r10 + 9]
shl r9d, 8
shl r8d, 8
shl ebx, 8
shl edx, 8
or ebx, eax
movzx eax, byte [r10 - 5]
shl ebx, 8
or ebx, eax
movzx eax, byte [r10 - 6]
shl ebx, 8
or rbx, rax
mov eax, r11d
add rbx, rax
movzx eax, byte [r10]
or r9d, eax
movzx eax, byte [r10 - 1]
mov ecx, ebx
shl r9d, 8
or r9d, eax
movzx eax, byte [r10 - 2]
shl r9d, 8
or r9, rax
mov rax, rbx
shr rax, 0x20
add r9, rax
mov eax, edi
add r9, rax
movzx eax, byte [r10 + 4]
or r8d, eax
movzx eax, byte [r10 + 3]
shl r8d, 8
or r8d, eax
movzx eax, byte [r10 + 2]
shl r8d, 8
or r8, rax
mov rax, r9
shr rax, 0x20
add r8, rax
mov eax, esi
mov esi, ebx
add r8, rax
movzx eax, byte [r10 + 8]
mov ebx, r13d
or edx, eax
movzx eax, byte [r10 + 7]
shl edx, 8
or edx, eax
movzx eax, byte [r10 + 6]
mov r10d, r9d
shl edx, 8
mov r9d, r8d
or rdx, rax
mov rax, r8
mov r8d, r12d
shr rax, 0x20
add rdx, rax
mov eax, dword [rsp]
add rdx, rax
mov rax, rdx
mov r11d, edx
mov rdx, qword [rsp + 0x20]
shr rax, 0x20
add eax, dword [rsp + 0x88]
imul rsi, rdx
add ebp, eax
mov eax, r11d
mov edi, ebp
imul rax, r8
mov r8d, r14d
add rsi, rax
mov eax, r9d
imul rax, rbx
add rsi, rax
mov eax, r10d
imul rax, r8
add rsi, rax
mov rax, qword [rsp + 8]
imul edi, r12d
imul rax, rcx
add rdi, rax
mov eax, r10d
imul rax, rdx
add rdi, rax
mov eax, r11d
imul rax, rbx
mov ebx, ebp
imul ebx, r13d
add rdi, rax
mov eax, r9d
imul rax, r8
add rdi, rax
mov rax, rsi
shr rax, 0x20
add rdi, rax
mov rax, qword [rsp + 8]
imul rax, r10
add rbx, rax
mov rax, qword [rsp + 0x10]
imul rax, rcx
add rbx, rax
mov eax, r9d
imul r9, qword [rsp + 8]
imul rax, rdx
add rbx, rax
mov eax, r11d
imul r11, rdx
imul rax, r8
mov r8d, ebp
imul r8d, r14d
imul ebp, edx
add rbx, rax
mov rax, rdi
shr rax, 0x20
add rbx, rax
mov rax, qword [rsp + 0x10]
imul rax, r10
add r8, rax
mov rax, qword [rsp + 0x28]
imul rax, rcx
add r8, rax
mov rax, rbx
shr rax, 0x20
add r8, r9
add r8, r11
add r8, rax
mov rax, r8
shr rax, 0x20
add ebp, eax
mov ecx, ebp
mov eax, ebp
mov edx, ebp
and eax, 0xfffffffc
shr ecx, 2
add ecx, eax
lea r11d, [rcx + rsi]
mov eax, r11d
sub eax, ecx
xor eax, ecx
xor ecx, r11d
or eax, ecx
xor eax, r11d
shr eax, 0x1f
add edi, eax
mov ecx, edi
sub ecx, eax
xor ecx, eax
xor eax, edi
or ecx, eax
xor ecx, edi
shr ecx, 0x1f
lea esi, [rcx + rbx]
mov eax, esi
sub eax, ecx
xor eax, ecx
xor ecx, esi
or eax, ecx
xor eax, esi
mov r10, qword [rsp + 0x18]
shr eax, 0x1f
and edx, 3
lea ebx, [rax + r8]
add r10, 0x10
mov ebp, ebx
mov dword [rsp], ebx
mov qword [rsp + 0x18], r10
sub ebp, eax
xor ebp, eax
xor eax, ebx
or ebp, eax
xor ebp, ebx
shr ebp, 0x1f
add ebp, edx
dec r15
jne 0x180096170
mov dword [rsp + 0x80], ebp
mov rbp, qword [rsp + 0x70]
mov edx, dword [rsp + 0x80]
mov dword [rbp + 0xc], ebx
mov rbx, qword [rsp + 0x78]
mov dword [rbp], r11d
mov dword [rbp + 4], edi
mov dword [rbp + 8], esi
mov dword [rbp + 0x10], edx
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret