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

Disassembly:
mov qword [rsp + 8], rcx
push r12
sub rsp, 0xb0
mov r12, rcx
mov rcx, qword [0x18017d810]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x120]
call rdx
test al, al
je 0x180070f6f
mov rcx, qword [0x18017d810]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x118]
call rdx
test al, al
je 0x180070f6f
mov rax, qword [0x18017dd10]
shl rax, 5
add rax, qword [0x18017c078]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x1800708d7
mov rcx, qword [rcx]
cmp byte [rcx], 0
je 0x180070f6f
mov rax, qword [0x18017d6c0]
mov qword [rsp + 0x98], rsi
xor esi, esi
mov qword [rsp + 0x88], r13
xor r13d, r13d
mov qword [rsp + 0x80], r14
mov rcx, qword [rax + 0x58]
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0x40], r13
movsxd r14, dword [rcx + 0x1510]
movabs rcx, 0xaaaaaaaaaaaaaaa
mov dword [rsp + 0xd0], r14d
test r14d, r14d
je 0x18007095c
cmp r14, rcx
ja 0x180070f85
lea rax, [r14 + r14*2]
lea rbx, [rax*8]
mov rcx, rbx
call fcn.180052d10
mov rsi, rax
lea r13, [rbx + rax]
mov qword [rsp + 0x40], r13
mov ebx, dword [0x18017c784]
mov ecx, 1
mov qword [rsp + 0xa0], rbp
mov rbp, rsi
mov qword [rsp + 0x90], rdi
movabs rdi, 0x2aaaaaaaaaaaaaab
mov qword [rsp + 0x78], r15
movaps xmmword [rsp + 0x60], xmm6
mov dword [rsp + 0xc8], ecx
mov qword [rsp + 0x38], rsi
cmp r14d, ecx
jl 0x180070dea
mov r15, qword gs:[0x58]
lea r12, [0x18017d670]
mov edi, ebx
mov qword [rsp + 0x50], rbx
movabs rbx, 0x100000001b3
mov qword [rsp + 0x38], rsi
nop dword [rax]
mov rax, qword [0x18017d6c0]
mov edx, ecx
mov rcx, qword [rax + 0x58]
call fcn.180050bc0
mov qword [rsp + 0x30], rax
mov r14, rax
test rax, rax
je 0x180070db5
mov qword [rsp + 0x48], 0
lea rdx, [rsp + 0x48]
mov r8, qword [rax]
mov rcx, rax
call qword [r8 + 0x130]
mov r9, qword [rsp + 0x48]
test r9, r9
je 0x180070db5
mov r9, qword [r9 + 8]
movabs r8, 0xcbf29ce484222325
mov rcx, r9
cmp byte [r9], 0
je 0x180070a3b
inc rcx
cmp byte [rcx], 0
jne 0x180070a33
mov edx, 0
sub rcx, r9
je 0x180070db5
nop dword [rax]
movsx rax, byte [rdx + r9]
inc rdx
xor r8, rax
imul r8, rbx
cmp rdx, rcx
jb 0x180070a50
movabs rax, 0xc106a596b87eca81
cmp r8, rax
jne 0x180070db5
mov rdi, qword [r15 + rdi*8]
mov eax, 4
mov ebx, eax
mov eax, dword [rax + rdi]
cmp dword [0x18017d698], eax
jle 0x180070ac3
lea rcx, [0x18017d698]
call fcn.1800db7d0
cmp dword [0x18017d698], 0xffffffff
jne 0x180070ac3
movabs rcx, 0x9241b8778dd136bd
call fcn.18006c2a0
lea rcx, [0x18017d698]
mov dword [0x18017d7f4], eax
call fcn.1800db764
mov edx, dword [0x18017d7f4]
mov edx, dword [rdx + r14]
cmp edx, 0xffffffff
jne 0x180070ada
mov rax, r12
jmp 0x180070bef
mov rax, qword [0x18017d6c0]
and edx, 0x7fff
mov rcx, qword [rax + 0x58]
call fcn.180050bc0
mov r14, rax
test rax, rax
je 0x180070be7
mov ecx, dword [0x18017d7f0]
cmp ecx, dword [rbx + rdi]
jle 0x180070b45
lea rcx, [0x18017d7f0]
call fcn.1800db7d0
mov ecx, dword [0x18017d7f0]
cmp ecx, 0xffffffff
jne 0x180070b45
movabs rcx, 0x9f4c773fb92eaba8
call fcn.18006c2a0
lea rcx, [0x18017d7f0]
mov dword [0x18017d69c], eax
call fcn.1800db764
mov ecx, dword [0x18017d7f0]
mov eax, dword [0x18017d69c]
cmp qword [rax + r14], 0
je 0x180070be7
cmp ecx, dword [rbx + rdi]
jle 0x180070b91
lea rcx, [0x18017d7f0]
call fcn.1800db7d0
cmp dword [0x18017d7f0], 0xffffffff
jne 0x180070b91
movabs rcx, 0x9f4c773fb92eaba8
call fcn.18006c2a0
lea rcx, [0x18017d7f0]
mov dword [0x18017d69c], eax
call fcn.1800db764
mov eax, dword [0x18017d69c]
mov r14, qword [rax + r14]
mov eax, dword [rbx + rdi]
cmp dword [0x18017de90], eax
jle 0x180070bdc
lea rcx, [0x18017de90]
call fcn.1800db7d0
cmp dword [0x18017de90], 0xffffffff
jne 0x180070bdc
movabs rcx, 0x89b727c10692e033
call fcn.18006c2a0
lea rcx, [0x18017de90]
mov dword [0x18017de7c], eax
call fcn.1800db764
mov eax, dword [0x18017de7c]
add rax, r14
jmp 0x180070bea
mov rax, r12
mov r14, qword [rsp + 0x30]
movss xmm0, dword [0x18017d920]
subss xmm0, dword [rax + 8]
movss xmm1, dword [0x18017d918]
movss xmm2, dword [0x18017d91c]
subss xmm2, dword [rax + 4]
subss xmm1, dword [rax]
mulss xmm0, xmm0
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
addss xmm2, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x180070c3a
xorps xmm6, xmm6
sqrtss xmm6, xmm2
jmp 0x180070c45
movaps xmm0, xmm2
call fcn.1800fea40
movaps xmm6, xmm0
lea rdx, [rsp + 0xd8]
mov rcx, r14
call fcn.1800531a0
mov r12, rax
cmp rsi, r13
je 0x180070c7a
mov eax, dword [rax]
movss dword [rsi + 0xc], xmm6
mov qword [rsi], r14
mov dword [rsi + 8], eax
mov dword [rsi + 0x10], 0
add rsi, 0x18
jmp 0x180070d9f
sub rsi, rbp
movabs rcx, 0x2aaaaaaaaaaaaaab
mov rax, rcx
movabs r8, 0xaaaaaaaaaaaaaaa
imul rsi
mov rdi, rdx
sar rdi, 2
mov rax, rdi
shr rax, 0x3f
add rdi, rax
cmp rdi, r8
je 0x180070f79
mov rax, rcx
lea r15, [rdi + 1]
sub r13, rbp
imul r13
mov r14, rdx
sar r14, 2
mov rax, r14
shr rax, 0x3f
add r14, rax
mov rax, r8
mov rcx, r14
shr rcx, 1
sub rax, rcx
cmp r14, rax
jbe 0x180070ce5
mov rcx, r8
jmp 0x180070cfc
lea rax, [rcx + r14]
mov rcx, r15
cmp rax, r15
cmovae rcx, rax
cmp rcx, r8
ja 0x180070f91
lea rax, [rcx + rcx*2]
lea r13, [rax*8]
mov rcx, r13
call fcn.180052d10
mov ecx, dword [r12]
lea rdx, [rdi + rdi*2]
mov rbx, rax
mov r8, rsi
mov rax, qword [rsp + 0x30]
mov dword [rbx + rdx*8 + 8], ecx
mov rcx, rbx
movss dword [rbx + rdx*8 + 0xc], xmm6
mov qword [rbx + rdx*8], rax
mov dword [rbx + rdx*8 + 0x10], 0
mov rdx, rbp
call fcn.180100590
test rbp, rbp
je 0x180070d7e
lea rdx, [r14 + r14*2]
shl rdx, 3
cmp rdx, 0x1000
jb 0x180070d76
mov rcx, qword [rbp - 8]
add rdx, 0x27
sub rbp, rcx
lea rax, [rbp - 8]
cmp rax, 0x1f
ja 0x180070f8b
mov rbp, rcx
mov rcx, rbp
call fcn.1800db75c
lea rax, [r15 + r15*2]
mov qword [rsp + 0x38], rbx
mov r15, qword gs:[0x58]
lea rsi, [rbx + rax*8]
add r13, rbx
mov rbp, rbx
mov qword [rsp + 0x40], r13
mov rdi, qword [rsp + 0x50]
lea r12, [0x18017d670]
movabs rbx, 0x100000001b3
mov ecx, dword [rsp + 0xc8]
inc ecx
mov dword [rsp + 0xc8], ecx
cmp ecx, dword [rsp + 0xd0]
jle 0x1800709d0
mov r12, qword [rsp + 0xc0]
movabs rdi, 0x2aaaaaaaaaaaaaab
mov ebx, dword [0x18017c784]
mov rcx, rsi
mov dword [rsp + 0x20], 0xc
sub rcx, rbp
mov rax, rdi
imul rcx
xor r9d, r9d
mov rcx, rbp
sar rdx, 2
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, rsi
call fcn.180071c50
cmp rbp, rsi
je 0x180070ee8
mov r15, qword gs:[0x58]
movabs r13, 0xdccf003ada4c08e3
mov r14d, ebx
lea rbx, [rbp + 0x10]
mov ebp, 4
mov edx, dword [rbx - 8]
cmp edx, 0xffffffff
je 0x180070ec3
cmp dword [rbx], 0
jne 0x180070ec3
mov rax, qword [0x18017d6c0]
and edx, 0x7fff
mov rcx, qword [rax + 0x58]
call fcn.180050bc0
mov rdi, rax
test rax, rax
je 0x180070ec3
mov rcx, qword [r15 + r14*8]
mov edx, dword [rbp + rcx]
cmp dword [0x18017d690], edx
jle 0x180070eac
lea rcx, [0x18017d690]
call fcn.1800db7d0
cmp dword [0x18017d690], 0xffffffff
jne 0x180070eac
mov rcx, r13
call fcn.18006c2a0
lea rcx, [0x18017d690]
mov dword [0x18017d6b4], eax
call fcn.1800db764
mov eax, dword [0x18017d6b4]
cmp byte [rax + rdi], 0
je 0x180070ec3
mov rdx, rdi
mov rcx, r12
call fcn.180071590
add rbx, 0x18
lea rcx, [rbx - 0x10]
cmp rcx, rsi
jne 0x180070e42
mov rbp, qword [rsp + 0x38]
movabs rdi, 0x2aaaaaaaaaaaaaab
mov r13, qword [rsp + 0x40]
test rbp, rbp
je 0x180070f35
sub r13, rbp
mov rax, rdi
imul r13
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 3
cmp rdx, 0x1000
jb 0x180070f2d
mov rcx, qword [rbp - 8]
add rdx, 0x27
sub rbp, rcx
lea rax, [rbp - 8]
cmp rax, 0x1f
ja 0x180070f7f
mov rbp, rcx
mov rcx, rbp
call fcn.1800db75c
mov r15, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x90]
mov rbp, qword [rsp + 0xa0]
movaps xmm6, xmmword [rsp + 0x60]
mov rbx, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0x98]
mov r13, qword [rsp + 0x88]
mov r14, qword [rsp + 0x80]
add rsp, 0xb0
pop r12
ret
call fcn.180071c30
int3
call fcn.1800e6fd8
int3
call fcn.180071c30
int3
call fcn.1800e6fd8
int3
call fcn.180050ba0
int3