Function at 0x14002e8e0
Capabilities:
Hash data using fnv

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0xb8
mov rdi, r9
mov r15, r8
mov r13, rcx
mov eax, dword [r9]
test rax, rax
jne 0x14002e920
xor ecx, ecx
mov qword [rbp - 0x59], rcx
jmp 0x14002e952
lea rbx, [rax + rax*2]
shl rbx, 4
mov r8d, 0x10
mov rdx, rbx
call fcn.14001b250
mov rcx, rax
mov qword [rbp - 0x59], rax
test rax, rax
je 0x14002e950
mov r8, rbx
xor edx, edx
call fcn.140119350
mov rcx, qword [rbp - 0x59]
mov eax, dword [rdi]
movabs rbx, 0xffffffffffff
mov rsi, qword [rdi + 8]
and rsi, rbx
shl rax, 4
add rax, rsi
cmp rsi, rax
je 0x14002f16b
lea r12, [rcx + 0x14]
lea rcx, str.flags
movabs r14, 0xffff000000000000
mov edi, 0x405
mov dword [r12 - 0x14], 0x12
xorps xmm0, xmm0
movups xmmword [rbp - 0x71], xmm0
mov word [rbp - 0x63], di
mov rax, qword [rbp - 0x69]
and rax, r14
or rax, rcx
mov qword [rbp - 0x69], rax
mov dword [rbp - 0x71], 5
lea r8, [rbp - 0x71]
lea rdx, [rbp - 0x39]
mov rcx, rsi
call fcn.140015670
mov eax, dword [rsi]
shl rax, 5
mov rcx, qword [rsi + 8]
and rcx, rbx
add rax, rcx
mov rcx, qword [rbp - 0x39]
cmp rcx, rax
je 0x14002e9e5
add rcx, 0x10
jmp 0x14002e9f6
xorps xmm0, xmm0
movups xmmword [0x140201b48], xmm0
lea rcx, [0x140201b48]
mov eax, dword [rcx]
mov dword [r12 - 4], eax
xorps xmm0, xmm0
movups xmmword [rbp - 0x71], xmm0
mov word [rbp - 0x63], di
mov rax, qword [rbp - 0x69]
and rax, r14
lea rcx, str.stage
or rax, rcx
mov qword [rbp - 0x69], rax
mov dword [rbp - 0x71], 5
lea r8, [rbp - 0x71]
lea rdx, [rbp - 0x31]
mov rcx, rsi
call fcn.140015670
mov eax, dword [rsi]
shl rax, 5
mov rcx, qword [rsi + 8]
and rcx, rbx
add rax, rcx
mov rcx, qword [rbp - 0x31]
cmp rcx, rax
je 0x14002ea53
add rcx, 0x10
jmp 0x14002ea64
xorps xmm0, xmm0
movups xmmword [0x140201b48], xmm0
lea rcx, [0x140201b48]
mov eax, dword [rcx]
mov dword [r12], eax
xorps xmm0, xmm0
movups xmmword [rbp - 0x71], xmm0
mov word [rbp - 0x63], di
mov rax, qword [rbp - 0x69]
and rax, r14
lea rcx, str.name
or rax, rcx
mov qword [rbp - 0x69], rax
mov dword [rbp - 0x71], 4
lea r8, [rbp - 0x71]
lea rdx, [rbp - 0x29]
mov rcx, rsi
call fcn.140015670
mov edi, dword [rsi]
mov rbx, qword [rsi + 8]
mov eax, edi
shl rax, 5
mov rcx, rbx
movabs r14, 0xffffffffffff
and rcx, r14
add rax, rcx
mov rcx, qword [rbp - 0x29]
cmp rcx, rax
je 0x14002eacf
add rcx, 0x10
jmp 0x14002eae6
xorps xmm0, xmm0
movups xmmword [0x140201b48], xmm0
lea rcx, [0x140201b48]
mov edi, dword [rsi]
mov rbx, qword [rsi + 8]
mov eax, 0x1000
test word [rcx + 0xe], ax
je 0x14002eafe
movsx eax, byte [rcx + 0xd]
mov ecx, 0xd
sub ecx, eax
jmp 0x14002eb00
mov ecx, dword [rcx]
mov r14d, ecx
xorps xmm0, xmm0
movups xmmword [rbp - 0x71], xmm0
mov eax, 0x405
mov word [rbp - 0x63], ax
mov rax, qword [rbp - 0x69]
movabs rcx, 0xffff000000000000
and rax, rcx
lea rcx, str.name
or rax, rcx
mov qword [rbp - 0x69], rax
mov dword [rbp - 0x71], 4
lea r8, [rbp - 0x71]
lea rdx, [rbp - 0x21]
mov rcx, rsi
call fcn.140015670
mov ecx, edi
shl rcx, 5
movabs rdx, 0xffffffffffff
and rbx, rdx
add rcx, rbx
mov rax, qword [rbp - 0x21]
cmp rax, rcx
je 0x14002eb6e
lea rdi, [rax + 0x10]
jmp 0x14002eb7f
xorps xmm0, xmm0
movups xmmword [0x140201b48], xmm0
lea rdi, [0x140201b48]
mov eax, 0x1000
test word [rdi + 0xe], ax
jne 0x14002eb91
mov rdi, qword [rdi + 8]
and rdi, rdx
lea rdx, [r14 + 1]
mov r8d, 0x10
mov rcx, r13
call fcn.14001b250
mov rbx, rax
mov r8, r14
mov rdx, rdi
mov rcx, rax
call fcn.140118b40
mov byte [r14 + rbx], 0
mov qword [r12 + 0xc], rbx
xorps xmm0, xmm0
movups xmmword [rbp - 0x71], xmm0
mov edi, 0x405
mov word [rbp - 0x63], di
mov rax, qword [rbp - 0x69]
movabs rcx, 0xffff000000000000
and rax, rcx
lea rcx, str.specializationInfo
or rax, rcx
mov qword [rbp - 0x69], rax
mov dword [rbp - 0x71], 0x12
lea r8, [rbp - 0x71]
lea rdx, [rbp - 0x19]
mov rcx, rsi
call fcn.140015670
mov ebx, dword [rsi]
shl rbx, 5
mov rax, qword [rsi + 8]
movabs r14, 0xffffffffffff
and rax, r14
add rbx, rax
cmp qword [rbp - 0x19], rbx
je 0x14002ec9a
xorps xmm0, xmm0
movups xmmword [rbp - 0x71], xmm0
mov word [rbp - 0x63], di
mov rax, qword [rbp - 0x69]
movabs rcx, 0xffff000000000000
and rax, rcx
lea rcx, str.specializationInfo
or rax, rcx
mov qword [rbp - 0x69], rax
mov dword [rbp - 0x71], 0x12
lea r8, [rbp - 0x71]
lea rdx, [rbp - 0x11]
mov rcx, rsi
call fcn.140015670
mov rax, qword [rbp - 0x11]
cmp rax, rbx
je 0x14002ec74
lea rdx, [rax + 0x10]
jmp 0x14002ec85
xorps xmm0, xmm0
movups xmmword [0x140201b48], xmm0
lea rdx, [0x140201b48]
lea r8, [r12 + 0x14]
mov rcx, r13
call fcn.14002e610
test al, al
je 0x14002f1d0
xorps xmm0, xmm0
movups xmmword [rbp - 0x71], xmm0
mov word [rbp - 0x63], di
mov rax, qword [rbp - 0x69]
movabs rcx, 0xffff000000000000
and rax, rcx
lea rcx, str.pNext
or rax, rcx
mov qword [rbp - 0x69], rax
mov dword [rbp - 0x71], 5
lea r8, [rbp - 0x71]
lea rdx, [rbp - 9]
mov rcx, rsi
call fcn.140015670
mov ebx, dword [rsi]
shl rbx, 5
mov rax, qword [rsi + 8]
and rax, r14
add rbx, rax
cmp qword [rbp - 9], rbx
je 0x14002ed7c
xorps xmm0, xmm0
movups xmmword [rbp - 0x71], xmm0
mov word [rbp - 0x63], di
mov rax, qword [rbp - 0x69]
movabs rcx, 0xffff000000000000
and rax, rcx
lea rcx, str.pNext
or rax, rcx
mov qword [rbp - 0x69], rax
mov dword [rbp - 0x71], 5
lea r8, [rbp - 0x71]
lea rdx, [rbp - 1]
mov rcx, rsi
call fcn.140015670
mov rax, qword [rbp - 1]
cmp rax, rbx
je 0x14002ed45
lea rdx, [rax + 0x10]
jmp 0x14002ed56
xorps xmm0, xmm0
movups xmmword [0x140201b48], xmm0
lea rdx, [0x140201b48]
lea r8, [r12 - 0xc]
xor edi, edi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rdi
xor r9d, r9d
mov rcx, r13
call fcn.140026950
test al, al
je 0x14002f1d0
jmp 0x14002ed7e
xor edi, edi
xorps xmm0, xmm0
movups xmmword [rbp - 0x71], xmm0
mov eax, 0x405
mov word [rbp - 0x63], ax
mov rax, qword [rbp - 0x69]
movabs rcx, 0xffff000000000000
and rax, rcx
lea rcx, str.module
or rax, rcx
mov qword [rbp - 0x69], rax
mov dword [rbp - 0x71], 6
lea r8, [rbp - 0x71]
lea rdx, [rbp + 7]
mov rcx, rsi
call fcn.140015670
mov eax, dword [rsi]
shl rax, 5
mov rcx, qword [rsi + 8]
mov rbx, r14
and rcx, rbx
add rax, rcx
mov rcx, qword [rbp + 7]
cmp rcx, rax
je 0x14002ede6
add rcx, 0x10
jmp 0x14002edf7
xorps xmm0, xmm0
movups xmmword [0x140201b48], xmm0
lea rcx, [0x140201b48]
mov eax, 0x1000
test word [rcx + 0xe], ax
jne 0x14002ee09
mov rcx, qword [rcx + 8]
and rcx, rbx
xor edx, edx
lea r8d, [rdx + 0x10]
call fcn.140121044
mov r14, rax
mov qword [rbp + 0x5f], rax
test rax, rax
je 0x14002f141
cmp byte [r13 + 0x209], 0
je 0x14002f141
movzx ecx, r14b
movabs rax, 0xcbf29ce484222325
xor rcx, rax
movabs r8, 0x100000001b3
imul rcx, r8
mov qword [rbp - 0x71], rcx
mov rax, r14
shr rax, 8
movzx edx, al
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x18
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x20
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x28
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x30
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov rax, r14
shr rax, 0x38
xor rdx, rax
imul rdx, r8
and rdx, qword [r13 + 0xf8]
add rdx, rdx
mov rax, qword [r13 + 0xe0]
mov rbx, qword [rax + rdx*8 + 8]
mov rcx, qword [r13 + 0xd0]
cmp rbx, rcx
je 0x14002ef06
mov rax, qword [rax + rdx*8]
cmp r14, qword [rbx + 0x10]
je 0x14002ef09
cmp rbx, rax
je 0x14002ef06
mov rbx, qword [rbx + 8]
cmp r14, qword [rbx + 0x10]
jne 0x14002eef5
jmp 0x14002ef09
mov rbx, rdi
test rbx, rbx
cmove rbx, rcx
cmp rbx, rcx
jne 0x14002f135
mov qword [rbp - 0x61], rdi
test r15, r15
je 0x14002f1d4
mov rax, qword [r15]
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rdi
lea r9, [rbp - 0x61]
mov r8, r14
mov edx, 4
mov rcx, r15
call qword [rax + 0x10]
test al, al
je 0x14002f1d4
mov rbx, qword [rbp - 0x61]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x51], xmm0
mov r15, rdi
mov qword [rbp - 0x41], rdi
test rbx, rbx
je 0x14002efd7
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
ja 0x14002f1f3
mov eax, 0x1000
cmp rbx, rax
jb 0x14002efaa
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x14002f1ed
call fcn.140116b34
test rax, rax
je 0x14002f1e7
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x14002efb5
mov rcx, rbx
call fcn.140116b34
mov rdi, rax
mov qword [rbp - 0x51], rdi
lea r15, [rdi + rbx]
mov qword [rbp - 0x41], r15
mov r8, rbx
xor edx, edx
mov rcx, rdi
call fcn.140119350
mov rbx, r15
mov qword [rbp - 0x49], rbx
jmp 0x14002efdf
mov rbx, qword [rbp - 0x49]
mov rdi, qword [rbp - 0x51]
mov rcx, qword [rbp + 0x6f]
mov rax, qword [rcx]
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], rdi
lea r9, [rbp - 0x61]
mov r8, r14
mov edx, 4
call qword [rax + 0x10]
test al, al
je 0x14002f18c
sub rbx, rdi
mov qword [rsp + 0x20], rbx
mov r9, rdi
mov r8, qword [rbp + 0x6f]
mov rbx, qword [rbp + 0x67]
mov rdx, rbx
mov rcx, r13
call fcn.14001c2d0
test al, al
je 0x14002f19c
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x70]
movzx ecx, byte [rbp + 0x60]
xor rcx, qword [rbp - 0x71]
movabs rdx, 0x100000001b3
imul rcx, rdx
movzx eax, byte [rbp + 0x61]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp + 0x62]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp + 0x63]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp + 0x64]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp + 0x65]
xor rcx, rax
imul rcx, rdx
movzx eax, byte [rbp + 0x66]
xor rcx, rax
imul rcx, rdx
and rcx, qword [r13 + 0xf8]
add rcx, rcx
mov rax, qword [r13 + 0xe0]
mov rbx, qword [rax + rcx*8 + 8]
mov rdx, qword [r13 + 0xd0]
cmp rbx, rdx
je 0x14002f18c
mov rax, qword [rax + rcx*8]
cmp r14, qword [rbx + 0x10]
je 0x14002f0d4
cmp rbx, rax
je 0x14002f18c
mov rbx, qword [rbx + 8]
cmp r14, qword [rbx + 0x10]
jne 0x14002f0c1
test rbx, rbx
cmove rbx, rdx
cmp rbx, rdx
je 0x14002f18c
test rdi, rdi
je 0x14002f11c
sub r15, rdi
mov rax, rdi
cmp r15, 0x1000
jb 0x14002f111
add r15, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002f1e7
mov rdx, r15
mov rcx, rdi
call fcn.140116b70
mov r15, qword [rbp + 0x6f]
mov rax, qword [rbx + 0x18]
mov qword [r12 + 4], rax
movabs rbx, 0xffffffffffff
jmp 0x14002f146
mov rcx, qword [rbp + 0x67]
mov rax, qword [rcx]
call qword [rax + 0x70]
jmp 0x14002f120
mov qword [r12 + 4], r14
add rsi, 0x10
add r12, 0x30
mov rdi, qword [rbp + 0x77]
mov ecx, dword [rdi]
shl rcx, 4
mov rax, qword [rdi + 8]
and rax, rbx
add rcx, rax
cmp rsi, rcx
jne 0x14002e977
mov rax, qword [rbp + 0x7f]
mov rcx, qword [rbp - 0x59]
mov qword [rax], rcx
mov al, 1
add rsp, 0xb8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rdx, r14
lea rcx, str.Shader_module
call fcn.14001c180
nop
test rdi, rdi
je 0x14002f1d0
sub r15, rdi
mov rax, rdi
cmp r15, 0x1000
jb 0x14002f1c5
add r15, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002f1e7
mov rdx, r15
mov rcx, rdi
call fcn.140116b70
xor al, al
jmp 0x14002f178
mov rdx, r14
lea rcx, str.Shader_module
call fcn.14001c180
xor al, al
jmp 0x14002f178
call fcn.14011d1bc
int3
call fcn.140001a90
int3
call fcn.140002a20
int3