Function at 0x101c1500
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x1c], 3
jae 0x101c152a
add ecx, 0x1d04
push str.OpenGL_ES_3.1_Required
push 0x502
jmp 0x101c1717
jne 0x101c1532
cmp dword [ecx + 0x20], 0
je 0x101c1515
mov eax, dword [ebp + 0x10]
cmp dword [ecx + 0x2bc], eax
jbe 0x101c156b
cmp dword [ebp + 0x18], 0
js 0x101c157b
cmp dword [ebp + 0x20], 0
js 0x101c158b
mov eax, dword [ebp + 0x24]
add eax, 0xffff7745
cmp eax, 0xfffffffc
ja 0x101c159b
add ecx, 0x1d04
push str.access_is_not_one_of_the_supported_tokens.
push 0x500
jmp 0x101c1717
add ecx, 0x1d04
push str.Index_must_be_within__0__MAX_IMAGE_UNITS_.
jmp 0x101c1712
add ecx, 0x1d04
push str.Level_is_negative.
jmp 0x101c1712
add ecx, 0x1d04
push str.Negative_layer.
jmp 0x101c1712
mov eax, dword [ebp + 0x28]
cmp eax, 0x8819
jle 0x101c15cd
lea esi, [eax - 0x8d70]
cmp esi, 0x1e
ja 0x101c15ba
mov edi, 0x41041041
bt edi, esi
jb 0x101c15f4
cmp eax, 0x881a
je 0x101c15f4
cmp eax, 0x8f97
je 0x101c15f4
jmp 0x101c1727
lea esi, [eax - 0x822e]
cmp esi, 8
ja 0x101c15e2
mov edi, 0x181
bt edi, esi
jb 0x101c15f4
cmp eax, 0x8058
je 0x101c15f4
cmp eax, 0x8814
jne 0x101c1727
mov edi, dword [ebp + 0x14]
mov al, 1
test edi, edi
je 0x101c171f
mov esi, dword [ecx + 0x136c]
cmp dword [esi + 0x2c], edi
jbe 0x101c1620
mov esi, dword [esi + 0x30]
mov esi, dword [esi + edi*4]
cmp esi, 0xffffffff
jne 0x101c16e4
jmp 0x101c1707
mov ebx, edi
shr ebx, 0x10
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], esi
mov esi, edi
shr esi, 8
mov dword [ebp - 0x20], edi
mov ebx, 0xff
and dword [ebp - 0x20], ebx
and esi, ebx
mov dword [ebp - 0x1c], esi
and dword [ebp - 0x18], ebx
mov ebx, edi
shr ebx, 0x18
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x20]
xor ebx, 0x811c9dc5
imul ebx, ebx, 0x1000193
xor ebx, esi
imul ebx, ebx, 0x1000193
xor ebx, dword [ebp - 0x18]
imul ebx, ebx, 0x1000193
xor ebx, dword [ebp - 0x10]
imul esi, ebx, 0x1000193
mov dword [ebp - 0x10], esi
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x10]
and esi, dword [ebx + 0x4c]
mov dword [ebp - 0x10], esi
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebx + 0x38]
mov dword [ebp - 0x24], esi
mov ebx, dword [ebp - 0x14]
mov ebx, dword [ebx + 0x40]
mov dword [ebp - 0x14], ebx
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebx + esi*8 + 4]
mov esi, dword [ebp - 0x1c]
cmp ebx, dword [ebp - 0x24]
je 0x101c1707
and edi, 0xff000000
shl dword [ebp - 0x18], 0x10
add dword [ebp - 0x18], edi
shl esi, 8
add esi, dword [ebp - 0x18]
add esi, dword [ebp - 0x20]
cmp esi, dword [ebx + 8]
je 0x101c16dc
mov edi, dword [ebp - 0x10]
add edi, edi
mov dword [ebp - 0x1c], esi
mov esi, dword [ebp - 0x14]
mov edi, dword [esi + edi*4]
mov esi, dword [ebp - 0x1c]
cmp ebx, edi
je 0x101c1707
mov ebx, dword [ebx + 4]
cmp esi, dword [ebx + 8]
jne 0x101c16d0
cmp ebx, dword [ebp - 0x24]
je 0x101c1707
mov esi, dword [ebx + 0xc]
test esi, esi
je 0x101c1707
cmp byte [esi + 0xd7], 0
jne 0x101c171f
cmp byte [esi + 0x6c], 0xa
je 0x101c171f
add ecx, 0x1d04
push str.Texture_is_not_the_name_of_an_immutable_texture_object_or_a_buffer_texture.
jmp 0x101c1520
add ecx, 0x1d04
push str.texture_is_not_the_name_of_an_existing_texture_object.
push 0x501
push edx
call fcn.1001a2a0
xor eax, eax
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
add ecx, 0x1d04
push str.format_is_not_one_of_supported_image_unit_formats.
jmp 0x101c1712