Function at 0x4b2d90
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x525f2b
push eax
mov eax, dword [ebp + 0x10]
mov dword fs:[0], esp
sub esp, 0x1ec
cmp dword [eax + 0x10], 0xffffffff
push ebx
push esi
push edi
jne 0x4b2fd4
mov esi, dword [ebp + 0xc]
mov ecx, 0x1516
mov edi, dword [ebp + 8]
movzx ebx, word [esi + 0x1e]
mov edx, dword [esi + 0x24]
cmp ebx, 0x3b
je 0x4b2e5b
mov eax, 0x1142
cmp bx, ax
je 0x4b2e41
cmp ebx, 0x37
je 0x4b2e8f
cmp bx, cx
je 0x4b2e8f
push esi
push 0xfffffffffffffff6
lea eax, [ebp - 0x108]
mov ecx, edi
push eax
call fcn.004f5350
mov esi, eax
push str.Target_of_NonWritable_decoration_must_be_a_memory_object_declaration__a_variable_or_a_function_parameter_
push esi
mov dword [ebp - 4], 0
call fcn.00438a80
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x108]
add esp, 8
call fcn.0046b990
pop edi
mov eax, esi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 3
jbe 0x4b2fe7
movzx ecx, word [ecx + 0x30]
jmp 0x4b2e73
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0xc]
sub eax, ecx
sar eax, 4
cmp eax, 2
jbe 0x4b2fe7
movzx ecx, word [ecx + 0x20]
mov eax, dword [esi]
mov eax, dword [eax + ecx*4]
cmp eax, 7
je 0x4b2e82
cmp eax, 6
jne 0x4b2e8f
cmp byte [edi + 0x250], 0
jne 0x4b2fd4
movzx eax, dl
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], edx
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
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, [edi + 0x2e0]
push eax
mov dword [ebp + 0x10], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00465c40
mov eax, dword [eax + 4]
test eax, eax
jne 0x4b2ef1
mov eax, dword [edi + 0x2e4]
cmp eax, dword [edi + 0x2e4]
jne 0x4b2fd4
push dword [ebp + 0x10]
mov eax, dword [esi + 0x24]
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x10], eax
push ecx
lea ecx, [edi + 0x320]
call fcn.00465c40
mov eax, dword [eax + 4]
test eax, eax
jne 0x4b2f26
mov eax, dword [edi + 0x324]
cmp eax, dword [edi + 0x324]
jne 0x4b2fd4
push dword [ebp + 0x10]
mov eax, dword [esi + 0x24]
lea ecx, [ebp - 0x10]
push ecx
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x10], eax
push ecx
lea ecx, [edi + 0x360]
call fcn.00465c40
mov eax, dword [eax + 4]
test eax, eax
jne 0x4b2f5b
mov eax, dword [edi + 0x364]
cmp eax, dword [edi + 0x364]
jne 0x4b2fd4
mov eax, 0x1516
cmp bx, ax
je 0x4b2fd4
push esi
push 0xfffffffffffffff6
lea eax, [ebp - 0x1f8]
mov ecx, edi
push eax
call fcn.004f5350
mov esi, eax
push str.Target_of_NonWritable_decoration_is_invalid:_must_point_to_a_storage_image__uniform_block_
push esi
mov dword [ebp - 4], 1
call fcn.00438a80
cmp byte [edi + 0x250], 0
mov eax, str.or_storage_buffer
mov ecx, str.storage_buffer__or_variable_in_Private_or_Function_storage_class
cmove ecx, eax
push ecx
push esi
call fcn.00438a80
mov esi, dword [esi + 0xe8]
lea ecx, [ebp - 0x1f8]
add esp, 0x10
call fcn.0046b990
pop edi
mov eax, esi
pop esi
pop ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 0xc]
xor eax, eax
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
call fcn.0046b360
int3