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

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov rbx, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 0x10
mov r15, r8
jb 0x1800132ae
mov r15, qword [r8]
mov qword [rbp - 0x28], r8
mov qword [rbp - 0x30], rcx
mov qword [rbp - 8], rdx
test rbx, rbx
je 0x1800133b6
movabs r12, 0xcbf29ce484222325
xor eax, eax
movabs rcx, 0x6001000000020108
movabs r10, 0x9a400a4c02881c90
movabs r11, 0x9e61ae5ca6a83c97
movabs r13, 0xbad41acd1ad89cd8
movabs r14, 0x100000001b3
nop word cs:[rax + rax]
movzx esi, byte [r15 + rax]
mov rdx, rsi
not rdx
mov r8d, edx
and r8d, 0x90
mov edi, esi
and edi, 0x6f
or edi, r8d
xor edi, r12d
xor edi, 0x90
and edi, esi
and rdx, rcx
and esi, 0xfffffff7
or rsi, rdx
xor r12, rcx
xor r12, rsi
movabs rdx, 0x9ffefffffffdfef7
xor rsi, rdx
and rsi, r12
mov rdx, rsi
mov r8, rsi
mov r12, rsi
and r12, r11
xor r12, rdi
xor rsi, rdi
not rdi
not rdx
movabs r9, 0x410a412241074320
and r8, r9
and rdi, rdx
movabs r9, 0x2094108118508048
and rdx, r9
or rdx, r8
or rdx, r10
xor r12, r13
xor r12, rdx
or rsi, rdi
not rsi
or rsi, r12
imul rsi, r14
inc rax
mov r12, rsi
cmp rbx, rax
jne 0x180013310
jmp 0x1800133c0
movabs rsi, 0xcbf29ce484222325
mov r12, qword [rbp - 0x30]
mov rax, qword [r12 + 0x30]
and rax, rsi
mov rcx, qword [r12 + 0x18]
mov rdx, rax
shl rdx, 4
mov r13, qword [rcx + rdx + 8]
cmp r13, qword [r12 + 8]
je 0x18001343b
add rax, rax
mov rdi, qword [rcx + rax*8]
cmp rbx, qword [r13 + 0x20]
jne 0x180013427
nop word cs:[rax + rax]
cmp qword [r13 + 0x28], 0x10
jb 0x180013410
mov rdx, qword [r13 + 0x10]
jmp 0x180013414
lea rdx, [r13 + 0x10]
mov rcx, r15
mov r8, rbx
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1800135c4
cmp r13, rdi
je 0x180013438
mov r13, qword [r13 + 8]
cmp rbx, qword [r13 + 0x20]
je 0x180013400
jmp 0x180013427
mov r13, rdi
movabs rax, 0x333333333333333
cmp qword [r12 + 0x10], rax
je 0x180013697
lea rax, [r12 + 8]
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x10], 0
mov ecx, 0x50
call fcn.180016e94
mov rbx, rax
mov qword [rbp - 0x18], rax
mov r15, rax
add r15, 0x10
mov qword [rbp - 0x10], rax
mov rcx, r15
mov rdx, qword [rbp - 0x28]
call fcn.180013820
mov rax, qword [r12 + 0x10]
inc rax
js 0x18001349a
cvtsi2ss xmm0, rax
jmp 0x1800134af
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
movss xmm1, dword [r12]
mov r14, qword [r12 + 0x38]
test r14, r14
js 0x1800134c6
cvtsi2ss xmm2, r14
jmp 0x1800134de
mov rax, r14
shr rax, 1
mov ecx, r14d
and ecx, 1
or rcx, rax
cvtsi2ss xmm2, rcx
addss xmm2, xmm2
movaps xmm3, xmm0
divss xmm3, xmm2
ucomiss xmm3, xmm1
jbe 0x1800135dd
divss xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_ceilf
cvttss2si rax, xmm0
mov rcx, rax
subss xmm0, dword [0x18001a000]
cvttss2si rdx, xmm0
sar rcx, 0x3f
and rdx, rcx
or rdx, rax
cmp rdx, 9
mov eax, 8
cmovae rax, rdx
cmp r14, rax
jae 0x180013545
lea rcx, [r14*8]
cmp rcx, rax
cmovb rcx, rax
cmp r14, 0x200
cmovae rcx, rax
mov r14, rcx
mov rcx, r12
mov rdx, r14
call fcn.180013ac0
mov rax, qword [r12 + 0x30]
and rax, rsi
mov rcx, qword [r12 + 0x18]
mov rdx, rax
shl rdx, 4
mov r13, qword [rcx + rdx + 8]
cmp r13, qword [r12 + 8]
je 0x1800135dd
add rax, rax
cmp qword [rbx + 0x28], 0x10
jb 0x18001357e
mov r15, qword [rbx + 0x10]
mov rdi, qword [rcx + rax*8]
mov r14, qword [rbx + 0x20]
cmp r14, qword [r13 + 0x20]
jne 0x1800135b3
nop dword [rax]
cmp qword [r13 + 0x28], 0x10
jb 0x1800135a0
mov rdx, qword [r13 + 0x10]
jmp 0x1800135a4
lea rdx, [r13 + 0x10]
mov rcx, r15
mov r8, r14
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1800135d9
cmp r13, rdi
je 0x1800135d4
mov r13, qword [r13 + 8]
cmp r14, qword [r13 + 0x20]
je 0x180013590
jmp 0x1800135b3
mov rsi, qword [rbp - 8]
mov qword [rsi], r13
mov byte [rsi + 8], 0
jmp 0x180013683
mov r13, rdi
jmp 0x1800135dd
mov r13, qword [r13]
mov qword [rbp - 0x18], 0
mov rax, qword [r13 + 8]
inc qword [r12 + 0x10]
mov qword [rbx], r13
mov qword [rbx + 8], rax
mov qword [rax], rbx
mov qword [r13 + 8], rbx
mov r8, qword [r12 + 0x18]
mov r9, qword [r12 + 0x30]
movabs rcx, 0x5fc27ef1b30d62d
mov rdx, rsi
xor rdx, rcx
movabs r10, 0xa03d810e4cf29d2
mov r11, r9
xor r11, r10
xor r10, rsi
and r10, r11
xor r9, rcx
and r9, rdx
or r9, r10
and r9, rsi
shl r9, 4
lea rcx, [r8 + r9]
lea rdx, [r8 + r9]
add rdx, 8
mov r8, qword [r8 + r9]
cmp r8, qword [r12 + 8]
je 0x180013666
cmp r8, r13
mov rsi, qword [rbp - 8]
je 0x180013670
mov rcx, rdx
cmp qword [rdx], rax
jne 0x180013673
jmp 0x180013670
mov qword [rcx], rbx
mov rcx, rdx
mov rsi, qword [rbp - 8]
mov qword [rcx], rbx
mov qword [rsi], rbx
mov byte [rsi + 8], 1
lea rcx, [rbp - 0x20]
call fcn.180013740
mov rax, rsi
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
movabs rcx, 0x38a2548c775c9d5e
add rcx, qword [0x18001f618]
call fcn.1800151b0
lea rcx, [0x18001ff96]
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_
int3