Function at 0x180047ad0
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x58]
sub rsp, 0x120
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
mov rax, qword [0x180295fe0]
xor rax, rsp
mov qword [rbp - 0x20], rax
mov r12, rdx
mov rbx, rcx
mov rcx, qword [0x180297f60]
mov rax, qword [rcx + 0x4038]
mov byte [rax + 0xc0], 1
mov r13, qword [rcx + 0x4038]
cmp byte [r13 + 0xc3], 0
jne 0x1800480bf
mov r14, qword [0x180297f60]
xor r8d, r8d
mov rdx, rbx
mov rcx, r13
call fcn.18001b0d0
mov esi, eax
mov dword [rbp - 0x80], esi
lea rcx, [rsp + 0x48]
call fcn.18001ae60
movss xmm2, dword [r13 + 0x114]
addss xmm2, dword [0x1801882a0]
movss xmm0, dword [r13 + 0x110]
movss xmm1, dword [rax]
subss xmm1, dword [r14 + 0x38f8]
addss xmm1, xmm0
movss dword [rbp - 0x78], xmm0
movss xmm0, dword [r13 + 0x114]
movss dword [rbp - 0x74], xmm0
movss dword [rbp - 0x70], xmm1
movss dword [rbp - 0x6c], xmm2
movss xmm7, dword [0x1801882bc]
movss dword [rsp + 0x20], xmm7
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x48]
call fcn.1800163e0
movss xmm0, dword [r13 + 0x114]
movaps xmm2, xmm0
addss xmm2, dword [0x1801882a0]
movss xmm1, dword [r13 + 0x110]
subss xmm2, xmm0
movss xmm0, dword [rax]
addss xmm0, dword [0x18018c5b0]
addss xmm0, xmm1
subss xmm0, xmm1
movss dword [rsp + 0x48], xmm0
movss dword [rsp + 0x4c], xmm2
xorps xmm8, xmm8
xorps xmm1, xmm1
lea rcx, [rsp + 0x48]
call fcn.18001e5b0
xor r9d, r9d
xor r8d, r8d
mov edx, esi
lea rcx, [rbp - 0x78]
call fcn.18001e1e0
test al, al
je 0x1800480bf
movsxd rax, dword [r12]
lea rdx, str.None
lea rcx, [0x18018c448]
lea r8, str.Empty
test eax, eax
cmovne r8, rcx
mov r9, qword [rdx + rax*8]
mov edx, 0x40
lea rcx, [rbp - 0x60]
call fcn.18004a7d0
movss dword [rsp + 0x20], xmm7
mov r9b, 1
xor r8d, r8d
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x68]
call fcn.1800163e0
xor r8d, r8d
mov edx, esi
lea rcx, [rbp - 0x78]
call fcn.18001e3a0
movzx edi, al
mov byte [rsp + 0x40], al
mov edx, dword [0x180298ff0]
mov rcx, qword gs:[0x58]
mov eax, 4
mov r8, qword [rcx + rdx*8]
xor r9d, r9d
lea r15d, [r9 + 8]
movss xmm7, dword [0x180185eec]
mov ecx, dword [rax + r8]
cmp dword [0x180298240], ecx
jg 0x1800480f7
jmp 0x180047ccb
xor r9d, r9d
movzx ecx, sil
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, byte [rbp - 0x7f]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp - 0x7e]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp - 0x7d]
xor rcx, rax
imul rcx, rdx
and rcx, qword [0x180298230]
add rcx, rcx
mov rdx, qword [0x180298218]
mov rax, qword [rdx + rcx*8 + 8]
mov r8, qword [0x180298208]
cmp rax, r8
je 0x180047d46
mov rdx, qword [rdx + rcx*8]
cmp esi, dword [rax + 0x10]
je 0x180047d49
cmp rax, rdx
je 0x180047d46
mov rax, qword [rax + 8]
cmp esi, dword [rax + 0x10]
jne 0x180047d36
jmp 0x180047d49
mov rax, r9
mov rbx, r8
test rax, rax
cmovne rbx, rax
cmp rbx, r8
jne 0x180047e19
mov qword [rsp + 0x78], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xorps xmm1, xmm1
movups xmmword [rsp + 0x68], xmm1
lea r9, [rsp + 0x58]
lea r8, [rbp - 0x80]
lea rdx, [rsp + 0x48]
lea rcx, [0x180298200]
call fcn.180043eb0
mov esi, dword [rbp - 0x80]
movzx ecx, sil
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, byte [rbp - 0x7f]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp - 0x7e]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp - 0x7d]
xor rcx, rax
imul rcx, rdx
and rcx, qword [0x180298230]
add rcx, rcx
mov rdx, qword [0x180298218]
mov rax, qword [rdx + rcx*8 + 8]
mov rbx, qword [0x180298208]
cmp rax, rbx
je 0x180047e10
mov rdx, qword [rdx + rcx*8]
cmp esi, dword [rax + 0x10]
je 0x180047e12
nop dword [rax]
cmp rax, rdx
je 0x180047e10
mov rax, qword [rax + 8]
cmp esi, dword [rax + 0x10]
jne 0x180047e00
jmp 0x180047e12
xor eax, eax
test rax, rax
cmovne rbx, rax
call fcn.18001b310
movss xmm6, dword [rax + 0x10]
mulss xmm6, dword [0x180188274]
cmp dword [r14 + 0x409c], esi
jne 0x180047e45
lea rax, [0x180298140]
movss xmm5, dword [0x180298140]
jmp 0x180047e5e
lea rcx, [0x180298150]
lea rax, [0x180298160]
test dil, dil
cmovne rax, rcx
movss xmm5, dword [rax]
lea rdi, [rbx + 0x24]
subss xmm5, dword [rdi]
mulss xmm5, xmm6
addss xmm5, dword [rdi]
movss xmm4, dword [rax + 4]
subss xmm4, dword [rdi + 4]
mulss xmm4, xmm6
addss xmm4, dword [rdi + 4]
movss xmm3, dword [rax + 8]
subss xmm3, dword [rdi + 8]
mulss xmm3, xmm6
addss xmm3, dword [rdi + 8]
movss xmm2, dword [rax + 0xc]
subss xmm2, dword [rdi + 0xc]
mulss xmm2, xmm6
addss xmm2, dword [rdi + 0xc]
shufps xmm5, xmm5, 0xe1
movss xmm5, xmm4
shufps xmm5, xmm5, 0xc6
movss xmm5, xmm3
shufps xmm5, xmm5, 0x27
movss xmm5, xmm2
shufps xmm5, xmm5, 0x39
movups xmmword [rsp + 0x48], xmm5
movups xmmword [rdi], xmm5
mov rbx, qword [r13 + 0x2a8]
movss xmm6, dword [0x1801f6554]
movaps xmm1, xmm7
lea rcx, [0x1802980b0]
call fcn.18001ad30
xor ecx, ecx
mov dword [rsp + 0x28], ecx
movss dword [rsp + 0x20], xmm6
mov r9d, eax
lea r8, [rbp - 0x70]
lea rdx, [rbp - 0x78]
mov rcx, rbx
call fcn.180031a60
mov dword [rsp + 0x48], 0
movss xmm0, dword [0x180185ee8]
movss dword [rsp + 0x4c], xmm0
movaps xmm1, xmm7
mov rcx, rdi
call fcn.18001ad30
mov ebx, eax
movss xmm0, dword [rbp - 0x78]
addss xmm0, dword [0x180188280]
movss dword [rbp - 0x80], xmm0
movss xmm1, dword [rbp - 0x74]
addss xmm1, xmm8
movss dword [rbp - 0x7c], xmm1
mov rcx, qword [0x1802981c8]
call fcn.1800250a0
mov edx, ebx
xor ecx, ecx
call fcn.180025480
xor ebx, ebx
mov qword [rsp + 0x30], rbx
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
xor r9d, r9d
lea r8, [rbp - 0x60]
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x80]
call fcn.180026c70
lea ecx, [rbx + 1]
call fcn.180024cf0
call fcn.180024bf0
cmp byte [rsp + 0x40], bl
je 0x180047fee
cmp byte [r14 + 0x3868], bl
je 0x180048009
cmp dword [r14 + 0x409c], esi
je 0x180047fd8
xor eax, eax
mov dword [r14 + 0xe50], eax
mov byte [r14 + 0xe54], al
lea rcx, [r14 + 0xb58]
xor edx, edx
mov r8d, 0x29a
call fcn.1800f4500
mov dword [r12], ebx
mov rdx, r13
mov ecx, esi
call fcn.180028d20
xor edx, edx
mov rcx, r13
call fcn.18001a7b0
jmp 0x180048009
cmp byte [r14 + 0x3868], bl
je 0x180048009
cmp dword [r14 + 0x409c], esi
jne 0x1800480bf
call fcn.180017430
cmp dword [r14 + 0x409c], esi
jne 0x1800480bf
xor dil, dil
mov ebx, dword [r12]
xor esi, esi
mov ecx, esi
mov eax, esi
cmp byte [r14 + rax + 0xe50], sil
jne 0x18004805f
inc ecx
inc rax
cmp rax, 5
jl 0x180048023
mov rax, r15
nop dword [rax + rax]
cmp byte [r14 + rax + 0xb58], sil
jne 0x18004805a
inc r15d
inc rax
cmp rax, 0xa5
jle 0x180048040
jmp 0x18004809e
mov ebx, r15d
jmp 0x180048096
test ecx, ecx
je 0x180048091
sub ecx, 1
je 0x18004808a
sub ecx, 1
je 0x180048083
sub ecx, 1
je 0x18004807c
cmp ecx, 1
jne 0x180048096
lea ebx, [rcx + 5]
jmp 0x180048096
mov ebx, 5
jmp 0x180048096
mov ebx, 4
jmp 0x180048096
mov ebx, 2
jmp 0x180048096
mov ebx, 1
mov dil, 1
call fcn.180017430
mov dl, 1
mov ecx, 0x20e
call fcn.18001daf0
test al, al
je 0x1800480b5
mov ebx, esi
call fcn.180017430
mov dword [r12], ebx
movzx eax, dil
jmp 0x1800480c1
xor al, al
mov rcx, qword [rbp - 0x20]
xor rcx, rsp
call fcn.1800f2280
lea r11, [rsp + 0x120]
mov rbx, qword [r11 + 0x50]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, [0x180298240]
call fcn.1800f2058
cmp dword [0x180298240], 0xffffffff
jne 0x180047cc8
mov ecx, 0x40
call fcn.1800f1b0c
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [0x180298208], rax
xor ecx, ecx
mov qword [0x180298218], rcx
xorps xmm0, xmm0
movdqa xmmword [0x180298220], xmm0
mov qword [0x180298230], 7
mov qword [0x180298238], r15
mov dword [0x180298200], 0x3f800000
mov r8, rax
lea edx, [rcx + 0x10]
lea rcx, [0x180298218]
call fcn.180049ed0
nop
lea rcx, [0x180183e60]
call fcn.1800f1eb8
nop
lea rcx, [0x180298240]
call fcn.1800f1ff8
nop
jmp 0x180047cc8