Function at 0x529090
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2a8
lea rax, [rsp + 0x8f]
mov rbx, r8
mov qword [rsp + 0x2f0], rcx
and rax, 0xffffffffffffffc0
mov qword [rsp + 0x308], r9
mov rcx, rbx
mov r9d, 0x20
mov r14, rax
mov qword [rsp + 0x48], rax
lea rax, [rdx - 0x20]
mov edx, 0x50
shr rax, 4
add eax, 1
mov dword [rsp + 0x38], eax
lea rax, [r14 + 0x200]
mov r8, rax
mov qword [rsp + 0x30], rax
call fcn.0052be70
mov rdx, qword [rbx + 0x48]
mov rcx, r14
call fcn.00528d90
mov eax, dword [r14 + 0x210]
mov r9d, dword [r14 + 0x200]
mov r8d, 0x811c9dc5
mov r10d, dword [r14 + 0x204]
mov r13d, dword [r14 + 0x208]
mov dword [rsp + 0x2c], eax
mov eax, dword [r14 + 0x214]
mov ebp, dword [r14 + 0x20c]
mov edi, dword [r14 + 0x21c]
mov dword [rsp + 0x24], eax
mov eax, dword [r14 + 0x218]
mov dword [rsp + 0x28], eax
mov eax, dword [r14]
xor edx, edx
xor eax, r8d
imul eax, eax, 0x1000193
div dword [rsp + 0x38]
mov rax, rdx
shl rax, 4
add rax, qword [rsp + 0x2f0]
mov r15d, dword [rax]
mov r12d, dword [rax + 4]
mov esi, dword [rax + 8]
mov ebx, dword [rax + 0xc]
xor r8d, r15d
mov r11d, dword [rax + 0x10]
mov ecx, dword [rax + 0x14]
xor r9d, r15d
imul r8d, r8d, 0x1000193
mov edx, dword [rax + 0x18]
mov eax, dword [rax + 0x1c]
xor r10d, r12d
imul r9d, r9d, 0x1000193
imul r10d, r10d, 0x1000193
xor r8d, r12d
imul r8d, r8d, 0x1000193
xor r8d, esi
xor esi, r13d
imul r8d, r8d, 0x1000193
imul r13d, esi, 0x1000193
xor r8d, ebx
xor ebx, ebp
imul r8d, r8d, 0x1000193
imul ebp, ebx, 0x1000193
xor r8d, r11d
xor r11d, dword [rsp + 0x2c]
imul r8d, r8d, 0x1000193
imul esi, r11d, 0x1000193
xor r8d, ecx
imul r8d, r8d, 0x1000193
mov dword [rsp + 0x2c], esi
xor r8d, edx
imul r8d, r8d, 0x1000193
xor r8d, eax
imul r8d, r8d, 0x1000193
xor ecx, dword [rsp + 0x24]
xor edx, dword [rsp + 0x28]
xor eax, edi
imul ecx, ecx, 0x1000193
add r14, 4
imul esi, edx, 0x1000193
imul edi, eax, 0x1000193
mov dword [rsp + 0x24], ecx
mov dword [rsp + 0x28], esi
cmp qword [rsp + 0x30], r14
jne 0x529151
mov qword [rsp + 0x40], 1
mov eax, dword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
mov dword [rsp + 0x3c], eax
nop dword [rax + rax]
mov eax, dword [r12]
movzx ecx, byte [rsp + 0x3c]
xor edx, edx
rol eax, cl
xor eax, r8d
imul eax, eax, 0x1000193
div dword [rsp + 0x38]
mov rax, rdx
shl rax, 4
add rax, qword [rsp + 0x2f0]
mov r15d, dword [rax]
mov r14d, dword [rax + 4]
mov esi, dword [rax + 8]
mov ebx, dword [rax + 0xc]
xor r8d, r15d
mov r11d, dword [rax + 0x10]
mov ecx, dword [rax + 0x14]
xor r9d, r15d
imul r8d, r8d, 0x1000193
mov edx, dword [rax + 0x18]
mov eax, dword [rax + 0x1c]
xor r10d, r14d
xor r13d, esi
imul r9d, r9d, 0x1000193
imul r10d, r10d, 0x1000193
xor r8d, r14d
imul r13d, r13d, 0x1000193
imul r8d, r8d, 0x1000193
xor r8d, esi
imul r8d, r8d, 0x1000193
xor r8d, ebx
xor ebx, ebp
imul r8d, r8d, 0x1000193
imul ebp, ebx, 0x1000193
xor r8d, r11d
xor r11d, dword [rsp + 0x2c]
imul r8d, r8d, 0x1000193
xor r8d, ecx
imul r8d, r8d, 0x1000193
xor r8d, edx
imul r8d, r8d, 0x1000193
xor r8d, eax
imul r8d, r8d, 0x1000193
imul ebx, r11d, 0x1000193
xor ecx, dword [rsp + 0x24]
xor edx, dword [rsp + 0x28]
xor eax, edi
imul edx, edx, 0x1000193
add r12, 4
imul edi, eax, 0x1000193
mov dword [rsp + 0x2c], ebx
imul ebx, ecx, 0x1000193
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x24], ebx
cmp qword [rsp + 0x30], r12
jne 0x529260
add qword [rsp + 0x40], 1
mov rax, qword [rsp + 0x40]
cmp rax, 0x20
jne 0x52924e
movd xmm3, ebp
movd xmm0, r13d
movd xmm1, r9d
mov rax, qword [rsp + 0x48]
movd xmm4, r10d
punpckldq xmm0, xmm3
movd xmm3, dword [rsp + 0x24]
movd xmm2, edx
punpckldq xmm1, xmm4
movd xmm5, edi
punpcklqdq xmm1, xmm0
movd xmm0, dword [rsp + 0x2c]
punpckldq xmm2, xmm5
movups xmmword [rax + 0x200], xmm1
punpckldq xmm0, xmm3
punpcklqdq xmm0, xmm2
movups xmmword [rax + 0x210], xmm0
mov rax, qword [rsp + 0x308]
movups xmmword [rax], xmm1
movups xmmword [rax + 0x10], xmm0
add rsp, 0x2a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret