Function at 0x18000ced0
Capabilities:
Encode data using xor
Hash data using fnv
Hash data with crc32

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x38]
sub rsp, 0x138
mov rsi, r8
mov rbx, rdx
mov r14, rcx
xor r15d, r15d
xor eax, eax
mov qword [rcx], rax
lea r13, [rcx + 8]
mov qword [rbp - 0x60], r13
mov qword [r13], r15
mov qword [r13 + 8], r15
mov qword [r13 + 0x10], r15
lea rdi, [rcx + 0x20]
mov qword [rsp + 0x28], rdi
mov rcx, rdi
call fcn.18000ca70
nop
lea r12, [r14 + 0x60]
mov qword [rbp - 0x70], r12
mov rcx, r12
call fcn.18000ca70
nop
lea rax, [r14 + 0xa0]
mov qword [rbp - 0x68], rax
mov rcx, rax
call fcn.18000cb70
nop
lea rcx, [r14 + 0xe0]
call fcn.18000ca70
nop
lea rcx, [r14 + 0x120]
call fcn.18000ca70
nop
mov byte [r14 + 0x168], r15b
mov dword [r14 + 0x170], r15d
mov byte [r14 + 0x198], r15b
mov byte [r14 + 0x1a0], r15b
mov qword [r14], rbx
mov r10d, r15d
mov dword [rsp + 0x20], r15d
mov dword [rsp + 0x30], r15d
mov r11d, dword [rbp + 0x98]
test r11d, r11d
je 0x18000d9a3
mov eax, r15d
movabs r13, 0x100000001b3
movabs r14, 0x7fffffffffffffff
lea rbx, [0x18006ca90]
movabs r8, 0xcbf29ce484222325
mov r9d, eax
shl r9, 4
mov qword [rbp - 0x80], r9
movzx edx, byte [r9 + rsi]
xor rdx, r8
imul rdx, r13
movzx eax, byte [r9 + rsi + 1]
xor rdx, rax
imul rdx, r13
movzx eax, byte [r9 + rsi + 2]
xor rdx, rax
imul rdx, r13
movzx eax, byte [r9 + rsi + 3]
xor rdx, rax
imul rdx, r13
and rdx, qword [0x1800746a0]
add rdx, rdx
mov r8, qword [0x180074688]
mov rcx, qword [r8 + rdx*8 + 8]
cmp rcx, qword [0x180074678]
je 0x18000d050
mov r8, qword [r8 + rdx*8]
mov eax, dword [r9 + rsi]
cmp eax, dword [rcx + 0x10]
je 0x18000d053
nop dword [rax + rax]
cmp rcx, r8
je 0x18000d050
mov rcx, qword [rcx + 8]
cmp eax, dword [rcx + 0x10]
jne 0x18000d040
jmp 0x18000d053
mov rcx, r15
mov rdx, qword [0x180074678]
test rcx, rcx
cmovne rdx, rcx
mov qword [rbp - 0x78], rdx
cmp rdx, qword [0x180074678]
je 0x18000d979
mov rax, qword [r9 + rsi + 8]
movups xmm2, xmmword [rax]
mov rax, qword [rax + 8]
mov rsi, r15
mov qword [rsp + 0x48], r15
xorps xmm0, xmm0
test rax, rax
jne 0x18000d0ab
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x38], xmm1
psrldq xmm0, 8
movq r8, xmm0
movq r14, xmm1
jmp 0x18000d14d
movq rdi, xmm2
lea rbx, [rax + rdi]
movdqu xmmword [rsp + 0x38], xmm0
sub rbx, rdi
je 0x18000d137
cmp rbx, r14
ja 0x18000da96
cmp rbx, 0x1000
jb 0x18000d0fa
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x18000da90
call fcn.18001dbcc
test rax, rax
je 0x18000da60
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x18000d105
mov rcx, rbx
call fcn.18001dbcc
mov r14, rax
mov qword [rsp + 0x38], r14
lea rsi, [r14 + rbx]
mov qword [rsp + 0x48], rsi
mov r8, rbx
mov rdx, rdi
mov rcx, r14
call sub.VCRUNTIME140.dll_memmove
mov r8, rsi
mov qword [rsp + 0x40], rsi
mov r10d, dword [rsp + 0x20]
mov r11d, dword [rbp + 0x98]
jmp 0x18000d141
mov r8, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
lea rbx, [0x18006ca90]
mov rdi, qword [rsp + 0x28]
cmp r14, r8
jne 0x18000d193
test r14, r14
je 0x18000d968
sub rsi, r14
mov rax, r14
cmp rsi, 0x1000
jb 0x18000d183
add rsi, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000da60
mov rdx, rsi
mov rcx, r14
call fcn.18001dc08
jmp 0x18000d95c
mov r9, r14
mov edx, 0xffffffff
sub r8, r14
je 0x18000d1bc
movzx ecx, byte [r9]
mov eax, edx
xor rcx, rax
movzx eax, cl
shr edx, 8
xor edx, dword [rbx + rax*4]
lea r9, [r9 + 1]
sub r8, 1
jne 0x18000d1a0
not edx
mov r13d, edx
mov dword [rbp + 0x88], r13d
mov eax, edx
shr eax, 8
movzx edx, al
movzx eax, r13b
movabs rbx, 0xcbf29ce484222325
xor rax, rbx
movabs rsi, 0x100000001b3
imul rax, rsi
xor rdx, rax
imul rdx, rsi
mov eax, r13d
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, rsi
mov eax, r13d
shr rax, 0x18
xor rdx, rax
imul rdx, rsi
mov r9, qword [rbp + 0xa0]
mov rcx, qword [r9 + 0x30]
and rcx, rdx
add rcx, rcx
mov rdx, qword [r9 + 0x18]
mov rax, qword [rdx + rcx*8 + 8]
mov r8, qword [r9 + 8]
cmp rax, r8
jne 0x18000d2cc
mov rcx, r8
mov rax, r15
test rax, rax
cmove rax, r8
cmp rax, rcx
je 0x18000d270
mov ecx, dword [rax + 0x14]
mov dword [rbp + 0x88], ecx
lea r8, [rbp + 0x88]
lea rdx, [rbp - 0x28]
mov rcx, r12
call fcn.18000add0
mov r13d, dword [rbp + 0x88]
movzx r12d, r13b
xor r12, rbx
imul r12, rsi
movzx eax, byte [rbp + 0x89]
xor r12, rax
imul r12, rsi
movzx eax, byte [rbp + 0x8a]
xor r12, rax
imul r12, rsi
movzx eax, byte [rbp + 0x8b]
xor r12, rax
imul r12, rsi
mov rax, qword [rdi + 0x30]
and rax, r12
add rax, rax
mov rcx, qword [rdi + 0x18]
mov rbx, qword [rcx + rax*8 + 8]
lea rdx, [rdi + 8]
mov r15, qword [rdx]
cmp rbx, r15
jne 0x18000d2f8
mov rbx, r15
mov rsi, r15
jmp 0x18000d320
mov rdx, qword [rdx + rcx*8]
mov rcx, r8
cmp r13d, dword [rax + 0x10]
je 0x18000d241
nop dword [rax]
cmp rax, rdx
je 0x18000d23e
mov rax, qword [rax + 8]
cmp r13d, dword [rax + 0x10]
jne 0x18000d2e0
jmp 0x18000d241
mov rax, qword [rcx + rax*8]
cmp r13d, dword [rbx + 0x10]
je 0x18000d493
cmp rbx, rax
je 0x18000d31a
mov rbx, qword [rbx + 8]
cmp r13d, dword [rbx + 0x10]
jne 0x18000d306
jmp 0x18000d493
mov r15, rbx
mov rsi, rbx
movabs rax, 0xaaaaaaaaaaaaaaa
cmp qword [rdi + 0x10], rax
je 0x18000da9c
mov qword [rbp - 0x58], rdx
mov qword [rbp - 0x50], 0
mov ecx, 0x18
call fcn.18001dbcc
mov rdi, rax
mov qword [rbp - 0x50], rax
mov dword [rax + 0x10], r13d
mov r9, qword [rsp + 0x28]
mov rdx, qword [r9 + 0x10]
add rdx, 1
xorps xmm0, xmm0
js 0x18000d36e
cvtsi2ss xmm0, rdx
jmp 0x18000d386
mov rcx, rdx
shr rcx, 1
mov rax, rdx
and eax, 1
or rcx, rax
cvtsi2ss xmm0, rcx
addss xmm0, xmm0
mov rcx, qword [r9 + 0x38]
xorps xmm1, xmm1
test rcx, rcx
js 0x18000d399
cvtsi2ss xmm1, rcx
jmp 0x18000d3ae
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm0, dword [r9]
jbe 0x18000d426
mov rcx, r9
call fcn.18001a050
mov rdx, rax
mov rcx, qword [rsp + 0x28]
call fcn.18001a660
mov r9, qword [rsp + 0x28]
mov rcx, qword [r9 + 0x30]
and rcx, r12
add rcx, rcx
mov rdx, qword [r9 + 0x18]
mov rax, qword [rdx + rcx*8 + 8]
mov rbx, qword [r9 + 8]
cmp rax, rbx
jne 0x18000d3f9
mov qword [rsp + 0x58], 0
jmp 0x18000d419
mov rdx, qword [rdx + rcx*8]
mov ecx, dword [rdi + 0x10]
cmp ecx, dword [rax + 0x10]
je 0x18000d416
mov rbx, rax
cmp rax, rdx
je 0x18000d462
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x18000d405
mov rbx, qword [rax]
mov qword [rsp + 0x50], rbx
mov rsi, rbx
mov r15, qword [rsp + 0x50]
mov qword [rbp - 0x50], 0
mov rdx, qword [rbx + 8]
inc qword [r9 + 0x10]
mov qword [rdi], r15
mov qword [rdi + 8], rdx
mov qword [rdx], rdi
mov qword [rbx + 8], rdi
mov rcx, qword [r9 + 0x18]
mov rax, qword [r9 + 0x30]
and rax, r12
add rax, rax
mov r8, qword [rcx + rax*8]
cmp r8, qword [r9 + 8]
jne 0x18000d472
mov qword [rcx + rax*8], rdi
jmp 0x18000d484
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 0
jmp 0x18000d41e
cmp r8, rsi
jne 0x18000d47d
mov qword [rcx + rax*8], rdi
jmp 0x18000d489
cmp qword [rcx + rax*8 + 8], rdx
jne 0x18000d489
mov qword [rcx + rax*8 + 8], rdi
movabs rsi, 0x100000001b3
lea r9, [rbp + 0x88]
lea r8, [rsp + 0x30]
lea rdx, [rbp - 0x18]
mov rcx, qword [rbp - 0x68]
call fcn.18000b030
mov r8, qword [rbp - 0x80]
mov r10, qword [rbp + 0x90]
movzx ecx, byte [r8 + r10]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
imul rcx, rsi
movzx eax, byte [r8 + r10 + 1]
xor rcx, rax
imul rcx, rsi
movzx eax, byte [r8 + r10 + 2]
xor rcx, rax
imul rcx, rsi
movzx eax, byte [r8 + r10 + 3]
xor rcx, rax
imul rcx, rsi
mov qword [rbp + 0x88], rcx
mov r9, qword [rbp + 0x80]
and rcx, qword [r9 + 0x110]
add rcx, rcx
mov rax, qword [r9 + 0xf8]
mov rbx, qword [rax + rcx*8 + 8]
lea rdx, [r9 + 0xe8]
mov r15, qword [rdx]
cmp rbx, r15
jne 0x18000d52f
mov rbx, r15
mov rsi, r15
jmp 0x18000d559
mov rcx, qword [rax + rcx*8]
mov eax, dword [r8 + r10]
cmp eax, dword [rbx + 0x10]
je 0x18000d6f3
cmp rbx, rcx
je 0x18000d553
mov rbx, qword [rbx + 8]
cmp eax, dword [rbx + 0x10]
jne 0x18000d540
jmp 0x18000d6f3
mov r15, rbx
mov rsi, rbx
movabs rax, 0xaaaaaaaaaaaaaaa
cmp qword [r9 + 0xf0], rax
je 0x18000da9c
mov qword [rbp - 0x48], rdx
xor r12d, r12d
mov qword [rbp - 0x40], r12
mov ecx, 0x18
call fcn.18001dbcc
mov rdi, rax
mov qword [rbp - 0x40], rax
mov rcx, qword [rbp - 0x80]
mov rax, qword [rbp + 0x90]
mov ecx, dword [rcx + rax]
mov dword [rdi + 0x10], ecx
mov dword [rdi + 0x14], r13d
mov r9, qword [rbp + 0x80]
add r9, 0xe0
mov rdx, qword [r9 + 0x10]
add rdx, 1
xorps xmm0, xmm0
js 0x18000d5c3
cvtsi2ss xmm0, rdx
jmp 0x18000d5db
mov rcx, rdx
shr rcx, 1
mov rax, rdx
and eax, 1
or rcx, rax
cvtsi2ss xmm0, rcx
addss xmm0, xmm0
mov rcx, qword [r9 + 0x38]
xorps xmm1, xmm1
test rcx, rcx
js 0x18000d5ee
cvtsi2ss xmm1, rcx
jmp 0x18000d603
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm0, dword [r9]
jbe 0x18000d693
mov rcx, r9
call fcn.18001a050
mov rdx, rax
mov rbx, qword [rbp + 0x80]
lea rcx, [rbx + 0xe0]
call fcn.18001a0f0
lea r9, [rbx + 0xe0]
mov rcx, qword [r9 + 0x30]
mov r8, qword [rbp + 0x88]
and rcx, r8
add rcx, rcx
mov rdx, qword [r9 + 0x18]
mov rax, qword [rdx + rcx*8 + 8]
mov rbx, qword [r9 + 8]
cmp rax, rbx
je 0x18000d679
mov rdx, qword [rdx + rcx*8]
mov ecx, dword [rdi + 0x10]
cmp ecx, dword [rax + 0x10]
je 0x18000d676
mov rbx, rax
cmp rax, rdx
je 0x18000d686
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x18000d665
mov rbx, qword [rax]
mov qword [rsp + 0x60], rbx
mov rsi, rbx
mov r15, rbx
jmp 0x18000d69a
mov qword [rsp + 0x60], rax
mov rsi, rbx
mov r15, rax
jmp 0x18000d69a
mov r8, qword [rbp + 0x88]
mov qword [rbp - 0x40], r12
mov rdx, qword [rbx + 8]
inc qword [r9 + 0x10]
mov qword [rdi], r15
mov qword [rdi + 8], rdx
mov qword [rdx], rdi
mov qword [rbx + 8], rdi
mov rcx, qword [r9 + 0x18]
mov rax, qword [r9 + 0x30]
and rax, r8
add rax, rax
mov r8, qword [rcx + rax*8]
cmp r8, qword [r9 + 8]
jne 0x18000d6d2
mov qword [rcx + rax*8], rdi
jmp 0x18000d6e4
cmp r8, rsi
jne 0x18000d6dd
mov qword [rcx + rax*8], rdi
jmp 0x18000d6e9
cmp qword [rcx + rax*8 + 8], rdx
jne 0x18000d6e9
mov qword [rcx + rax*8 + 8], rdi
movabs rsi, 0x100000001b3
mov r8, qword [rbp - 0x78]
movzx edi, byte [r8 + 0x14]
movabs rax, 0xcbf29ce484222325
xor rdi, rax
imul rdi, rsi
movzx eax, byte [r8 + 0x15]
xor rdi, rax
imul rdi, rsi
movzx eax, byte [r8 + 0x16]
xor rdi, rax
imul rdi, rsi
movzx eax, byte [r8 + 0x17]
xor rdi, rax
imul rdi, rsi
mov rcx, rdi
mov rsi, qword [rbp + 0x80]
and rcx, qword [rsi + 0x150]
add rcx, rcx
mov rax, qword [rsi + 0x138]
mov rbx, qword [rax + rcx*8 + 8]
lea rdx, [rsi + 0x128]
mov r12, qword [rdx]
cmp rbx, r12
jne 0x18000d768
mov rbx, r12
mov r15, r12
jmp 0x18000d799
mov rcx, qword [rax + rcx*8]
mov eax, dword [r8 + 0x14]
cmp eax, dword [rbx + 0x10]
je 0x18000d911
nop dword [rax]
cmp rbx, rcx
je 0x18000d793
mov rbx, qword [rbx + 8]
cmp eax, dword [rbx + 0x10]
jne 0x18000d780
jmp 0x18000d911
mov r12, rbx
mov r15, rbx
movabs rax, 0xaaaaaaaaaaaaaaa
cmp qword [rsi + 0x130], rax
je 0x18000da9c
mov qword [rbp - 0x38], rdx
mov qword [rbp - 0x30], 0
mov ecx, 0x18
call fcn.18001dbcc
mov rsi, rax
mov qword [rbp - 0x30], rax
mov rcx, qword [rbp - 0x78]
mov ecx, dword [rcx + 0x14]
mov dword [rax + 0x10], ecx
mov dword [rax + 0x14], r13d
mov r13, qword [rbp + 0x80]
add r13, 0x120
mov rdx, qword [r13 + 0x10]
add rdx, 1
xorps xmm0, xmm0
js 0x18000d7fd
cvtsi2ss xmm0, rdx
jmp 0x18000d815
mov rcx, rdx
shr rcx, 1
mov rax, rdx
and eax, 1
or rcx, rax
cvtsi2ss xmm0, rcx
addss xmm0, xmm0
mov rcx, qword [r13 + 0x38]
xorps xmm1, xmm1
test rcx, rcx
js 0x18000d828
cvtsi2ss xmm1, rcx
jmp 0x18000d83d
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm1, rax
addss xmm1, xmm1
divss xmm0, xmm1
comiss xmm0, dword [r13]
jbe 0x18000d8b1
mov rcx, r13
call fcn.18001a050
mov rdx, rax
mov rcx, r13
call fcn.18001a0f0
mov rcx, rdi
and rcx, qword [r13 + 0x30]
add rcx, rcx
mov rdx, qword [r13 + 0x18]
mov rax, qword [rdx + rcx*8 + 8]
mov rbx, qword [r13 + 8]
cmp rax, rbx
jne 0x18000d882
mov qword [rsp + 0x78], 0
jmp 0x18000d8a4
mov rdx, qword [rdx + rcx*8]
mov ecx, dword [rsi + 0x10]
cmp ecx, dword [rax + 0x10]
je 0x18000d8a1
nop
mov rbx, rax
cmp rax, rdx
je 0x18000d8ea
mov rax, qword [rax + 8]
cmp ecx, dword [rax + 0x10]
jne 0x18000d890
mov rbx, qword [rax]
mov qword [rsp + 0x70], rbx
mov r15, rbx
mov r12, qword [rsp + 0x70]
mov qword [rbp - 0x30], 0
mov rcx, qword [rbx + 8]
inc qword [r13 + 0x10]
mov qword [rsi], r12
mov qword [rsi + 8], rcx
mov qword [rcx], rsi
mov qword [rbx + 8], rsi
mov rax, qword [r13 + 0x18]
and rdi, qword [r13 + 0x30]
add rdi, rdi
mov rdx, qword [rax + rdi*8]
cmp rdx, qword [r13 + 8]
jne 0x18000d8fa
mov qword [rax + rdi*8], rsi
jmp 0x18000d90c
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 0
jmp 0x18000d8a9
cmp rdx, r15
jne 0x18000d905
mov qword [rax + rdi*8], rsi
jmp 0x18000d911
cmp qword [rax + rdi*8 + 8], rcx
jne 0x18000d911
mov qword [rax + rdi*8 + 8], rsi
test r14, r14
je 0x18000d94b
mov rdx, qword [rsp + 0x48]
sub rdx, r14
mov rax, r14
cmp rdx, 0x1000
jb 0x18000d943
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18000da60
mov rcx, r14
call fcn.18001dc08
movabs r13, 0x100000001b3
mov r12, qword [rbp - 0x70]
xor r15d, r15d
mov r10d, dword [rsp + 0x20]
mov r11d, dword [rbp + 0x98]
movabs r14, 0x7fffffffffffffff
mov rsi, qword [rbp + 0x90]
inc r10d
mov dword [rsp + 0x20], r10d
mov eax, r10d
mov dword [rsp + 0x30], r10d
cmp r10d, r11d
jae 0x18000d998
mov rdi, qword [rsp + 0x28]
jmp 0x18000cfc0
mov r14, qword [rbp + 0x80]
mov r13, qword [rbp - 0x60]
mov edi, r11d
shl rdi, 4
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0x48], r15
test r11d, r11d
je 0x18000da1c
test rdi, rdi
je 0x18000d9fb
cmp rdi, 0x1000
jb 0x18000d9f0
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x18000da90
call fcn.18001dbcc
test rax, rax
je 0x18000da60
lea r15, [rax + 0x27]
and r15, 0xffffffffffffffe0
mov qword [r15 - 8], rax
jmp 0x18000d9fb
mov rcx, rdi
call fcn.18001dbcc
mov r15, rax
mov qword [rsp + 0x38], r15
lea rbx, [rdi + r15]
mov qword [rsp + 0x48], rbx
mov r8, rdi
mov rdx, rsi
mov rcx, r15
call sub.VCRUNTIME140.dll_memmove
mov qword [rsp + 0x40], rbx
lea rdx, [rsp + 0x38]
mov rcx, r13
call fcn.18000f150
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x18000da6d
mov rdx, qword [rsp + 0x48]
sub rdx, rcx
and rdx, 0xfffffffffffffff0
mov rax, rcx
cmp rdx, 0x1000
jb 0x18000da67
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18000da67
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18001dc08
nop
mov rcx, qword [rbp + 0xa0]
call fcn.18000de80
mov rax, r14
add rsp, 0x138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.18001b150
nop
call fcn.18001bce0
nop
lea rcx, str.unordered_map_set_too_long
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_
int3