Function at 0x101a1640
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov esi, dword [ebp + 8]
cmp dword [esi + 0x14], 2
jg 0x101a166b
add esi, 0x1be4
mov ecx, esi
push str.OpenGL_ES_3.0_Required.
push 0x502
call fcn.10021560
jmp 0x101a16b0
mov ebx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x14]
push ebx
push edi
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push esi
call fcn.1018ee10
add esp, 0x14
test al, al
je 0x101a16b0
mov al, 1
test edi, edi
je 0x101a16b2
cmp dword [ebp + 0x1c], 0
js 0x101a16ba
mov edx, dword [esi + 0x127c]
cmp dword [edx + 0x38], edi
jbe 0x101a16cc
mov eax, dword [edx + 0x3c]
mov eax, dword [eax + edi*4]
xor edi, edi
cmp eax, 0xffffffff
cmovne edi, eax
jmp 0x101a176a
xor eax, eax
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
add esi, 0x1be4
mov ecx, esi
push str.Negative_layer.
jmp 0x101a17fb
mov eax, edi
shr eax, 0x10
mov ecx, edi
shr ecx, 8
mov esi, 0xff
mov ebx, edi
and ebx, esi
and ecx, esi
mov dword [ebp - 0x10], ecx
and eax, esi
mov ecx, edi
shr ecx, 0x18
xor ebx, 0x811c9dc5
imul ebx, ebx, 0x1000193
xor ebx, dword [ebp - 0x10]
imul ebx, ebx, 0x1000193
xor ebx, eax
imul ebx, ebx, 0x1000193
xor ebx, ecx
imul esi, ebx, 0x1000193
and esi, dword [edx + 0x58]
mov ecx, dword [edx + 0x44]
mov edx, dword [edx + 0x4c]
shl eax, 0x10
and edi, 0xff0000ff
or edi, eax
mov dword [ebp - 0x18], edx
mov ebx, dword [edx + esi*8]
lea eax, [esi + esi]
inc eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
shl eax, 8
or edi, eax
mov eax, ebx
mov esi, ecx
cmp ecx, ebx
je 0x101a174e
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
mov edx, dword [edx + ecx*4]
mov edx, dword [edx]
jmp 0x101a1750
mov edx, ebx
cmp eax, edx
je 0x101a1761
cmp dword [eax + 8], edi
je 0x101a175f
mov ecx, esi
mov eax, dword [eax]
jmp 0x101a173b
mov esi, eax
mov edi, dword [esi + 0xc]
mov ebx, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
mov dl, byte [edi + 0x60]
mov eax, edx
dec al
cmp al, 7
ja case.0x101a1778.2
movzx eax, al
jmp dword [eax*4 + 0x102f149c]
mov eax, dword [esi + 0x3c]
xor ecx, ecx
dec ecx
inc ecx
mov ebx, eax
sar ebx, cl
cmp ebx, 1
jg 0x101a1785
mov ebx, dword [ebp + 0x18]
cmp ecx, ebx
jge 0x101a17ae
jmp 0x101a17ee
add esi, 0x1be4
mov ecx, esi
push str.Texture_is_not_a_three_dimensional_or_two_dimensionsal_array_texture.
jmp 0x101a165f
test ebx, ebx
jne 0x101a17ee
mov eax, dword [ebp + 0x1c]
cmp dword [esi + 0x44], eax
jg 0x101a180a
add esi, 0x1be4
mov ecx, esi
push str.Layer_invalid_for_framebuffer_texture_attachment.
jmp 0x101a17fb
mov eax, dword [esi + 0x38]
xor ecx, ecx
dec ecx
inc ecx
mov ebx, eax
sar ebx, cl
cmp ebx, 1
jg 0x101a17cb
jmp 0x101a17e7
mov eax, dword [esi + 0x38]
xor ecx, ecx
dec ecx
inc ecx
mov ebx, eax
sar ebx, cl
cmp ebx, 1
jg 0x101a17dd
mov ebx, dword [ebp + 0x18]
cmp ecx, ebx
jge 0x101a1805
add esi, 0x1be4
mov ecx, esi
push str.Mip_level_invalid_for_framebuffer_texture_attachment.
push 0x501
jmp 0x101a1664
cmp eax, dword [ebp + 0x1c]
jle 0x101a17b6
movzx eax, dl
push eax
call fcn.102b00a0
add esp, 4
movzx eax, al
mov ecx, edi
push ebx
push eax
call fcn.10087070
mov eax, dword [eax]
cmp byte [eax + 0x34], 0
mov al, 1
je 0x101a16b2
add esi, 0x1be4
mov ecx, esi
push str.Compressed_textures_cannot_be_attached_to_a_framebuffer.
jmp 0x101a165f