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

Disassembly:
mov qword [rsp + 8], rcx
push r14
sub rsp, 0x90
mov r14, rcx
mov rcx, qword [0x180197830]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x120]
call rdx
test al, al
je 0x180085ba0
mov rcx, qword [0x180197830]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x118]
call rdx
test al, al
je 0x180085ba0
mov rax, qword [0x1801985d8]
shl rax, 5
add rax, qword [0x180196080]
cmp qword [rax + 0x10], 8
lea rcx, [rax + 0x18]
jbe 0x1800856ae
cmp qword [rcx], 0
jne 0x1800856ab
int3
mov rcx, qword [rcx]
cmp byte [rcx], 0
je 0x180085ba0
mov rax, qword [0x1801978e8]
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x68], r12
xor r12d, r12d
mov rcx, qword [rax + 0x58]
mov edi, r12d
mov qword [rsp + 0x58], r15
mov r15d, r12d
mov qword [rsp + 0x88], rbx
movsxd rsi, dword [rcx + 0x1510]
movabs rcx, 0xaaaaaaaaaaaaaaa
mov dword [rsp + 0xb0], esi
test esi, esi
je 0x180085727
cmp rsi, rcx
ja 0x180085bb6
lea rax, [rsi + rsi*2]
lea rbx, [rax*8]
mov rcx, rbx
call fcn.180028220
mov rdi, rax
lea r15, [rbx + rax]
mov ecx, 1
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x60], r13
mov rbx, rdi
movaps xmmword [rsp + 0x40], xmm6
movabs r13, 0x2aaaaaaaaaaaaaab
mov dword [rsp + 0xa8], ecx
cmp esi, ecx
jl 0x180085a63
movabs r14, 0x100000001b3
movabs r13, 0xc106a596b87eca81
nop
mov rax, qword [0x1801978e8]
mov edx, ecx
mov rcx, qword [rax + 0x58]
call fcn.1800626b0
mov rbp, rax
test rax, rax
je 0x180085a39
mov qword [rsp + 0x30], r12
lea rdx, [rsp + 0x30]
mov r8, qword [rax]
mov rcx, rax
call qword [r8 + 0x130]
mov r9, qword [rsp + 0x30]
test r9, r9
je 0x180085a39
mov r9, qword [r9 + 8]
movabs r8, 0xcbf29ce484222325
mov rcx, r9
cmp byte [r9], 0
je 0x1800857d8
nop word [rax + rax]
inc rcx
cmp byte [rcx], 0
jne 0x1800857d0
mov rdx, r12
sub rcx, r9
je 0x180085a39
nop dword [rax]
nop dword [rax + rax]
movsx rax, byte [r9 + rdx]
inc rdx
xor r8, rax
imul r8, r14
cmp rdx, rcx
jb 0x1800857f0
cmp r8, r13
jne 0x180085a39
mov eax, dword [0x1801978dc]
test al, 1
jne 0x180085837
or eax, 1
movabs rcx, 0x9241b8778dd136bd
mov dword [0x1801978dc], eax
call fcn.180077e70
mov dword [0x180197cb8], eax
jmp 0x18008583d
mov eax, dword [0x180197cb8]
mov edx, eax
mov edx, dword [rdx + rbp]
cmp edx, 0xffffffff
jne 0x180085850
lea rax, [0x180197810]
jmp 0x18008587c
mov rax, qword [0x1801978e8]
and edx, 0x7fff
mov rcx, qword [rax + 0x58]
call fcn.1800626b0
test rax, rax
jne 0x180085874
lea rax, [0x180197810]
jmp 0x18008587c
mov rcx, rax
call fcn.180087d50
movss xmm0, dword [0x1801979a0]
subss xmm0, dword [rax + 8]
movss xmm1, dword [0x180197998]
movss xmm2, dword [0x18019799c]
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 0x1800858c7
xorps xmm6, xmm6
sqrtss xmm6, xmm2
jmp 0x1800858d2
movaps xmm0, xmm2
call fcn.180116220
movaps xmm6, xmm0
lea rdx, [rsp + 0xb8]
mov rcx, rbp
call fcn.180078cb0
mov r13, rax
cmp rdi, r15
je 0x180085904
mov eax, dword [rax]
movss dword [rdi + 0xc], xmm6
mov qword [rdi], rbp
mov dword [rdi + 8], eax
mov dword [rdi + 0x10], r12d
add rdi, 0x18
jmp 0x180085a2f
sub rdi, rbx
movabs rcx, 0x2aaaaaaaaaaaaaab
mov rax, rcx
movabs r8, 0xaaaaaaaaaaaaaaa
imul rdi
mov r14, rdx
sar r14, 2
mov rax, r14
shr rax, 0x3f
add r14, rax
cmp r14, r8
je 0x180085baa
sub r15, rbx
lea r12, [r14 + 1]
mov rax, rcx
imul r15
mov r15, rdx
sar r15, 2
mov rax, r15
shr rax, 0x3f
add r15, rax
mov rax, r8
mov rcx, r15
shr rcx, 1
sub rax, rcx
cmp r15, rax
jbe 0x18008596f
mov rcx, r8
jmp 0x180085986
lea rax, [r15 + rcx]
mov rcx, r12
cmp rax, r12
cmovae rcx, rax
cmp rcx, r8
ja 0x180085bc2
lea rax, [rcx + rcx*2]
lea rax, [rax*8]
mov rcx, rax
mov qword [rsp + 0x38], rax
call fcn.180028220
mov ecx, dword [r13]
lea rdx, [r14 + r14*2]
mov r8, rdi
mov rsi, rax
mov dword [rax + rdx*8 + 8], ecx
mov rcx, rax
movss dword [rax + rdx*8 + 0xc], xmm6
mov qword [rax + rdx*8], rbp
mov dword [rax + rdx*8 + 0x10], 0
mov rdx, rbx
call fcn.180117d70
test rbx, rbx
je 0x180085a08
lea rdx, [r15 + r15*2]
shl rdx, 3
cmp rdx, 0x1000
jb 0x180085a00
mov rcx, qword [rbx - 8]
add rdx, 0x27
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x180085bbc
mov rbx, rcx
mov rcx, rbx
call fcn.1800f1af0
mov r15, qword [rsp + 0x38]
lea rax, [r12 + r12*2]
add r15, rsi
lea rdi, [rsi + rax*8]
mov rbx, rsi
xor r12d, r12d
mov esi, dword [rsp + 0xb0]
movabs r14, 0x100000001b3
movabs r13, 0xc106a596b87eca81
mov ecx, dword [rsp + 0xa8]
inc ecx
mov dword [rsp + 0xa8], ecx
cmp ecx, esi
jle 0x180085770
mov r14, qword [rsp + 0xa0]
movabs r13, 0x2aaaaaaaaaaaaaab
mov rcx, rdi
mov dword [rsp + 0x20], 0xc
sub rcx, rbx
mov rax, r13
imul rcx
xor r9d, r9d
mov rcx, rbx
sar rdx, 2
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, rdi
call fcn.180086a00
cmp rbx, rdi
je 0x180085b25
lea rsi, [rbx + 0x10]
movabs r12, 0xdccf003ada4c08e3
nop word [rax + rax]
mov edx, dword [rsi - 8]
cmp edx, 0xffffffff
je 0x180085b18
cmp dword [rsi], 0
jne 0x180085b18
mov rax, qword [0x1801978e8]
and edx, 0x7fff
mov rcx, qword [rax + 0x58]
call fcn.1800626b0
mov rbp, rax
test rax, rax
je 0x180085b18
mov ecx, dword [0x1801978c4]
test cl, 1
jne 0x180085aff
or ecx, 1
mov dword [0x1801978c4], ecx
mov rcx, r12
call fcn.180077e70
mov dword [0x1801978d8], eax
jmp 0x180085b05
mov eax, dword [0x1801978d8]
mov eax, eax
cmp byte [rax + rbp], 0
je 0x180085b18
mov rdx, rbp
mov rcx, r14
call fcn.180086080
add rsi, 0x18
lea rcx, [rsi - 0x10]
cmp rcx, rdi
jne 0x180085ab0
test rbx, rbx
je 0x180085b72
sub r15, rbx
mov rax, r13
imul r15
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 3
cmp rdx, 0x1000
jb 0x180085b6a
mov rcx, qword [rbx - 8]
add rdx, 0x27
sub rbx, rcx
lea rax, [rbx - 8]
cmp rax, 0x1f
ja 0x180085bb0
mov rbx, rcx
mov rcx, rbx
call fcn.1800f1af0
mov rbp, qword [rsp + 0x80]
mov r13, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x40]
mov rbx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x70]
mov r12, qword [rsp + 0x68]
mov r15, qword [rsp + 0x58]
add rsp, 0x90
pop r14
ret
call fcn.1800869e0
int3
call fcn.1800f5950
int3
call fcn.1800869e0
int3
call fcn.1800f5950
int3
call fcn.1800036f0
int3