Function at 0x14009d420
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x160]
sub rsp, 0x260
mov rsi, r9
mov r12, r8
mov r13, rdx
mov r14, rcx
mov rax, qword [rcx]
mov rcx, qword [rax]
mov ecx, dword [rcx]
call fcn.140086e50
xor edi, edi
mov r15, qword [rbp + 0x1c0]
test al, al
je 0x14009da75
movzx eax, word [r15 + 0x3a]
cmp ax, 0x20
je 0x14009d4a4
cmp ax, 0x27
je 0x14009d4a4
cmp ax, 0x3b
je 0x14009d49c
cmp ax, 0x7b
jne 0x14009d706
mov rax, qword [r15]
mov ecx, dword [rax + 0x10]
jmp 0x14009d4aa
mov rax, qword [r15]
mov ecx, dword [rax + 0xc]
jmp 0x14009d4aa
mov rax, qword [r15]
mov ecx, dword [rax + 8]
cmp ecx, 0x7fffffff
je 0x14009d706
cmp ecx, 3
je 0x14009d706
mov r9, r15
mov r8d, 0xfffffff2
lea rdx, [rbp - 0x10]
mov rcx, qword [r14]
call fcn.140110560
mov rbx, rax
xor r9d, r9d
mov r8d, 0x1076
lea rdx, [rbp - 0x78]
mov rcx, qword [r14]
call fcn.14010c530
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009d4fb
mov rax, qword [rax]
mov rdx, rax
mov rcx, rbx
call fcn.14003e9f0
mov rax, qword [r14]
mov rcx, qword [rax]
mov edx, dword [rcx]
lea rcx, [rsp + 0x60]
call fcn.140086eb0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009d527
mov rax, qword [rax]
mov rdx, rax
mov rcx, rbx
call fcn.14003e9f0
lea rdx, str._spec_allows_BuiltIn_FragDepth_to_be_only_used_for_variables_with_Output_storage_class.
mov rcx, rbx
call fcn.14003e540
mov dword [rsp + 0x30], 0x7fffffff
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rsi
mov r9, r12
mov r8, r13
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.140097bd0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009d575
mov rax, qword [rax]
mov rdx, rax
mov rcx, rbx
call fcn.14003e9f0
lea rdx, [0x140152590]
mov rcx, rbx
call fcn.14003e540
mov r8, r15
lea rdx, [rbp - 0x38]
mov rcx, r14
call fcn.140097f50
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009d5ad
mov rax, qword [rax]
mov rdx, rax
mov rcx, rbx
call fcn.14003e9f0
mov ebx, dword [rbx + 0x160]
mov rdx, qword [rbp - 0x20]
cmp rdx, 0x10
jb 0x14009d5f9
inc rdx
mov rcx, qword [rbp - 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009d5f4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009dd61
call fcn.140116d50
xor edi, edi
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x20], 0xf
mov byte [rbp - 0x38], dil
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x14009d648
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009d643
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009dd67
call fcn.140116d50
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 0xf
mov byte [rsp + 0x40], 0
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x14009d698
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009d693
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009dd6d
call fcn.140116d50
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], 0xf
mov byte [rsp + 0x60], 0
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x14009d6e6
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009d6e1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009dd73
call fcn.140116d50
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], 0xf
mov byte [rbp - 0x78], 0
lea rcx, [rbp - 0x10]
call fcn.140076780
mov eax, ebx
jmp 0x14009db77
mov rax, qword [r14 + 0x40]
mov rax, qword [rax]
cmp byte [rax + 0x19], dil
jne 0x14009d775
mov ebx, dword [rax + 0x1c]
cmp ebx, 4
jne 0x14009d848
mov rcx, qword [rax + 0x10]
cmp byte [rcx + 0x19], dil
je 0x14009d74b
mov rcx, qword [rax + 8]
cmp byte [rcx + 0x19], dil
jne 0x14009d746
cmp rax, qword [rcx + 0x10]
jne 0x14009d746
mov rax, rcx
mov rcx, qword [rcx + 8]
cmp byte [rcx + 0x19], dil
je 0x14009d733
mov rax, rcx
jmp 0x14009d76f
mov rax, rcx
mov rdx, qword [rcx]
cmp byte [rdx + 0x19], dil
jne 0x14009d76f
nop word [rax + rax]
mov rax, rdx
mov rcx, qword [rdx]
mov rdx, rcx
cmp byte [rcx + 0x19], dil
je 0x14009d760
cmp byte [rax + 0x19], dil
je 0x14009d713
mov rax, qword [r14 + 0x38]
mov r9, qword [rax]
mov r11, qword [rax + 8]
cmp r9, r11
je 0x14009da75
mov r10, qword [r14]
mov rsi, qword [r10 + 0x530]
mov r12, qword [r10 + 0x518]
mov rbx, qword [r10 + 0x508]
movabs rax, 0x100000001b3
movabs rcx, 0xcbf29ce484222325
mov r8d, dword [r9]
movzx edx, r8b
xor rdx, rcx
imul rdx, rax
mov eax, r8d
shr eax, 8
movzx ecx, al
xor rdx, rcx
movabs rax, 0x100000001b3
imul rdx, rax
mov eax, r8d
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
movabs rcx, 0x100000001b3
imul rdx, rcx
mov eax, r8d
shr rax, 0x18
xor rdx, rax
imul rdx, rcx
mov rcx, rsi
and rcx, rdx
add rcx, rcx
mov rax, qword [r12 + rcx*8 + 8]
cmp rax, rbx
je 0x14009da08
mov rcx, qword [r12 + rcx*8]
cmp r8d, dword [rax + 0x10]
je 0x14009da0b
nop word [rax + rax]
cmp rax, rcx
je 0x14009da08
mov rax, qword [rax + 8]
cmp r8d, dword [rax + 0x10]
jne 0x14009d830
jmp 0x14009da0b
mov r9, r15
mov r8d, 0xfffffff2
lea rdx, [rbp - 0x10]
mov rcx, qword [r14]
call fcn.140110560
mov rdi, rax
xor r9d, r9d
mov r8d, 0x1075
lea rdx, [rsp + 0x40]
mov rcx, qword [r14]
call fcn.14010c530
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009d885
mov rax, qword [rax]
mov rdx, rax
mov rcx, rdi
call fcn.14003e9f0
mov rax, qword [r14]
mov rcx, qword [rax]
mov edx, dword [rcx]
lea rcx, [rsp + 0x60]
call fcn.140086eb0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009d8b1
mov rax, qword [rax]
mov rdx, rax
mov rcx, rdi
call fcn.14003e9f0
lea rdx, str._spec_allows_BuiltIn_FragDepth_to_be_used_only_with_Fragment_execution_model.
mov rcx, rdi
call fcn.14003e540
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rsi
mov r9, r12
mov r8, r13
lea rdx, [rbp - 0x78]
mov rcx, r14
call fcn.140097bd0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009d8fa
mov rax, qword [rax]
mov rdx, rax
mov rcx, rdi
call fcn.14003e9f0
mov ebx, dword [rdi + 0x160]
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x14009d946
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009d941
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009dd79
call fcn.140116d50
xor edi, edi
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], 0xf
mov byte [rbp - 0x78], dil
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x14009d995
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009d990
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009dd7f
call fcn.140116d50
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], 0xf
mov byte [rsp + 0x60], 0
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x14009d9e5
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009d9e0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009dd85
call fcn.140116d50
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 0xf
mov byte [rsp + 0x40], 0
lea rcx, [rbp - 0x10]
call fcn.140076780
mov eax, ebx
jmp 0x14009db77
mov rax, rdi
test rax, rax
cmove rax, rbx
cmp rax, rbx
je 0x14009db92
lea rcx, [rax + 0x18]
test rcx, rcx
je 0x14009db92
mov rcx, qword [rcx]
mov rax, qword [rcx + 8]
cmp byte [rax + 0x19], dil
jne 0x14009da4d
cmp dword [rax + 0x1c], 0xc
jae 0x14009da41
mov rax, qword [rax + 0x10]
jmp 0x14009da47
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], dil
je 0x14009da35
cmp byte [rcx + 0x19], dil
jne 0x14009db92
cmp dword [rcx + 0x1c], 0xc
ja 0x14009db92
add r9, 4
cmp r9, r11
jne 0x14009d7a1
mov r12, qword [rbp + 0x1b0]
cmp dword [r14 + 0x18], edi
jne 0x14009db75
lea rcx, [r14 + 8]
mov eax, dword [r15 + 0x44]
mov dword [rbp + 0x1a0], eax
lea rdx, [rbp + 0x1a0]
call fcn.140094430
mov rsi, rax
lea rax, [fcn.14009d420]
mov qword [rbp - 0x10], rax
lea rax, [rbp - 8]
mov qword [rbp - 0x80], rax
mov rdx, r15
lea rcx, [rbp]
call fcn.140093fd0
nop
mov rdx, r12
lea rcx, [rbp + 0x88]
call fcn.140093fd0
nop
mov eax, dword [r13]
mov dword [rbp + 0x110], eax
lea rdx, [r13 + 8]
lea rcx, [rbp + 0x118]
call fcn.140088830
mov eax, dword [r13 + 0x20]
mov dword [rbp + 0x130], eax
mov qword [rbp + 0x138], r14
lea rax, [rbp - 0x10]
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x40], rdi
mov ecx, 0x158
call fcn.140116d14
mov rbx, rax
mov qword [rbp - 0x18], rax
lea rax, [0x1401a7d78]
mov qword [rbx], rax
mov rax, qword [rbp - 0x10]
mov qword [rbx + 8], rax
lea rdx, [rbp - 8]
lea rcx, [rbx + 0x10]
call fcn.140093db0
mov rax, qword [rbp + 0x138]
mov qword [rbx + 0x150], rax
mov qword [rbp - 0x40], rbx
lea rcx, [rbp - 8]
call fcn.140094150
nop
lea rdx, [rbp - 0x78]
mov rcx, rsi
call fcn.1400ae310
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x14009db75
mov rax, qword [rcx]
lea rdx, [rbp - 0x78]
cmp rcx, rdx
setne dl
call qword [rax + 0x20]
xor eax, eax
mov rbx, qword [rsp + 0x2a8]
add rsp, 0x260
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov r9, r15
mov r8d, 0xfffffff2
lea rdx, [rbp - 0x10]
mov rcx, r10
call fcn.140110560
mov rbx, rax
xor r9d, r9d
mov r8d, 0x1078
lea rdx, [rsp + 0x40]
mov rcx, qword [r14]
call fcn.14010c530
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009dbcf
mov rax, qword [rax]
mov rdx, rax
mov rcx, rbx
call fcn.14003e9f0
mov rax, qword [r14]
mov rcx, qword [rax]
mov edx, dword [rcx]
lea rcx, [rsp + 0x60]
call fcn.140086eb0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009dbfb
mov rax, qword [rax]
mov rdx, rax
mov rcx, rbx
call fcn.14003e9f0
lea rdx, str._spec_requires_DepthReplacing_execution_mode_to_be_declared_when_using_BuiltIn_FragDepth.
mov rcx, rbx
call fcn.14003e540
mov dword [rsp + 0x30], 0x7fffffff
mov qword [rsp + 0x28], r15
mov rax, qword [rbp + 0x1b8]
mov qword [rsp + 0x20], rax
mov r9, qword [rbp + 0x1b0]
mov r8, r13
lea rdx, [rbp - 0x78]
mov rcx, r14
call fcn.140097bd0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x14009dc53
mov rax, qword [rax]
mov rdx, rax
mov rcx, rbx
call fcn.14003e9f0
mov ebx, dword [rbx + 0x160]
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x14009dc9f
inc rdx
mov rcx, qword [rbp - 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009dc9a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009dd8b
call fcn.140116d50
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x60], 0xf
mov byte [rbp - 0x78], 0
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x14009dcec
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009dce7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009dd91
call fcn.140116d50
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], 0xf
mov byte [rsp + 0x60], 0
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x14009dd38
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009dd33
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009dd5b
call fcn.140116d50
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], 0xf
mov byte [rsp + 0x40], 0
lea rcx, [rbp - 0x10]
call fcn.140076780
mov eax, ebx
jmp 0x14009db77
call fcn.14011d39c
nop
call fcn.14011d39c
nop
call fcn.14011d39c
nop
call fcn.14011d39c
nop
call fcn.14011d39c
nop
call fcn.14011d39c
nop
call fcn.14011d39c
nop
call fcn.14011d39c
nop
call fcn.14011d39c
nop
call fcn.14011d39c
int3