Function at 0x203d10c0
Capabilities:
Hash data using fnv

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rdx
mov rdi, rcx
movzx eax, byte [r8]
mov rcx, qword [0x2059f3c0]
movabs rdx, 0xd82a9612d76ec515
xor rdx, rcx
movabs r9, 0x582a9612d76ec515
and r9, rcx
lea rdx, [rdx + r9*2]
xor rdx, rax
movabs rax, 0x100000001b3
imul rdx, rax
movzx r9d, byte [r8 + 1]
xor r9, rdx
imul r9, rax
movzx edx, byte [r8 + 2]
mov r10, rdx
not r10
and r10, r9
not r9d
and r9d, edx
or r10, r9
imul r10, rax
movzx r9d, byte [r8 + 3]
xor r9, r10
movabs rdx, 0xc37fa2e534ca3a3
add rdx, rcx
imul r9, rdx
movzx r10d, byte [r8 + 4]
xor r10, r9
imul r10, rax
movzx r9d, byte [r8 + 5]
mov r11d, r10d
xor r11d, r9d
and r11d, r9d
not r9
and r9, r10
or r9, r11
imul r9, rax
movzx r10d, byte [r8 + 6]
xor r10, r9
imul r10, rax
movzx r14d, byte [r8 + 7]
mov eax, r10d
not eax
and eax, r14d
xor r14, r10
and r14, r10
or r14, rax
imul r14, rdx
mov rax, qword [rdi + 0x30]
and rax, r14
mov r15, qword [rdi + 8]
add cl, 0xf1
shl rax, cl
mov rdx, qword [rdi + 0x18]
mov rcx, rax
not rcx
mov r9, rax
xor r9, 1
movabs r10, 0x1ffffffffffffffe
and r10, rcx
or r10, r9
not r10
or r10, r9
mov rcx, qword [rdx + r10*8]
cmp rcx, r15
je 0x203d1226
mov r9, qword [r8]
cmp r9, qword [rcx + 0x10]
je 0x203d120f
mov rax, qword [rdx + rax*8]
nop word cs:[rax + rax]
cmp rcx, rax
je 0x203d1223
mov rcx, qword [rcx + 8]
cmp r9, qword [rcx + 0x10]
jne 0x203d1200
mov qword [rsi], rcx
movzx eax, byte [0x2059f3bc]
add al, 0xac
mov byte [rsi + 8], al
jmp 0x203d1491
mov r15, rcx
movabs rax, 0x3ffffffffffffff
cmp qword [rdi + 0x10], rax
je 0x203d14a1
mov eax, 0xffffc3a5
add eax, dword [0x2059f424]
lea rdx, [rdi + 8]
cdqe
add rax, qword [0x2059f438]
lea rcx, [rbp - 0x10]
call qword [case.0x2010e313.0]
mov rax, qword [rdi + 0x10]
inc rax
js 0x203d126c
cvtsi2ss xmm0, rax
jmp 0x203d1281
mov rcx, rax
shr rcx, 1
and eax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
movss xmm1, dword [rdi]
mov rbx, qword [rdi + 0x38]
test rbx, rbx
js 0x203d1295
cvtsi2ss xmm2, rbx
jmp 0x203d12ac
mov rax, rbx
shr rax, 1
mov ecx, ebx
and ecx, 1
or rcx, rax
cvtsi2ss xmm2, rcx
addss xmm2, xmm2
movaps xmm3, xmm0
divss xmm3, xmm2
ucomiss xmm3, xmm1
jbe 0x203d1377
divss xmm0, xmm1
call fcn.2045cabc
cvttss2si rax, xmm0
mov rcx, rax
subss xmm0, dword [0x2049029c]
cvttss2si rdx, xmm0
sar rcx, 0x3f
and rdx, rcx
or rdx, rax
cmp rdx, 9
mov eax, 8
cmovae rax, rdx
cmp rbx, rax
jae 0x203d1313
lea rcx, [rbx*8]
cmp rcx, rax
cmovb rcx, rax
cmp rbx, 0x200
cmovae rcx, rax
mov rbx, rcx
mov rcx, rdi
mov rdx, rbx
call fcn.203d18d0
mov rax, qword [rdi + 0x30]
mov rcx, r14
xor rcx, rax
not rcx
and rcx, rax
mov r15, qword [rdi + 8]
mov r8, qword [rdi + 0x18]
mov rax, rcx
shl rax, 4
mov rax, qword [r8 + rax + 8]
cmp rax, r15
je 0x203d1377
mov rdx, qword [rbp - 8]
mov rdx, qword [rdx + 0x10]
cmp rdx, qword [rax + 0x10]
je 0x203d136f
add rcx, rcx
mov rcx, qword [r8 + rcx*8]
nop dword [rax]
cmp rax, rcx
je 0x203d1374
mov rax, qword [rax + 8]
cmp rdx, qword [rax + 0x10]
jne 0x203d1360
mov r15, qword [rax]
jmp 0x203d1377
mov r15, rax
mov rax, qword [rbp - 8]
mov qword [rbp - 8], 0
mov rcx, qword [r15 + 8]
inc qword [rdi + 0x10]
mov qword [rax], r15
mov qword [rax + 8], rcx
mov qword [rcx], rax
mov qword [r15 + 8], rax
mov r9, qword [rdi + 0x18]
and r14, qword [rdi + 0x30]
shl r14, 4
lea rdx, [r9 + r14]
lea r8, [r9 + r14]
add r8, 8
mov r9, qword [r9 + r14]
cmp r9, qword [rdi + 8]
je 0x203d13ca
cmp r9, r15
je 0x203d13d0
mov rdx, r8
cmp qword [r8], rcx
jne 0x203d13d3
jmp 0x203d13d0
mov qword [rdx], rax
mov rdx, r8
mov qword [rdx], rax
mov qword [rsi], rax
mov byte [rsi + 8], 1
mov rdi, qword [rbp - 8]
test rdi, rdi
je 0x203d1491
mov rax, qword [rdi + 0x30]
cmp rax, 0x10
jb 0x203d1448
mov rcx, qword [rdi + 0x18]
lea rdx, [rax + 1]
movabs r8, 0xc37f92e534cb1ef
add r8, qword [0x2059f3c0]
cmp rdx, r8
jbe 0x203d142e
mov r8, qword [rcx - 8]
sub rcx, r8
add rcx, 0xfffffffffffffff8
cmp rcx, 0x20
jae 0x203d14d3
add rax, 0x28
mov rdx, rax
mov rcx, r8
mov eax, 0xffffc3a5
add eax, dword [0x2059f420]
cdqe
add rax, qword [0x2059f448]
call qword [case.0x2010e313.0]
mov qword [rdi + 0x28], 0
movabs rax, 0xc37f92e534ca1ff
add rax, qword [0x2059f3c0]
mov qword [rdi + 0x30], rax
mov byte [rdi + 0x18], 0
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x203d1491
mov eax, 0xffffc3a5
add eax, dword [0x2059f420]
cdqe
add rax, qword [0x2059f448]
mov edx, 0x40
call qword [case.0x2010e313.0]
mov rax, rsi
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
mov eax, 0xffffc3a5
add eax, dword [0x2059f42c]
cdqe
add rax, qword [0x2059f440]
xor ecx, ecx
xor edx, edx
mov r8d, 0xbf20985c
mov r9d, 0xa3b96418
call qword [case.0x2010e313.0]
mov rcx, rax
call fcn.20429544
call fcn.20407a4c
int3