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

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x38]
sub rsp, 0x110
cmp byte [0x18005bc28], 0
movaps xmmword [rax - 0x38], xmm6
je 0x1800108a2
mov rcx, qword [0x18005bc20]
call fcn.18000c4b8
test al, al
je 0x1800108a2
mov rcx, qword [0x18005bc20]
call fcn.18000ca44
mov rcx, qword [rax]
call fcn.18000c4b8
test al, al
je 0x1800108a2
mov rcx, qword [0x18005bc20]
call fcn.18000f7cc
test al, al
je 0x1800108a2
mov rcx, qword [0x18005c2d8]
call fcn.18000c4b8
test al, al
je 0x1800108a2
mov rcx, qword [0x18005c2d8]
call fcn.18000c4b8
test al, al
je 0x1800108a2
mov rax, qword [0x18005c2d8]
mov r13, qword [rax + 0x28]
mov rcx, r13
call fcn.18000c4b8
test al, al
je 0x1800108a2
mov rax, qword [0x18005b0f0]
cmp rax, qword [0x18005b0f8]
movsxd rcx, dword [r13 + 0x10]
je 0x18001042e
mov qword [0x18005b0f8], rax
lea rax, [0x18005b0f0]
mov r12, rcx
test ecx, ecx
jle 0x18001086e
xor r14d, r14d
lea rsi, [0x18005b0d8]
movabs rbx, 0xcbf29ce484222325
lea ecx, [r14 + 0x20]
mov qword [rbp + 0x40], rcx
test r14, r14
js 0x180010867
cmp r14, r12
jge 0x180010867
mov rax, qword [r13 + 0x18]
mov rdi, qword [rcx + rax]
mov rcx, rdi
call fcn.18000c4b8
test al, al
je 0x180010841
mov rcx, rdi
call fcn.18000c4b8
test al, al
je 0x180010841
mov rcx, rdi
call fcn.18000ca44
mov rcx, qword [rax]
call fcn.18000c4b8
test al, al
je 0x180010841
mov rcx, rdi
call fcn.18000ccbc
mov rcx, qword [rax]
call fcn.18000c4b8
test al, al
je 0x180010841
mov rcx, rdi
call fcn.18000c530
test al, al
je 0x1800104df
cmp byte [0x18005be90], 0
je 0x180010841
mov rcx, rdi
call fcn.18000f7cc
test al, al
je 0x180010841
cmp rdi, qword [0x18005bc20]
je 0x180010841
mov rcx, rdi
call fcn.18000ccbc
mov rcx, qword [rax]
call fcn.1800098f0
test al, al
je 0x18001051d
cmp byte [0x18005badc], 0
je 0x180010841
mov rcx, rdi
mov qword [rbp - 0x60], rdi
call fcn.18001506c
mov rdx, qword [0x18005b0e0]
cmp rdx, qword [0x18005b0e8]
mov rcx, qword [rax]
mov qword [rbp - 0x58], rcx
je 0x180010552
movups xmm0, xmmword [rbp - 0x60]
movdqu xmmword [rdx], xmm0
add qword [0x18005b0e0], 0x10
jmp 0x18001055e
lea r8, [rbp - 0x60]
mov rcx, rsi
call fcn.18000ffbc
cmp byte [0x18005beb1], 0
je 0x180010841
mov rcx, qword [0x18005bc20]
call fcn.18000f450
mov rcx, rax
mov r15, rax
call fcn.18000c4b8
test al, al
je 0x180010841
movabs rax, 0xfdb8369afff4f40f
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x50], rax
movabs r8, 0x98d453d79a87954d
movabs rax, 0xf15af4228011b51b
mov qword [rbp - 0x50], r8
mov qword [rsp + 0x58], rax
movabs r9, 0xf15af4228011b57e
mov qword [rbp - 0x48], r9
mov rsi, rbx
movdqa xmm0, xmmword [rbp - 0x50]
movabs rdx, 0x100000001b3
xorps xmm0, xmmword [rsp + 0x50]
movq rax, xmm0
movdqa xmmword [rsp + 0x50], xmm0
test al, al
je 0x180010603
inc rcx
movsx rax, al
xor rsi, rax
imul rsi, rdx
mov al, byte [rcx]
cmp al, 0
jne 0x1800105ef
movabs rax, 0xf5b932bff1e4f407
mov qword [rbp - 0x40], r8
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x60]
movabs rax, 0xf15af4228011c71b
mov qword [rbp - 0x38], r9
mov qword [rsp + 0x68], rax
movdqa xmm0, xmmword [rsp + 0x60]
xorps xmm0, xmmword [rbp - 0x40]
movq rax, xmm0
movdqa xmmword [rsp + 0x60], xmm0
test al, al
je 0x18001065b
inc rcx
movsx rax, al
xor rbx, rax
imul rbx, rdx
mov al, byte [rcx]
cmp al, 0
jne 0x180010647
mov rcx, r15
call fcn.18000c4b8
test al, al
jne 0x18001066b
xor ecx, ecx
jmp 0x1800106a5
mov rdx, qword [r15]
test rdx, rdx
je 0x180010667
mov rdx, qword [rdx + 0x10]
movabs rcx, 0xcbf29ce484222325
mov al, byte [rdx]
test al, al
je 0x1800106a5
movabs r8, 0x100000001b3
inc rdx
movsx rax, al
xor rcx, rax
imul rcx, r8
mov al, byte [rdx]
test al, al
jne 0x180010691
cmp rcx, rsi
je 0x1800106b3
cmp rcx, rbx
jne 0x180010830
mov esi, 0x30
mov rcx, rdi
mov edx, esi
call fcn.18000bc1c
lea rdx, [rbp - 0x30]
mov rcx, rax
call fcn.18000a2b4
mov rcx, qword [0x18005bc20]
movsd xmm6, qword [rax]
mov ebx, dword [rax + 8]
call fcn.18001510c
lea rdx, [rbp - 0x24]
movsd qword [rsp + 0x70], xmm6
mov dword [rsp + 0x78], ebx
mov rcx, qword [rax]
call fcn.1800100f0
and qword [rsp + 0x20], 0
lea rdx, [rsp + 0x70]
xorps xmm3, xmm3
lea rcx, [rbp - 0x80]
mov r8d, 0x48a12001
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [rbp - 0x80], xmm0
mov dword [rbp - 0x78], eax
call fcn.18000be10
test al, al
je 0x180010830
mov edx, esi
mov rcx, rdi
call fcn.18000bc1c
lea rdx, [rsp + 0x30]
mov rcx, rax
call fcn.18000a2b4
movsd xmm0, qword [rsp + 0x30]
lea r8, [rbp - 0x70]
mov eax, dword [rsp + 0x38]
lea rdx, [rbp - 0x18]
mov rcx, qword [0x18005bc20]
movsd qword [rbp - 0x70], xmm0
mov dword [rbp - 0x68], eax
call fcn.18000f27c
mov rcx, qword [0x18005bc20]
mov edx, esi
call fcn.18000bc1c
lea rdx, [rsp + 0x40]
mov rcx, rax
call fcn.18000a2b4
movss xmm2, dword [rsp + 0x44]
mov eax, 0x5f3759df
subss xmm2, dword [rsp + 0x34]
movss xmm1, dword [rsp + 0x40]
subss xmm1, dword [rsp + 0x30]
movss xmm0, dword [rsp + 0x48]
subss xmm0, dword [rsp + 0x38]
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
movd ecx, xmm2
movaps xmm3, xmm2
mulss xmm3, dword [0x180051340]
movss xmm2, dword [0x180051344]
sar ecx, 1
sub eax, ecx
movd xmm1, eax
movaps xmm0, xmm1
mulss xmm0, xmm3
mulss xmm0, xmm1
subss xmm2, xmm0
mulss xmm2, xmm1
movss xmm1, dword [0x180051344]
movaps xmm0, xmm2
mulss xmm0, xmm3
mulss xmm0, xmm2
subss xmm1, xmm0
movss xmm0, dword [0x18004f5e8]
mulss xmm1, xmm2
divss xmm0, xmm1
comiss xmm0, dword [0x180053790]
ja 0x180010830
mov r8b, 1
mov rdx, r15
mov rcx, rdi
call fcn.180011298
lea rsi, [0x18005b0d8]
movabs rbx, 0xcbf29ce484222325
mov rcx, qword [rbp + 0x40]
inc r14
add rcx, 8
mov qword [rbp + 0x40], rcx
cmp r14, r12
jl 0x18001045c
lea rax, [0x18005b0f0]
cmp rax, rsi
je 0x18001088b
jmp 0x18001086e
lea rax, [0x18005b0f0]
mov rdx, qword [0x18005b0d8]
mov rcx, rax
mov r8, qword [0x18005b0e0]
sub r8, rdx
sar r8, 4
call fcn.18000fd20
mov rax, qword [0x18005b0d8]
cmp rax, qword [0x18005b0e0]
je 0x1800108a2
mov qword [0x18005b0e0], rax
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret