Function at 0x14004d7b0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf20]
mov eax, 0x1020
call fcn.140286ca0
sub rsp, rax
movaps xmmword [rsp + 0x1010], xmm6
movaps xmmword [rsp + 0x1000], xmm7
movaps xmmword [rsp + 0xff0], xmm8
mov rax, qword [0x140353240]
xor rax, rsp
mov qword [rbp + 0xee0], rax
movaps xmm8, xmm3
movaps xmm7, xmm2
movaps xmm6, xmm1
mov r13, rcx
xor edx, edx
mov r8d, 0xe80
lea rcx, [rbp + 0x60]
call sub.VCRUNTIME140.dll_memset
movss xmm2, dword [rbp + 0xf70]
subss xmm2, xmm7
subss xmm8, xmm6
movss dword [rbp - 0x28], xmm6
movaps xmm0, xmm8
addss xmm0, xmm6
movss dword [rbp - 0x24], xmm0
movss dword [rbp - 0x20], xmm7
movaps xmm1, xmm2
addss xmm1, xmm7
movss dword [rbp - 0x1c], xmm1
movss dword [rbp - 0x18], xmm8
movss dword [rbp - 0x14], xmm2
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x60]
call fcn.140051df0
nop
mov rdi, qword [r13 + 0xd8]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14004d8fb
movss xmm6, dword [0x140310f44]
nop dword [rax]
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x14004d8f0
mov r8, qword [rbx + 0x18]
test r8, r8
je 0x14004d8f0
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14004d8b1
cmp byte [rax + 2], 0
je 0x14004d8f0
mov rax, qword [rcx]
lea rdx, [rbp - 0x28]
call qword [rax + 0x10]
mov eax, dword [rbx + 0x10]
mov dword [rbp - 0x10], eax
movups xmm0, xmmword [rbp - 0x28]
movups xmmword [rbp - 0xc], xmm0
movsd xmm1, qword [rbp - 0x18]
movsd qword [rbp + 4], xmm1
movss dword [rsp + 0x20], xmm6
lea r9, [rbp + 0xec8]
xor r8d, r8d
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x60]
call fcn.140051540
mov rax, qword [rbx]
mov rbx, rax
cmp rax, rdi
jne 0x14004d890
cmp byte [0x14037bffb], 0
je 0x14004dab2
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x28], xmm0
mov qword [rbp - 0x18], rax
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x60]
call fcn.140050b30
nop
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x18], xmm0
mov qword [rbp + 0x28], rax
lea rdx, [rbp + 0x18]
call fcn.14003db20
nop
mov rax, qword [rbp + 0x20]
mov rbx, qword [rbp + 0x18]
sub rax, rbx
sar rax, 2
cmp rax, 1
jne 0x14004da45
call fcn.14003b940
mov edi, eax
mov rdx, rbx
lea rcx, [0x14037d360]
call fcn.14003aab0
test al, al
jne 0x14004d971
xor ebx, ebx
jmp 0x14004d9b6
mov r8, rbx
lea rdx, [rsp + 0x70]
lea rcx, [0x14037d360]
call fcn.14003c580
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x18]
test rdx, rdx
jne 0x14004d995
xor ebx, ebx
jmp 0x14004d9b6
mov rax, qword [rdx]
cmp dword [rax + rdi*4], 0
jne 0x14004d9a2
xor ebx, ebx
jmp 0x14004d9b6
mov rdx, qword [rdx + 0x18]
mov rax, qword [rcx + 0x20]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + rdi*8]
lea rbx, [rax + rcx*8]
xorps xmm0, xmm0
movups xmmword [rbp - 0x10], xmm0
mov qword [rbp], 0
mov qword [rbp + 8], 0
mov r8d, 0x10
lea rdx, str.CameraController
lea rcx, [rbp - 0x10]
call fcn.140022740
lea rdx, [rbp - 0x10]
mov rcx, rbx
call fcn.14003b760
lea rdi, [rax + 0x38]
mov rax, qword [rdi]
cmp rax, qword [rdi + 8]
je 0x14004da00
mov qword [rdi + 8], rax
mov rsi, qword [rbp - 0x20]
mov rbx, qword [rbp - 0x28]
cmp rbx, rsi
je 0x14004da45
nop dword [rax]
mov rdx, qword [rdi + 8]
cmp rdx, qword [rdi + 0x10]
je 0x14004da31
movups xmm0, xmmword [rbx]
movups xmmword [rdx], xmm0
movsd xmm1, qword [rbx + 0x10]
movsd qword [rdx + 0x10], xmm1
add qword [rdi + 8], 0x18
jmp 0x14004da3c
mov r8, rbx
mov rcx, rdi
call fcn.1400505d0
add rbx, 0x18
cmp rbx, rsi
jne 0x14004da10
lea rcx, [rbp + 0x18]
call fcn.140022510
nop
mov r8, qword [rbp - 0x28]
test r8, r8
je 0x14004dab2
mov rcx, qword [rbp - 0x18]
sub rcx, r8
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*2]
shl rdx, 3
mov rax, r8
cmp rdx, 0x1000
jb 0x14004daaa
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14004daaa
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r8
call fcn.14028653c
mov rbx, qword [r13]
mov rdi, qword [r13 + 8]
cmp rbx, rdi
je 0x14004dada
nop
lea rcx, [rbx + 0x28]
call fcn.140020e40
add rbx, 0x50
cmp rbx, rdi
jne 0x14004dac0
mov rax, qword [r13]
mov qword [r13 + 8], rax
lea r14, [r13 + 0x20]
mov rcx, r14
call fcn.14004e490
lea rcx, [r13 + 0x60]
call fcn.14004e3d0
lea rbx, [r13 + 0xa0]
mov rax, qword [rbx]
cmp rax, qword [rbx + 8]
je 0x14004db03
mov qword [rbx + 8], rax
lea r15, [r13 + 0xb8]
mov rax, qword [r15]
cmp rax, qword [r15 + 8]
je 0x14004db17
mov qword [r15 + 8], rax
mov r8, rbx
xor edx, edx
lea rcx, [rbp + 0x60]
call fcn.140050530
mov rax, qword [rbx]
mov qword [rsp + 0x58], rax
mov rcx, qword [rbx + 8]
mov qword [rsp + 0x60], rcx
cmp rax, rcx
je 0x14004e038
movabs r10, 0xcbf29ce484222325
movabs r9, 0x100000001b3
movss xmm6, dword [0x1403110f4]
nop dword [rax + rax]
mov eax, dword [rax]
cmp eax, 0xffffffff
je 0x14004e021
nop dword [rax + rax]
movsxd rcx, eax
mov qword [rsp + 0x68], rcx
mov rax, qword [rbp + 0xeb0]
movsxd rax, dword [rax + rcx*8 + 4]
imul rcx, rax, 0x1c
add rcx, qword [rbp + 0xe80]
mov r8d, dword [rcx]
mov dword [rbp - 0x30], r8d
mov eax, r8d
shr eax, 8
movzx edx, al
movzx eax, r8b
xor rax, r10
imul rax, r9
xor rdx, rax
imul rdx, r9
mov eax, r8d
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r9
mov eax, r8d
shr rax, 0x18
xor rdx, rax
imul rdx, r9
mov r9, qword [r13 + 0x90]
and r9, rdx
add r9, r9
mov rdx, qword [r13 + 0x78]
mov rcx, qword [rdx + r9*8 + 8]
mov rax, qword [r13 + 0x68]
cmp rcx, rax
je 0x14004dc09
mov rdx, qword [rdx + r9*8]
cmp r8d, dword [rcx + 0x10]
je 0x14004dc0b
cmp rcx, rdx
je 0x14004dc09
mov rcx, qword [rcx + 8]
cmp r8d, dword [rcx + 0x10]
jne 0x14004dbf8
jmp 0x14004dc0b
xor ecx, ecx
test rcx, rcx
je 0x14004dc19
cmp rcx, rax
jne 0x14004dffa
lea rsi, [r13 + 0xd0]
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x80]
mov rcx, rsi
call fcn.14004f410
mov r12, qword [rax]
add r12, 0x18
mov r8, qword [r12]
test r8, r8
je 0x14004dff0
mov rcx, qword [r12 + 0x10]
test rcx, rcx
je 0x14004dff0
mov rax, qword [rcx]
lea rdx, [rbp - 0x10]
call qword [rax + 0x10]
movss xmm0, dword [rbp]
ucomiss xmm0, xmm6
jp 0x14004dc6c
je 0x14004dff0
lea rdx, [rbp - 0x10]
lea rcx, [rbp + 0x60]
call fcn.140050030
mov rdx, rax
mov rcx, r15
call fcn.14003c8f0
mov rdi, qword [r15]
mov rbx, qword [r15 + 8]
mov qword [rsp + 0x50], rbx
cmp rdi, rbx
je 0x14004dfdf
mov edx, dword [rbp - 0x30]
nop dword [rax]
mov r8d, dword [rdi]
cmp edx, r8d
je 0x14004dfcb
mov eax, r8d
cmovbe eax, edx
imul eax, eax, 0xf4240
cmp edx, r8d
cmovbe edx, r8d
add eax, edx
mov qword [rbp + 0x10], rax
lea r8, [rbp + 0x10]
lea rdx, [rsp + 0x70]
mov rcx, r14
call fcn.14004f6c0
cmp byte [rsp + 0x78], 0
je 0x14004dfc8
mov r8, rdi
lea rdx, [rbp - 0x70]
mov rcx, rsi
call fcn.14004f410
mov r15, qword [rax]
add r15, 0x18
mov rax, qword [r15]
test rax, rax
je 0x14004dfc8
mov r9, qword [r15 + 0x10]
test r9, r9
je 0x14004dfc8
mov qword [rsp + 0x20], rax
mov r8, qword [r12]
mov rdx, qword [r12 + 0x10]
lea rcx, [rbp + 0x30]
call fcn.1400a2980
nop
cmp byte [rbp + 0x54], 0
je 0x14004dfbf
call fcn.14003c2d0
mov ebx, eax
lea rdx, [rbp - 0x30]
lea rcx, [0x14037d360]
call fcn.14003aab0
test al, al
jne 0x14004dd51
xor ebx, ebx
jmp 0x14004dd99
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x60]
lea rcx, [0x14037d360]
call fcn.14003c580
mov rdx, qword [rax]
mov rcx, qword [rdx + 0x18]
test rcx, rcx
jne 0x14004dd75
xor ebx, ebx
jmp 0x14004dd99
mov r8, rbx
mov rax, qword [rcx]
cmp dword [rax + rbx*4], 0
jne 0x14004dd85
xor ebx, ebx
jmp 0x14004dd99
mov rcx, qword [rcx + 0x18]
mov rax, qword [rdx + 0x20]
lea rbx, [rax + rax*2]
shl rbx, 4
add rbx, qword [rcx + r8*8]
call fcn.14003c2d0
mov esi, eax
mov rdx, rdi
lea rcx, [0x14037d360]
call fcn.14003aab0
test al, al
jne 0x14004ddb7
xor eax, eax
jmp 0x14004ddfb
mov r8, rdi
lea rdx, [rbp - 0x50]
lea rcx, [0x14037d360]
call fcn.14003c580
mov rdx, qword [rax]
mov rcx, qword [rdx + 0x18]
test rcx, rcx
jne 0x14004ddda
xor eax, eax
jmp 0x14004ddfb
mov rax, qword [rcx]
cmp dword [rax + rsi*4], 0
jne 0x14004dde7
xor eax, eax
jmp 0x14004ddfb
mov rcx, qword [rcx + 0x18]
mov rax, qword [rdx + 0x20]
lea rax, [rax + rax*2]
shl rax, 4
add rax, qword [rcx + rsi*8]
test rbx, rbx
je 0x14004df31
test rax, rax
je 0x14004df31
cmp byte [rbx + 0x24], 0
je 0x14004df31
cmp byte [rax + 0x24], 0
je 0x14004df31
call fcn.14003b940
mov ebx, eax
lea rdx, [rbp - 0x30]
lea rcx, [0x14037d360]
call fcn.14003aab0
test al, al
je 0x14004deab
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x40]
lea rcx, [0x14037d360]
call fcn.14003c580
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x18]
test rdx, rdx
je 0x14004deab
mov rax, qword [rdx]
cmp dword [rax + rbx*4], 0
je 0x14004deab
mov rdx, qword [rdx + 0x18]
mov rax, qword [rcx + 0x20]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + rbx*8]
lea rbx, [rax + rcx*8]
test rbx, rbx
je 0x14004deab
mov r14d, dword [rdi]
mov rsi, qword [rbx + 8]
mov rbx, qword [rbx]
cmp rbx, rsi
je 0x14004deab
nop dword [rax]
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x14004dea2
mov rax, qword [rcx]
mov edx, r14d
call qword [rax + 0x20]
add rbx, 0x38
cmp rbx, rsi
jne 0x14004de90
call fcn.14003b940
mov ebx, eax
mov rdx, rdi
lea rcx, [0x14037d360]
call fcn.14003aab0
test al, al
je 0x14004df31
mov r8, rdi
lea rdx, [rbp + 0x18]
lea rcx, [0x14037d360]
call fcn.14003c580
mov rcx, qword [rax]
mov rdx, qword [rcx + 0x18]
test rdx, rdx
je 0x14004df31
mov rax, qword [rdx]
cmp dword [rax + rbx*4], 0
je 0x14004df31
mov rdx, qword [rdx + 0x18]
mov rax, qword [rcx + 0x20]
lea rcx, [rax + rax*2]
mov rax, qword [rdx + rbx*8]
lea rbx, [rax + rcx*8]
test rbx, rbx
je 0x14004df31
mov r14d, dword [rbp - 0x30]
mov rsi, qword [rbx + 8]
mov rbx, qword [rbx]
cmp rbx, rsi
je 0x14004df31
mov rcx, qword [rbx + 0x20]
test rcx, rcx
je 0x14004df28
mov rax, qword [rcx]
mov edx, r14d
call qword [rax + 0x20]
add rbx, 0x38
cmp rbx, rsi
jne 0x14004df16
lea rcx, [r15 + 8]
lea r8, [r12 + 8]
mov rdx, qword [r13 + 8]
cmp rdx, qword [r13 + 0x10]
je 0x14004df83
mov qword [rbp + 0x10], rdx
mov eax, dword [rbp - 0x30]
mov dword [rdx], eax
mov eax, dword [rdi]
mov dword [rdx + 4], eax
mov rax, qword [r8]
mov qword [rdx + 8], rax
mov rax, qword [rcx]
mov qword [rdx + 0x10], rax
mov rax, qword [r12]
mov qword [rdx + 0x18], rax
mov rax, qword [r15]
mov qword [rdx + 0x20], rax
lea rcx, [rdx + 0x28]
lea rdx, [rbp + 0x30]
call fcn.14004fef0
add qword [r13 + 8], 0x50
jmp 0x14004dfaf
lea rax, [rbp + 0x30]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r8
mov r9, rdi
lea r8, [rbp - 0x30]
mov rcx, r13
call fcn.14004f9e0
lea r14, [r13 + 0x20]
lea rsi, [r13 + 0xd0]
mov rbx, qword [rsp + 0x50]
lea rcx, [rbp + 0x30]
call fcn.140020e40
mov edx, dword [rbp - 0x30]
add rdi, 4
cmp rdi, rbx
jne 0x14004dca0
lea r15, [r13 + 0xb8]
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x28]
lea rcx, [r13 + 0x60]
call fcn.1400464f0
movabs r10, 0xcbf29ce484222325
mov rax, qword [rbp + 0xeb0]
mov rcx, qword [rsp + 0x68]
mov eax, dword [rax + rcx*8]
cmp eax, 0xffffffff
movabs r9, 0x100000001b3
jne 0x14004db70
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x58]
add rax, 8
mov qword [rsp + 0x58], rax
cmp rax, rcx
jne 0x14004db60
mov rcx, r13
call fcn.140159f70
mov r9, qword [r13 + 8]
mov rcx, qword [r13]
cmp rcx, r9
je 0x14004e16f
movss xmm7, dword [0x140310e20]
xorps xmm6, xmm6
movss xmm8, dword [0x140310d60]
mov rdx, qword [rcx + 8]
mov r8, qword [rcx + 0x10]
test rdx, rdx
je 0x14004e162
test r8, r8
je 0x14004e162
cmp byte [rdx + 2], 0
je 0x14004e162
cmp byte [r8 + 2], 0
je 0x14004e162
movss xmm1, dword [rdx + 0x20]
movss xmm5, dword [r8 + 0x20]
movss xmm4, dword [rcx + 0x44]
mulss xmm4, xmm7
mov dword [rbp - 0x30], 0
movss xmm0, dword [rcx + 0x48]
subss xmm0, xmm8
movss dword [rsp + 0x50], xmm0
lea rax, [rbp - 0x30]
lea r10, [rsp + 0x50]
comiss xmm6, xmm0
cmovbe rax, r10
mulss xmm4, dword [rax]
movss xmm3, dword [rcx + 0x40]
mulss xmm3, xmm7
mulss xmm3, dword [rax]
movaps xmm2, xmm5
addss xmm2, xmm1
ucomiss xmm2, xmm6
jp 0x14004e0f6
jne 0x14004e0f6
movaps xmm3, xmm6
movaps xmm4, xmm6
jmp 0x14004e0fe
divss xmm4, xmm2
divss xmm3, xmm2
cmp byte [rdx + 1], 0
je 0x14004e133
cmp byte [rdx + 4], 0
jne 0x14004e133
movaps xmm2, xmm1
mulss xmm2, xmm4
mov rax, qword [rcx + 0x18]
mulss xmm1, xmm3
movss xmm0, dword [rax]
subss xmm0, xmm1
movss dword [rax], xmm0
movss xmm1, dword [rax + 4]
subss xmm1, xmm2
movss dword [rax + 4], xmm1
cmp byte [r8 + 1], 0
je 0x14004e162
cmp byte [r8 + 4], 0
jne 0x14004e162
movaps xmm0, xmm5
mulss xmm0, xmm4
mov rax, qword [rcx + 0x20]
mulss xmm5, xmm3
addss xmm5, dword [rax]
movss dword [rax], xmm5
addss xmm0, dword [rax + 4]
movss dword [rax + 4], xmm0
add rcx, 0x50
cmp rcx, r9
jne 0x14004e065
lea rcx, [rbp + 0x60]
call fcn.14004e1c0
mov rcx, qword [rbp + 0xee0]
xor rcx, rsp
call fcn.1402863b0
lea r11, [rsp + 0x1020]
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]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret