Function at 0x140102860
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x1402f2018]
xor rax, rsp
mov qword [rbp - 0x28], rax
mov rsi, rcx
mov qword [rsp + 0x60], rcx
mov rax, qword [rcx + 0x180]
cmp byte [rax + 0x2b0], 0
jne 0x140102945
mov rbx, qword [0x1402fb580]
movdqa xmm0, xmmword [str.katarinarsound]
movdqu xmmword [rbp - 0x60], xmm0
movd eax, xmm0
mov edx, 0x811c9dc5
test al, al
je 0x140102920
movzx eax, al
xor eax, edx
imul edx, eax, 0x1000193
lea rcx, [rbp - 0x5f]
call fcn.1400356d0
mov edx, eax
mov rcx, qword [rbx + 0x180]
mov rax, qword [rbx + 0x188]
cmp rcx, rax
je 0x140102945
cmp dword [rcx + 0x30], edx
je 0x140103206
add rcx, 0x50
cmp rcx, rax
jne 0x140102933
call fcn.14013e9d0
mov rcx, qword [0x1402fb580]
movsd xmm0, qword [rcx + 8]
movsd qword [rsp + 0x50], xmm0
mov ecx, dword [rcx + 0x10]
mov dword [rsp + 0x58], ecx
lea r9, [rsp + 0x50]
movss xmm2, dword [0x1402c1abc]
lea rdx, [rbp - 0x40]
mov rcx, rax
call fcn.1401b60a0
nop
mov r12, qword [rbp - 0x40]
mov r14, qword [rbp - 0x38]
mov qword [rbp - 0x80], r14
cmp r12, r14
je 0x1401031fd
movss xmm10, dword [0x1402c1a84]
movss xmm13, dword [0x1402c19e4]
movss xmm11, dword [0x1402c1a38]
movss xmm12, dword [0x1402c1a20]
movss xmm15, dword [0x1402c1a18]
movss xmm8, dword [0x1402c1450]
movss xmm14, dword [0x1402c1a2c]
mov rbx, qword [r12]
test rbx, rbx
je 0x1401031f0
cmp byte [rbx + 0xa7], 0
je 0x1401031f0
mov rcx, rbx
call fcn.14006a560
test al, al
jne 0x1401031f0
cmp byte [rbx + 0xa5], al
je 0x1401031f0
cmp byte [rbx + 0xa4], al
je 0x1401031f0
mov rax, qword [rsi + 0x1e0]
mov rbx, qword [0x1402fb580]
cmp byte [rax + 0x2b0], 0
je 0x140102da0
cmp dword [rbx + 0x378], 0
jbe 0x140102a44
cmp dword [rbx + 0x374], 0
je 0x140102da0
movss xmm0, dword [0x1402fb3b0]
comiss xmm0, dword [rbx + 0x380]
jb 0x140102da0
mov eax, dword [rbx + 0x370]
test eax, eax
je 0x140102da0
dec eax
movss xmm0, dword [rbx + 0x30]
comiss xmm0, dword [rbx + rax*4 + 0x3a8]
jb 0x140102da0
mov rcx, rsi
call fcn.140102260
test eax, eax
jle 0x140102da0
mov r13, qword [rsi + 0x230]
mov rax, qword [rsi + 0x238]
mov qword [rsp + 0x30], rax
cmp r13, rax
je 0x140102da0
lea r15, [r13 + 0xc]
nop dword [rax]
mov rdi, qword [r12]
movsd xmm0, qword [rbx + 8]
movss xmm1, dword [rdi + 8]
subss xmm1, xmm0
movss xmm2, dword [rdi + 0x10]
subss xmm2, dword [rbx + 0x10]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x140102ae9
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x140102af6
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov rax, qword [rsp + 0x30]
comiss xmm10, xmm0
jb 0x140102d7d
movsd xmm0, qword [rdi + 8]
movss xmm7, dword [r15]
movaps xmm1, xmm7
subss xmm1, xmm0
movss xmm6, dword [r15 + 8]
movaps xmm2, xmm6
subss xmm2, dword [rdi + 0x10]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x140102b3c
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x140102b44
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm13, xmm0
jbe 0x140102d78
movsd xmm0, qword [rbx + 8]
subss xmm7, xmm0
subss xmm6, dword [rbx + 0x10]
mulss xmm6, xmm6
mulss xmm7, xmm7
addss xmm6, xmm7
xorps xmm0, xmm0
ucomiss xmm0, xmm6
ja 0x140102b79
xorps xmm0, xmm0
sqrtss xmm0, xmm6
jmp 0x140102b81
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm11, xmm0
jbe 0x140102d78
mov rdx, rdi
mov rcx, rsi
call fcn.1401023d0
mov rax, qword [r12]
comiss xmm0, dword [rax + 0x28]
jbe 0x140102d71
movsd xmm8, qword [r15]
movsd xmm6, qword [rax + 8]
movss xmm7, dword [rax + 0x10]
movss xmm9, dword [r15 + 8]
subss xmm7, xmm9
movsd qword [rbp - 0x60], xmm8
subss xmm6, xmm8
movaps xmm1, xmm7
mulss xmm1, xmm7
movaps xmm0, xmm6
mulss xmm0, xmm6
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140102bec
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x140102bf4
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
divss xmm6, xmm0
divss xmm7, xmm0
mulss xmm7, dword [0x1402c1998]
mulss xmm6, dword [0x1402c1998]
addss xmm9, xmm7
addss xmm8, xmm6
mov rbx, qword [0x1402fb580]
movss xmm0, dword [rbx + 8]
subss xmm0, xmm8
movss xmm1, dword [rbx + 0x10]
subss xmm1, xmm9
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140102c4e
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x140102c56
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm12, xmm0
jbe 0x140102d78
call fcn.14013edd0
mov r14, rax
movss dword [rsp + 0x50], xmm8
movss xmm0, dword [rbp - 0x5c]
movss dword [rsp + 0x54], xmm0
movss dword [rsp + 0x58], xmm9
mov rcx, qword [0x1402fb490]
cmp byte [rcx + 0x6c], 0
jne 0x140102d71
mov rsi, qword [0x1402fb580]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], 0
mov rdx, qword [0x1402fe798]
sub rdx, qword [0x1402fe790]
je 0x140102cef
lea rcx, [rsp + 0x68]
call fcn.140014500
mov rdi, qword [rsp + 0x68]
mov rdx, qword [0x1402fe790]
mov rbx, qword [0x1402fe798]
sub rbx, rdx
mov r8, rbx
mov rcx, rdi
call sub.VCRUNTIME140.dll_memmove
lea rax, [rdi + rbx]
mov qword [rsp + 0x70], rax
lea rdx, [rsp + 0x68]
lea rcx, [rsi + 0x170]
call fcn.140066940
test al, al
jne 0x140102d71
mov rax, qword [0x1402fb4f0]
cmp dword [rax + 0x154], 1
je 0x140102d71
mov rcx, qword [0x1402fb9c0]
test rcx, rcx
jne 0x140102d40
mov ecx, 0x36e490
call fcn.14022869c
mov qword [rbp - 0x50], rax
mov rcx, rax
call fcn.1401d6670
mov rcx, rax
mov qword [0x1402fb9c0], rax
movsd xmm0, qword [rsp + 0x50]
movsd qword [rbp - 0x70], xmm0
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x68], eax
lea r8, [rbp - 0x70]
lea rdx, [rbp - 0x48]
call fcn.1401d5b90
xor r9d, r9d
mov r8, qword [rax]
lea edx, [r9 + 2]
mov rcx, r14
call fcn.14006d7b0
mov rbx, qword [0x1402fb580]
mov rax, qword [rsp + 0x30]
add r13, 0x18
add r15, 0x18
cmp r13, rax
mov rsi, qword [rsp + 0x60]
jne 0x140102ab0
movss xmm8, dword [0x1402c1450]
mov r14, qword [rbp - 0x80]
mov rax, qword [rsi + 0x1d0]
cmp byte [rax + 0x2b0], 0
je 0x140102ea0
cmp dword [rbx + 0x2a8], 0
jbe 0x140102dca
cmp dword [rbx + 0x2a4], 0
je 0x140102ea0
movss xmm0, dword [0x1402fb3b0]
comiss xmm0, dword [rbx + 0x2b0]
jb 0x140102ea0
mov eax, dword [rbx + 0x2a0]
test eax, eax
je 0x140102ea0
dec eax
movss xmm0, dword [rbx + 0x30]
comiss xmm0, dword [rbx + rax*4 + 0x2d8]
jb 0x140102ea0
mov rdi, qword [r12]
movsd xmm0, qword [rbx + 8]
movss xmm1, dword [rdi + 8]
subss xmm1, xmm0
movss xmm2, dword [rdi + 0x10]
subss xmm2, dword [rbx + 0x10]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x140102e3b
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x140102e43
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm15, xmm0
jb 0x140102ea0
mov eax, dword [rbx + 0x2a0]
dec eax
movss xmm2, dword [rsi + rax*4 + 0x38]
movss xmm0, dword [rbx + 0x70]
movaps xmm1, xmm0
mulss xmm1, dword [rbx + 0x74]
addss xmm1, xmm0
mulss xmm1, xmm8
addss xmm2, xmm1
mov rdx, rdi
mov rcx, rbx
call fcn.14006ef70
mov rax, qword [r12]
comiss xmm0, dword [rax + 0x28]
jbe 0x140102e99
call fcn.14013edd0
mov r8, qword [r12]
xor edx, edx
mov rcx, rax
call fcn.14006df00
mov rbx, qword [0x1402fb580]
mov rax, qword [rsi + 0x1d8]
cmp byte [rax + 0x2b0], 0
je 0x140102fd1
cmp dword [rbx + 0x378], 0
jbe 0x140102eca
cmp dword [rbx + 0x374], 0
je 0x140102fd1
movss xmm0, dword [0x1402fb3b0]
comiss xmm0, dword [rbx + 0x380]
jb 0x140102fd1
mov eax, dword [rbx + 0x370]
test eax, eax
je 0x140102fd1
dec eax
movss xmm0, dword [rbx + 0x30]
comiss xmm0, dword [rbx + rax*4 + 0x3a8]
jb 0x140102fd1
mov rdi, qword [r12]
movsd xmm0, qword [rbx + 8]
movss xmm1, dword [rdi + 8]
subss xmm1, xmm0
movss xmm2, dword [rdi + 0x10]
subss xmm2, dword [rbx + 0x10]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x140102f3b
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x140102f43
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm14, xmm0
jb 0x140102fd1
mov eax, dword [rbx + 0x370]
dec eax
movss xmm0, dword [rbx + 0x70]
movaps xmm2, xmm0
mulss xmm2, dword [rbx + 0x74]
addss xmm2, xmm0
movss xmm7, dword [rbx + 0x60]
addss xmm7, dword [rbx + 0x5c]
mulss xmm2, dword [0x1402c1444]
mulss xmm7, dword [0x1402c1454]
addss xmm2, dword [rsi + rax*4 + 0x4c]
mov rdx, rdi
mov rcx, rbx
call fcn.14006ef70
movaps xmm6, xmm0
movaps xmm2, xmm7
mov rdx, rdi
mov rcx, qword [0x1402fb580]
call fcn.14006ef70
addss xmm0, xmm6
mov rax, qword [r12]
comiss xmm0, dword [rax + 0x28]
jbe 0x140102fca
call fcn.14013edd0
mov r8, qword [r12]
mov edx, 2
mov rcx, rax
call fcn.14006df00
mov rbx, qword [0x1402fb580]
mov rax, qword [rsi + 0x1e8]
cmp byte [rax + 0x2b0], 0
je 0x1401031f0
cmp dword [rbx + 0x378], 0
jbe 0x140102ffb
cmp dword [rbx + 0x374], 0
je 0x1401031f0
movss xmm0, dword [0x1402fb3b0]
comiss xmm0, dword [rbx + 0x380]
jb 0x1401031f0
mov eax, dword [rbx + 0x370]
test eax, eax
je 0x1401031f0
dec eax
movss xmm0, dword [rbx + 0x30]
comiss xmm0, dword [rbx + rax*4 + 0x3a8]
jb 0x1401031f0
cmp dword [rbx + 0x2a8], 0
jbe 0x140103049
cmp dword [rbx + 0x2a4], 0
je 0x1401031f0
movss xmm0, dword [0x1402fb3b0]
comiss xmm0, dword [rbx + 0x2b0]
jb 0x1401031f0
mov eax, dword [rbx + 0x2a0]
test eax, eax
je 0x1401031f0
dec eax
movss xmm0, dword [rbx + 0x30]
comiss xmm0, dword [rbx + rax*4 + 0x2d8]
jb 0x1401031f0
mov eax, dword [rbx + 0x2a0]
dec eax
movss xmm0, dword [rbx + 0x70]
movaps xmm2, xmm0
mulss xmm2, dword [rbx + 0x74]
addss xmm2, xmm0
mulss xmm2, xmm8
addss xmm2, dword [rsi + rax*4 + 0x38]
mov rdx, qword [r12]
mov rcx, rbx
call fcn.14006ef70
mov rbx, qword [r12]
subss xmm0, dword [0x1402c18cc]
comiss xmm0, dword [rbx + 0x28]
jbe 0x1401031f0
mov rdi, qword [0x1402fb580]
movsd xmm0, qword [rdi + 8]
movss xmm7, dword [rbx + 8]
movaps xmm1, xmm7
subss xmm1, xmm0
movss xmm6, dword [rbx + 0x10]
movaps xmm2, xmm6
subss xmm2, dword [rdi + 0x10]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x140103109
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x140103111
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm0, xmm15
jbe 0x1401031f0
movsd xmm0, qword [rdi + 8]
subss xmm7, xmm0
subss xmm6, dword [rdi + 0x10]
mulss xmm6, xmm6
mulss xmm7, xmm7
addss xmm6, xmm7
xorps xmm0, xmm0
ucomiss xmm0, xmm6
ja 0x140103146
xorps xmm0, xmm0
sqrtss xmm0, xmm6
jmp 0x14010314e
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm10, xmm0
jbe 0x1401031f0
mov rdx, rbx
call fcn.1401025b0
mov rbx, rax
test rax, rax
je 0x1401031f0
cmp byte [rax + 0xa7], 0
je 0x1401031f0
mov rcx, rax
call fcn.14006a560
test al, al
jne 0x1401031f0
cmp byte [rbx + 0xa5], al
je 0x1401031f0
cmp byte [rbx + 0xa4], al
je 0x1401031f0
mov rax, qword [0x1402fb580]
movsd xmm0, qword [rax + 8]
movss xmm2, dword [rbx + 8]
subss xmm2, xmm0
movss xmm1, dword [rbx + 0x10]
subss xmm1, dword [rax + 0x10]
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x1401031cd
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x1401031d5
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
comiss xmm14, xmm0
jbe 0x1401031f0
call fcn.14013edd0
mov r8, rbx
mov edx, 2
mov rcx, rax
call fcn.14006df00
add r12, 8
cmp r12, r14
jne 0x1401029d1
lea rcx, [rbp - 0x40]
call fcn.140033e60
mov rcx, qword [rbp - 0x28]
xor rcx, rsp
call fcn.1402283f0
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret