Function at 0x14002ea80
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 0x14002eac0
xor ecx, ecx
mov qword [rbp - 0x59], rcx
jmp 0x14002eaf2
lea rbx, [rax + rax*2]
shl rbx, 4
mov r8d, 0x10
mov rdx, rbx
call fcn.14001b3f0
mov rcx, rax
mov qword [rbp - 0x59], rax
test rax, rax
je 0x14002eaf0
mov r8, rbx
xor edx, edx
call fcn.140119530
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 0x14002f30b
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.140015810
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 0x14002eb85
add rcx, 0x10
jmp 0x14002eb96
xorps xmm0, xmm0
movups xmmword [0x140202c68], xmm0
lea rcx, [0x140202c68]
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.140015810
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 0x14002ebf3
add rcx, 0x10
jmp 0x14002ec04
xorps xmm0, xmm0
movups xmmword [0x140202c68], xmm0
lea rcx, [0x140202c68]
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.140015810
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 0x14002ec6f
add rcx, 0x10
jmp 0x14002ec86
xorps xmm0, xmm0
movups xmmword [0x140202c68], xmm0
lea rcx, [0x140202c68]
mov edi, dword [rsi]
mov rbx, qword [rsi + 8]
mov eax, 0x1000
test word [rcx + 0xe], ax
je 0x14002ec9e
movsx eax, byte [rcx + 0xd]
mov ecx, 0xd
sub ecx, eax
jmp 0x14002eca0
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.140015810
mov ecx, edi
shl rcx, 5
movabs rdx, 0xffffffffffff
and rbx, rdx
add rcx, rbx
mov rax, qword [rbp - 0x21]
cmp rax, rcx
je 0x14002ed0e
lea rdi, [rax + 0x10]
jmp 0x14002ed1f
xorps xmm0, xmm0
movups xmmword [0x140202c68], xmm0
lea rdi, [0x140202c68]
mov eax, 0x1000
test word [rdi + 0xe], ax
jne 0x14002ed31
mov rdi, qword [rdi + 8]
and rdi, rdx
lea rdx, [r14 + 1]
mov r8d, 0x10
mov rcx, r13
call fcn.14001b3f0
mov rbx, rax
mov r8, r14
mov rdx, rdi
mov rcx, rax
call fcn.140118d20
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.140015810
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 0x14002ee3a
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.140015810
mov rax, qword [rbp - 0x11]
cmp rax, rbx
je 0x14002ee14
lea rdx, [rax + 0x10]
jmp 0x14002ee25
xorps xmm0, xmm0
movups xmmword [0x140202c68], xmm0
lea rdx, [0x140202c68]
lea r8, [r12 + 0x14]
mov rcx, r13
call fcn.14002e7b0
test al, al
je 0x14002f370
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.140015810
mov ebx, dword [rsi]
shl rbx, 5
mov rax, qword [rsi + 8]
and rax, r14
add rbx, rax
cmp qword [rbp - 9], rbx
je 0x14002ef1c
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.140015810
mov rax, qword [rbp - 1]
cmp rax, rbx
je 0x14002eee5
lea rdx, [rax + 0x10]
jmp 0x14002eef6
xorps xmm0, xmm0
movups xmmword [0x140202c68], xmm0
lea rdx, [0x140202c68]
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.140026af0
test al, al
je 0x14002f370
jmp 0x14002ef1e
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.140015810
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 0x14002ef86
add rcx, 0x10
jmp 0x14002ef97
xorps xmm0, xmm0
movups xmmword [0x140202c68], xmm0
lea rcx, [0x140202c68]
mov eax, 0x1000
test word [rcx + 0xe], ax
jne 0x14002efa9
mov rcx, qword [rcx + 8]
and rcx, rbx
xor edx, edx
lea r8d, [rdx + 0x10]
call fcn.1401212e0
mov r14, rax
mov qword [rbp + 0x5f], rax
test rax, rax
je 0x14002f2e1
cmp byte [r13 + 0x209], 0
je 0x14002f2e1
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 0x14002f0a6
mov rax, qword [rax + rdx*8]
cmp r14, qword [rbx + 0x10]
je 0x14002f0a9
cmp rbx, rax
je 0x14002f0a6
mov rbx, qword [rbx + 8]
cmp r14, qword [rbx + 0x10]
jne 0x14002f095
jmp 0x14002f0a9
mov rbx, rdi
test rbx, rbx
cmove rbx, rcx
cmp rbx, rcx
jne 0x14002f2d5
mov qword [rbp - 0x61], rdi
test r15, r15
je 0x14002f374
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 0x14002f374
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 0x14002f177
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
ja 0x14002f393
mov eax, 0x1000
cmp rbx, rax
jb 0x14002f14a
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x14002f38d
call fcn.140116d14
test rax, rax
je 0x14002f387
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x14002f155
mov rcx, rbx
call fcn.140116d14
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.140119530
mov rbx, r15
mov qword [rbp - 0x49], rbx
jmp 0x14002f17f
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 0x14002f32c
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.14001c470
test al, al
je 0x14002f33c
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 0x14002f32c
mov rax, qword [rax + rcx*8]
cmp r14, qword [rbx + 0x10]
je 0x14002f274
cmp rbx, rax
je 0x14002f32c
mov rbx, qword [rbx + 8]
cmp r14, qword [rbx + 0x10]
jne 0x14002f261
test rbx, rbx
cmove rbx, rdx
cmp rbx, rdx
je 0x14002f32c
test rdi, rdi
je 0x14002f2bc
sub r15, rdi
mov rax, rdi
cmp r15, 0x1000
jb 0x14002f2b1
add r15, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002f387
mov rdx, r15
mov rcx, rdi
call fcn.140116d50
mov r15, qword [rbp + 0x6f]
mov rax, qword [rbx + 0x18]
mov qword [r12 + 4], rax
movabs rbx, 0xffffffffffff
jmp 0x14002f2e6
mov rcx, qword [rbp + 0x67]
mov rax, qword [rcx]
call qword [rax + 0x70]
jmp 0x14002f2c0
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 0x14002eb17
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.14001c320
nop
test rdi, rdi
je 0x14002f370
sub r15, rdi
mov rax, rdi
cmp r15, 0x1000
jb 0x14002f365
add r15, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002f387
mov rdx, r15
mov rcx, rdi
call fcn.140116d50
xor al, al
jmp 0x14002f318
mov rdx, r14
lea rcx, str.Shader_module
call fcn.14001c320
xor al, al
jmp 0x14002f318
call fcn.14011d39c
int3
call fcn.140001a90
int3
call fcn.140002b50
int3