Function at 0x4b5be0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51f35d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x44
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x18], ecx
push ebx
mov ebx, dword [ebp + 8]
mov edx, dword [eax]
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
push esi
push edi
xor ecx, eax
mov dword [ebp + 0xc], edx
imul ecx, ecx, 0x1000193
mov eax, edx
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [ebx + 0x274]
push eax
mov dword [ebp + 8], eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00465c40
mov eax, dword [eax + 4]
test eax, eax
jne 0x4b5c6e
mov eax, dword [ebx + 0x278]
push dword [ebp + 8]
lea ecx, [eax + 0xc]
xor edi, edi
cmp eax, dword [ebx + 0x278]
mov eax, dword [ebp - 0x10]
mov dword [ebp + 0xc], eax
cmovne edi, ecx
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebx + 0x294]
call fcn.00465c40
mov eax, dword [eax + 4]
test eax, eax
jne 0x4b5ca5
mov eax, dword [ebx + 0x298]
xor esi, esi
lea ecx, [eax + 0xc]
cmp eax, dword [ebx + 0x298]
cmovne esi, ecx
test edi, edi
je 0x4b5d12
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 5
push eax
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.00446830
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xd], 0
jne 0x4b5d12
cmp dword [eax + 0x10], 5
ja 0x4b5d12
cmp eax, dword [edi]
je 0x4b5d12
test esi, esi
je 0x4b5d43
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 0x14aa
push eax
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.00446830
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xd], 0
jne 0x4b5d27
cmp dword [eax + 0x10], 0x14aa
ja 0x4b5d27
mov edi, dword [esi]
cmp eax, edi
je 0x4b5d29
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [esi]
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 0x14a9
push eax
lea eax, [ebp + 8]
mov ecx, esi
push eax
call fcn.004b6290
cmp dword [eax], edi
jne 0x4b5d12
cmp dword [ebp + 0x10], 0
je 0x4b5dff
mov eax, dword [ebp - 0x18]
push dword [eax]
call fcn.0047a450
mov ebx, eax
mov dword [ebp + 0xc], 0x8f
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00401190
mov ecx, dword [ebp + 0xc]
mov esi, str.Derivative_instructions_require_DerivativeGroupQuadsNV_or_DerivativeGroupLinearNV_execution_mode_for_GLCompute_execution_model:
mov dword [ebp - 0x24], ecx
mov edi, eax
mov dword [ebp - 0x38], eax
mov ecx, 0x20
mov dword [ebp - 0x28], 0x80
rep movsd dword es:[edi], dword [esi]
mov byte [eax + 0x80], 0
push ebx
lea eax, [ebp - 0x38]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.004767f0
mov ecx, dword [ebp + 0x10]
add esp, 0x18
push eax
call fcn.00430d90
lea ecx, [ebp - 0x50]
call fcn.00401760
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x4b5dff
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4b5df5
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4b5e14
push ecx
push edx
call fcn.004fa253
add esp, 8
mov ecx, dword [ebp - 0xc]
xor al, al
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc
call fcn.004ff45f
int3