Function at 0x4a82f0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50e6bd
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.0045db70
mov eax, dword [eax + 4]
test eax, eax
jne 0x4a837e
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.0045db70
mov eax, dword [eax + 4]
test eax, eax
jne 0x4a83b5
mov eax, dword [ebx + 0x298]
xor esi, esi
lea ecx, [eax + 0xc]
cmp eax, dword [ebx + 0x298]
cmovne esi, ecx
test edi, edi
je 0x4a8422
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 5
push eax
lea eax, [ebp - 0x2c]
mov ecx, edi
push eax
call fcn.00441b50
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xd], 0
jne 0x4a8422
cmp dword [eax + 0x10], 5
ja 0x4a8422
cmp eax, dword [edi]
je 0x4a8422
test esi, esi
je 0x4a8453
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 0x14aa
push eax
lea eax, [ebp - 0x2c]
mov ecx, esi
push eax
call fcn.00441b50
mov eax, dword [ebp - 0x24]
cmp byte [eax + 0xd], 0
jne 0x4a8437
cmp dword [eax + 0x10], 0x14aa
ja 0x4a8437
mov edi, dword [esi]
cmp eax, edi
je 0x4a8439
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.004a89a0
cmp dword [eax], edi
jne 0x4a8422
cmp dword [ebp + 0x10], 0
je 0x4a850f
mov eax, dword [ebp - 0x18]
push dword [eax]
call fcn.0046fc70
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.0046c1d0
mov ecx, dword [ebp + 0x10]
add esp, 0x18
push eax
call fcn.0042c270
lea ecx, [ebp - 0x50]
call fcn.00401790
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xf
jbe 0x4a850f
mov edx, dword [ebp - 0x38]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4a8505
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4a8524
push ecx
push edx
call fcn.004e9693
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.004ee89f
int3