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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
mov rax, qword [rsp + 0xf0]
mov rbp, r8
mov qword [rsp + 0x38], rax
mov r15, rdx
mov rax, qword [rsp + 0xf8]
mov r13, rcx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], r9
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x58], rcx
test r9, r9
je 0x18000adbe
cmp qword [rcx + 0x28], 0
je 0x18000adbe
movzx edx, byte [rdx]
movabs rcx, 0x100000001b3
movzx eax, byte [r15 + 1]
movabs r12, 0xcbf29ce484222325
mov r14, qword [r13 + 0x20]
xor rdx, r12
imul rdx, rcx
xor edi, edi
xor rdx, rax
movzx eax, byte [r15 + 2]
imul rdx, rcx
xor rdx, rax
movzx eax, byte [r15 + 3]
imul rdx, rcx
xor rdx, rax
imul rdx, rcx
and rdx, qword [r13 + 0x48]
shl rdx, 4
add rdx, qword [r13 + 0x30]
mov rax, qword [rdx + 8]
cmp rax, r14
je 0x18000ad32
mov ecx, dword [r15]
mov rdx, qword [rdx]
cmp ecx, dword [rax + 0x10]
je 0x18000ad35
cmp rax, rdx
je 0x18000ad32
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x18000ad22
jmp 0x18000ad35
mov rax, rdi
test rax, rax
je 0x18000af5e
cmp rax, r14
je 0x18000af5e
test byte [r15], 0x20
lea rcx, [r13 + 0x18]
mov rdx, r15
je 0x18000ae2d
call fcn.180016360
mov rdi, qword [rax + 8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x18000adbe
mov r14, qword [rbp + 0x18]
mov r15, qword [rbp + 0x10]
cmp qword [rbx + 0x28], 0xf
lea r9, [rbx + 0x10]
mov rax, qword [rbx + 0x20]
jbe 0x18000ad84
mov r9, qword [rbx + 0x10]
mov rcx, rbp
cmp r14, 0xf
jbe 0x18000ad91
mov rcx, qword [rbp]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, r15
call fcn.18001a9d0
cmp rax, 0xffffffffffffffff
je 0x18000adb6
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x18000adb6
cmp dword [rax + 8], 0
jne 0x18000add4
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x18000ad71
xor al, al
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rbx + 0x30]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x18000ae10
mov rdx, qword [rbx + 0x30]
add rdx, 0x10
cmp rax, rdx
je 0x18000ae10
cmp qword [rdx + 0x18], 0xf
mov r8, qword [rdx + 0x10]
jbe 0x18000ae08
mov rdx, qword [rdx]
mov rcx, rax
call fcn.180018090
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x18000b16d
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x30]
mov al, 1
mov qword [rdi], rcx
jmp 0x18000adc0
call fcn.180016360
cmp qword [rbp + 0x18], 0xf
mov rsi, rax
mov rdx, qword [rbp + 0x10]
mov rcx, rbp
jbe 0x18000ae47
mov rcx, qword [rbp]
test rdx, rdx
je 0x18000ae73
movabs r8, 0x100000001b3
nop word [rax + rax]
movzx eax, byte [rcx + rdi]
inc rdi
xor r12, rax
imul r12, r8
cmp rdi, rdx
jb 0x18000ae60
mov r9, r12
lea rdx, [rsp + 0x48]
mov r8, rbp
mov rcx, rsi
call fcn.18001e4f0
mov rdi, qword [rax + 8]
test rdi, rdi
jne 0x18000ae93
mov rdi, qword [rsi + 8]
mov rdx, r15
lea rcx, [r13 + 0x18]
call fcn.180016360
cmp rdi, qword [rax + 8]
je 0x18000adbe
mov r8, r15
lea rdx, [rsp + 0x48]
lea rcx, [r13 + 0x18]
call fcn.180019d10
mov r8, rbp
lea rdx, [rsp + 0x58]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.180019850
mov rdi, qword [rsp + 0x38]
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
test rdi, rdi
je 0x18000af35
mov r8, r15
lea rdx, [rsp + 0x48]
lea rcx, [r13 + 0x18]
call fcn.180019d10
mov r8, rbp
lea rdx, [rsp + 0x58]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.180019850
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x30]
add rdx, 0x10
cmp rdi, rdx
je 0x18000af35
cmp qword [rdx + 0x18], 0xf
mov r8, qword [rdx + 0x10]
jbe 0x18000af2d
mov rdx, qword [rdx]
mov rcx, rdi
call fcn.180018090
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x18000b16d
mov r8, r15
lea rdx, [rsp + 0x48]
lea rcx, [r13 + 0x18]
call fcn.180019d10
lea rdx, [rsp + 0x58]
jmp 0x18000b150
mov rsi, qword [r14]
cmp rsi, r14
je 0x18000adbe
nop word [rax + rax]
mov eax, dword [rsi + 0x10]
test dword [r15], eax
je 0x18000b090
lea rcx, [r13 + 0x18]
lea rdx, [rsi + 0x10]
test al, 0x20
je 0x18000b012
call fcn.180016360
mov rdi, qword [rax + 8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x18000b08e
mov r12, qword [rbp + 0x18]
mov r13, qword [rbp + 0x10]
nop dword [rax]
cmp qword [rbx + 0x28], 0xf
lea r9, [rbx + 0x10]
mov rax, qword [rbx + 0x20]
jbe 0x18000afc3
mov r9, qword [rbx + 0x10]
mov rcx, rbp
cmp r12, 0xf
jbe 0x18000afd0
mov rcx, qword [rbp]
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov rdx, r13
call fcn.18001a9d0
cmp rax, 0xffffffffffffffff
je 0x18000aff9
mov rax, qword [rbx + 0x38]
test rax, rax
je 0x18000aff9
cmp dword [rax + 8], 0
jne 0x18000add4
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x18000afb0
mov r13, qword [rsp + 0x58]
movabs r12, 0xcbf29ce484222325
jmp 0x18000b089
call fcn.180016360
cmp qword [rbp + 0x18], 0xf
mov r15, rax
mov r8, qword [rbp + 0x10]
mov rdx, rbp
jbe 0x18000b02c
mov rdx, qword [rbp]
mov r9, r12
mov rcx, rdi
test r8, r8
je 0x18000b059
movabs r13, 0x100000001b3
movzx eax, byte [rdx + rcx]
inc rcx
xor r9, rax
imul r9, r13
cmp rcx, r8
jb 0x18000b041
mov r13, qword [rsp + 0x58]
mov r8, rbp
lea rdx, [rsp + 0x68]
mov rcx, r15
call fcn.18001e4f0
mov rdi, qword [rax + 8]
test rdi, rdi
jne 0x18000b076
mov rdi, qword [r15 + 8]
lea rcx, [r13 + 0x18]
lea rdx, [rsi + 0x10]
call fcn.180016360
cmp rdi, qword [rax + 8]
jne 0x18000b0a1
mov r15, qword [rsp + 0x48]
xor edi, edi
mov rsi, qword [rsi]
cmp rsi, r14
jne 0x18000af70
jmp 0x18000adbe
lea rcx, [r13 + 0x18]
lea r8, [rsi + 0x10]
lea rdx, [rsp + 0x68]
call fcn.180019d10
mov r8, rbp
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.180019850
mov rdi, qword [rsp + 0x38]
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
movups xmm0, xmmword [rax]
mov rax, qword [rsp + 0x30]
movups xmmword [rax], xmm0
test rdi, rdi
je 0x18000b12f
lea rcx, [r13 + 0x18]
lea r8, [rsi + 0x10]
lea rdx, [rsp + 0x68]
call fcn.180019d10
mov r8, rbp
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
add rcx, 0x18
call fcn.180019850
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x30]
add rdx, 0x10
cmp rdi, rdx
je 0x18000b12f
cmp qword [rdx + 0x18], 0xf
mov r8, qword [rdx + 0x10]
jbe 0x18000b127
mov rdx, qword [rdx]
mov rcx, rdi
call fcn.180018090
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x18000b16d
lea rcx, [r13 + 0x18]
lea r8, [rsi + 0x10]
lea rdx, [rsp + 0x68]
call fcn.180019d10
lea rdx, [rsp + 0x48]
mov rcx, qword [rax]
mov r8, rbp
add rcx, 0x18
call fcn.180019850
mov rax, qword [rax]
mov rax, qword [rax + 0x30]
mov rcx, qword [rax + 0x30]
mov qword [rdi], rcx
mov al, 1
jmp 0x18000adc0