Function at 0x18003f3c0
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0xd0
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
mov rax, qword [0x180118100]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov rbx, rcx
xor r14d, r14d
mov dword [rcx + 0x10c], 0x43160000
mov rax, qword [rcx + 0xc8]
test rax, rax
je 0x18003f97a
movss xmm0, dword [rax + 0x20]
subss xmm0, dword [0x1800fe290]
movss dword [rsp + 0x48], xmm0
mov dword [rsp + 0x4c], 0x41a00000
mov rax, qword [rsp + 0x48]
mov qword [rcx + 0x20], rax
lea rdi, [rcx + 0x50]
lea rsi, [rcx + 0x30]
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rdi + 0x10]
movabs r15, 0x7fffffffffffffff
mov rax, r15
sub rax, rcx
cmp rax, rdx
jb 0x18003f9c1
mov r9, rsi
cmp qword [rsi + 0x18], 0xf
jbe 0x18003f47a
mov r9, qword [rsi]
mov rax, rdi
cmp qword [rdi + 0x18], 0xf
jbe 0x18003f487
mov rax, qword [rdi]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x58]
call fcn.18002e9e0
nop
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0xf
cmova rcx, qword [rsp + 0x58]
movsx eax, byte [rcx]
mov ebp, 0x811c9dc5
test al, al
jne 0x18003f4c2
mov eax, ebp
jmp 0x18003f4d2
xor eax, ebp
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
add eax, 0x76c14e56
mov dword [rsp + 0x40], eax
xorps xmm9, xmm9
xorps xmm2, xmm2
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x48]
call fcn.180035b00
nop
lea rcx, [rsp + 0x58]
call fcn.1800304d0
mov rax, qword [rsi + 0x10]
mov rcx, qword [rdi + 0x10]
sub r15, rax
cmp r15, rcx
jb 0x18003f9bb
cmp qword [rsi + 0x18], 0xf
jbe 0x18003f51a
mov rsi, qword [rsi]
cmp qword [rdi + 0x18], 0xf
jbe 0x18003f524
mov rdi, qword [rdi]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rax
mov r9, rsi
lea rcx, [rsp + 0x58]
call fcn.18002e9e0
nop
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 0xf
cmova rcx, qword [rsp + 0x58]
movsx eax, byte [rcx]
test al, al
je 0x18003f56b
xor eax, ebp
imul edx, eax, 0x1000193
inc rcx
call fcn.180036e90
mov ebp, eax
lea eax, [rbp - 0x4e2a81e7]
mov dword [rsp + 0x40], eax
xorps xmm2, xmm2
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x78]
call fcn.180035b00
nop
lea rcx, [rsp + 0x58]
call fcn.1800304d0
movss xmm7, dword [rbx + 0x18]
movss xmm4, dword [rbx + 0x24]
movss xmm8, dword [rbx + 0x1c]
addss xmm8, dword [0x1800fe27c]
addss xmm8, xmm4
mov byte [rbx + 0x118], 0
movss xmm5, dword [rbx + 0x10c]
movaps xmm2, xmm5
movss xmm10, dword [rsp + 0x48]
mulss xmm2, xmm10
subss xmm2, dword [0x1800fe1e8]
cvttss2si ecx, xmm8
cvttss2si edx, xmm7
mov rax, qword [0x1801b42e0]
movss xmm3, dword [rax]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
comiss xmm3, xmm0
jbe 0x18003f630
movss xmm1, dword [rax + 4]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x18003f630
cvttss2si eax, dword [rbx + 0x20]
add eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm3
jbe 0x18003f630
cvttss2si eax, xmm2
add eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x18003f630
mov al, 1
jmp 0x18003f632
xor al, al
mov byte [rbx + 0x11a], al
mov rcx, qword [rbx + 0xf8]
xorps xmm0, xmm0
test rcx, rcx
js 0x18003f64e
cvtsi2ss xmm0, rcx
jmp 0x18003f663
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
mulss xmm0, xmm4
comiss xmm0, xmm5
seta r11b
mov byte [rbx + 0x110], r11b
test r11b, r11b
jne 0x18003f682
movss dword [rbx + 0x10c], xmm0
mov rcx, rbx
call fcn.1800363a0
test al, al
jne 0x18003f741
movss xmm1, dword [rbx + 0x18]
addss xmm1, xmm9
movss xmm0, dword [rbx + 0x1c]
addss xmm0, dword [0x1800fe27c]
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x48], rax
cvttss2si ecx, xmm0
cvttss2si edx, xmm1
mov rax, qword [0x1801b42e0]
movss xmm2, dword [rax]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm0
jbe 0x18003f73a
movss xmm1, dword [rax + 4]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x18003f73a
cvttss2si eax, dword [rsp + 0x48]
add eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm2
jbe 0x18003f73a
cvttss2si eax, dword [rsp + 0x4c]
add eax, ecx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x18003f73a
mov byte [rbx + 0x99], 1
mov rax, qword [0x1801b42e0]
cmp byte [rax + 9], 0
je 0x18003f741
cmp byte [rax + 0x109], 0
jne 0x18003f741
mov rax, rbx
mov qword [0x1801bdb08], rbx
mov byte [rbx + 0xd0], 1
jmp 0x18003f748
mov byte [rbx + 0x99], 0
mov rax, qword [0x1801bdb08]
movss xmm5, dword [0x1800fe16c]
cmp byte [rbx + 0xd0], 0
jne 0x18003f76e
cmp rax, rbx
jne 0x18003f76e
comiss xmm5, xmm10
jb 0x18003f76e
mov rax, r14
mov qword [0x1801bdb08], rax
mov dword [rbx + 0x114], r14d
cmp rax, rbx
jne 0x18003f945
xorps xmm1, xmm1
cmp qword [rbx + 0xf8], 0
jbe 0x18003f8a7
addss xmm7, xmm9
cvttss2si r9d, xmm7
movd xmm3, r9d
cvtdq2ps xmm3, xmm3
mov r8, r14
movss xmm4, dword [rsp + 0x78]
nop word [rax + rax]
movd xmm0, r14d
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [rbx + 0x24]
subss xmm0, xmm4
addss xmm0, xmm8
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x48], rax
cvttss2si edx, xmm0
mov rcx, qword [0x1801b42e0]
movss xmm2, dword [rcx]
comiss xmm2, xmm3
jbe 0x18003f821
movss xmm1, dword [rcx + 4]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x18003f821
cvttss2si eax, dword [rsp + 0x48]
add eax, r9d
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm2
jbe 0x18003f821
cvttss2si eax, dword [rsp + 0x4c]
add eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm1
jbe 0x18003f821
mov dl, 1
jmp 0x18003f823
xor dl, dl
movzx eax, byte [rbx + 0x11a]
test al, al
je 0x18003f87d
test dl, dl
je 0x18003f86f
cmp byte [rcx + 9], 0
je 0x18003f86f
cmp byte [rcx + 0x109], 0
jne 0x18003f86f
mov rcx, qword [rbx + 0xf0]
add rcx, r8
mov rax, qword [rbx + 0xe8]
dec rax
and rcx, rax
mov rax, qword [rbx + 0xe0]
mov rcx, qword [rax + rcx*8]
mov rdx, qword [rcx + 0x20]
cmp byte [rdx], 0
sete al
mov byte [rdx], al
mov byte [0x1801bdcb2], 0
movzx eax, byte [rbx + 0x11a]
movss xmm1, dword [rbx + 0x114]
addss xmm1, dword [rbx + 0x24]
movss dword [rbx + 0x114], xmm1
inc r14d
movsxd r8, r14d
cmp r8, qword [rbx + 0xf8]
jb 0x18003f7b0
jmp 0x18003f8ae
movzx eax, byte [rbx + 0x11a]
test r11b, r11b
je 0x18003f945
movss xmm2, dword [rbx + 0x10c]
movaps xmm0, xmm2
maxss xmm0, xmm1
cvttss2si ecx, xmm0
test al, al
je 0x18003f904
xorps xmm0, xmm0
movsd xmm1, qword [0x1801bdca8]
ucomisd xmm1, xmm0
jp 0x18003f8e1
je 0x18003f904
mulsd xmm1, qword [0x1800fe210]
movss xmm0, dword [rbx + 0x104]
cvtps2pd xmm0, xmm0
addsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [rbx + 0x104], xmm0
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
subss xmm1, xmm2
movss dword [rsp + 0x48], xmm1
mov dword [rsp + 0x40], 0
lea rdx, [rbx + 0x104]
movss xmm0, dword [rdx]
lea rcx, [rsp + 0x40]
comiss xmm9, xmm0
cmovbe rcx, rdx
lea rax, [rsp + 0x48]
comiss xmm0, xmm1
cmovbe rax, rcx
mov eax, dword [rax]
mov dword [rdx], eax
cmp byte [rbx + 0x11a], 0
je 0x18003f957
cmp byte [rbx + 0x99], 0
je 0x18003f97a
comiss xmm10, xmm5
jb 0x18003f97a
mov rax, qword [0x1801b42e0]
cmp byte [rax + 9], 0
je 0x18003f97a
cmp byte [rax + 0x109], 0
jne 0x18003f97a
mov byte [rbx + 0xd0], 0
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.1800921e0
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
movaps xmm7, xmmword [r11 - 0x10]
movaps xmm8, xmmword [r11 - 0x20]
movaps xmm9, xmmword [r11 - 0x30]
movaps xmm10, xmmword [r11 - 0x40]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
call fcn.180030260
int3
call fcn.180030260
int3