Function at 0x10028dec
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x4470
call fcn.101834c0
mov esi, esp
lea eax, [esi + 0xe0]
xorps xmm0, xmm0
mov word [esi + 0x130], 0
lea edx, [esi + 0xf4c]
mov ebx, 0
mov dword [esi + 0x6c], 0
movaps xmmword [eax + 0x30], xmm0
movaps xmmword [eax + 0x20], xmm0
movaps xmmword [eax + 0x10], xmm0
movaps xmmword [eax], xmm0
mov dword [eax + 0x40], 0
lea eax, [esi + 0x80]
movaps xmmword [eax], xmm0
lea eax, [esi + 0x2c0]
mov dword [esi + 8], eax
movaps xmmword [eax], xmm0
mov eax, dword [ebp + 8]
lea ecx, [eax + 0x18]
mov dword [esi + 0x58], ecx
lea ecx, [eax + 0x14]
lea eax, [eax + 4]
mov dword [esi + 0x54], ecx
mov dword [esi + 0xc], eax
mov eax, 0xfffffffe
xor ecx, ecx
cmp ebx, 0x71
je 0x1002c7a6
movsx edi, word [ebx + ebx + 0x101cf97c]
mov dword [esi + 0x64], ecx
cmp edi, 0xfffffea8
je 0x10028f5d
cmp eax, 0xfffffffe
jne 0x10028eb3
push dword [ebp + 0xc]
lea eax, [esi + 0x80]
push eax
lea eax, [esi + 0xe0]
push eax
mov dword [esi + 4], edx
call fcn.10025e58
mov ecx, dword [esi + 0x64]
mov edx, dword [esi + 4]
add esp, 0xc
test eax, eax
jle 0x10028eca
cmp eax, 0x17e
mov dword [esi + 0x60], eax
ja 0x10028ed5
movzx eax, byte [eax + 0x101cfcb8]
jmp 0x10028eda
xor eax, eax
mov dword [esi + 0x60], 0
jmp 0x10028eda
mov eax, 2
add edi, eax
cmp edi, 0x9e2
ja 0x10028f5a
movsx ecx, word [edi + edi + 0x101cfe38]
cmp eax, ecx
jne 0x10028f57
movsx ebx, word [edi + edi + 0x101d11fe]
mov eax, dword [esi + 0x6c]
test ebx, ebx
jle 0x1002907f
mov ecx, eax
dec eax
test ecx, ecx
cmovne ecx, eax
mov eax, 0x44
add edx, 0x44
mov dword [esi + 0x6c], ecx
push eax
lea eax, [esi + 0xe0]
push eax
mov dword [esi + 4], edx
push edx
call fcn.1019f110
add esp, 0xc
movsd xmm0, qword [esi + 0x80]
mov eax, dword [esi + 8]
movsd xmm1, qword [esi + 0x88]
movsd qword [eax + 0x10], xmm0
movsd qword [eax + 0x18], xmm1
lea eax, [eax + 0x10]
mov dword [esi + 8], eax
mov eax, 0xfffffffe
jmp 0x1002c75d
mov ecx, dword [esi + 0x64]
mov eax, dword [esi + 0x60]
movzx edi, word [ebx + ebx + 0x101d25c4]
test edi, edi
je 0x10028fd2
mov dword [esi + 0x60], eax
movzx ebx, byte [edi + 0x101d2900]
mov dword [esi + 0x68], edi
xor edi, edi
mov dword [esi + 4], edx
inc edi
sub edi, ebx
imul eax, edi, 0x44
add eax, edx
push 0x44
push eax
lea eax, [esi + 0x10]
push eax
call fcn.1019f110
add esp, 0xc
mov edx, dword [esi + 8]
mov eax, ebx
mov dword [esi + 0xa0], ebx
shl eax, 4
mov ecx, edx
sub ecx, eax
mov eax, ebx
neg eax
test ebx, ebx
mov ebx, dword [ebp + 8]
mov dword [esi + 0xa4], ecx
mov dword [esi + 0x9c], eax
je 0x10029007
mov eax, dword [ecx + 0x10]
mov dword [esi + 0x70], eax
mov eax, dword [ecx + 0x14]
mov dword [esi + 0x74], eax
mov eax, dword [edx + 8]
mov dword [esi + 0x78], eax
lea eax, [edx + 0xc]
jmp 0x1002901f
mov edi, dword [esi + 0x6c]
test edi, edi
je 0x10029047
mov dword [esi + 0x6c], edi
mov edi, dword [esi + 0x80]
cmp dword [esi + 0x6c], 3
mov dword [esi + 0x68], edi
mov edi, dword [esi + 0x84]
jne 0x1002908e
test eax, eax
jle 0x10029088
mov eax, 0xfffffffe
jmp 0x1002908e
shl eax, 4
lea eax, [edx + eax + 0xc]
mov ecx, dword [eax - 4]
mov dword [esi + 0x70], ecx
mov ecx, dword [eax]
mov dword [esi + 0x74], ecx
mov ecx, dword [eax - 4]
mov dword [esi + 0x78], ecx
mov eax, dword [eax]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x68]
lea eax, [eax - 2]
cmp eax, 0x10f
ja case.default.0x10029035
jmp dword [eax*4 + 0x101cf4d4]
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
jmp 0x1002c51a
push 0x101d3200
push dword [ebp + 0xc]
push dword [ebp + 8]
mov dword [esi + 0x60], eax
lea eax, [esi + 0x80]
push eax
mov edi, edx
call fcn.10028c2e
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x64]
mov edx, edi
add esp, 0x10
mov edi, dword [esi + 0x80]
mov dword [esi + 0x68], edi
mov edi, dword [esi + 0x84]
jmp 0x1002908e
neg ebx
mov edi, ebx
jmp 0x10028f6c
je 0x1002c79b
add dword [esi + 8], 0x10
add edx, 0x44
mov dword [esi + 0x60], eax
movsx eax, word [ebx + ebx + 0x101cf97c]
cmp eax, 0xfffffea8
je 0x100290cb
cmp eax, 0xffffffff
jl 0x100290cb
mov dword [esi + 0x64], ecx
movzx ecx, word [eax + eax + 0x101cfe3a]
cmp ecx, 1
mov ecx, dword [esi + 0x64]
jne 0x100290cb
movsx ebx, word [eax + eax + 0x101d1200]
test ebx, ebx
jg 0x100290f3
test ecx, ecx
je 0x1002c79b
mov eax, dword [esi + 8]
movsx ebx, word [esi + ecx*2 + 0x12e]
dec ecx
add edx, 0xffffffbc
mov edi, dword [eax - 0x10]
mov dword [esi + 0x68], edi
mov edi, dword [eax - 0xc]
lea eax, [eax - 0x10]
mov dword [esi + 8], eax
jmp 0x10029098
push 0x44
lea eax, [esi + 0xe0]
push eax
mov dword [esi + 4], edx
push edx
call fcn.1019f110
add esp, 0xc
mov eax, dword [esi + 0x68]
mov dword [esi + 0x6c], 3
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x88]
mov dword [esi + 0x74], edi
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x8c]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 8]
movsd xmm0, qword [esi + 0x70]
movsd xmm1, qword [esi + 0x78]
movsd qword [eax], xmm0
movsd qword [eax + 8], xmm1
jmp 0x1002c75a
mov eax, dword [esi + 0xc]
jmp 0x10029a6f
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xc]
jmp 0x1002c232
mov byte [esi + 0x1c], 0xf
jmp case.default.0x10029035
mov ecx, dword [esi + 4]
mov eax, dword [ecx - 0x84]
mov ecx, dword [ecx + 4]
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], ecx
jmp case.default.0x10029035
mov eax, dword [esi + 4]
lea eax, [eax - 0x44]
push 0x44
push eax
jmp 0x1002b12e
mov eax, dword [esi + 4]
mov ecx, ebx
push dword [eax]
push edx
call fcn.1001e768
test al, al
je 0x1002919e
mov ecx, ebx
call fcn.10005cc4
lea ecx, [esi + 0xa8]
xor ebx, ebx
lea eax, [esi + 0xb0]
mov dword [ecx], 0x1000000
mov word [ecx + 4], 1
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 8], ebx
mov dword [ecx + 0x18], 0xffffffff
mov dword [eax + 0x18], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x20], ebx
mov dword [eax + 0x1c], ebx
call fcn.100241ca
mov ecx, eax
push 0x88
call fcn.1002435a
mov edi, eax
mov ecx, eax
push 0x101c8289
push ebx
lea eax, [esi + 0xa8]
push eax
mov eax, dword [esi + 4]
push dword [eax]
call fcn.1000ec78
mov dword [esi + 0x1c], edi
jmp case.default.0x10029035
push 0x44
mov edi, dword [esi + 4]
push edi
lea eax, [esi + 0x10]
push eax
mov dword [esi + 8], edx
call fcn.1019f110
add esp, 0xc
movzx eax, byte [edi - 0x38]
movzx edx, byte [edi - 0x7c]
mov ecx, ebx
push dword [esi + 0x20]
push eax
push edx
jmp 0x10029271
push 0x44
mov edi, dword [esi + 4]
push edi
lea eax, [esi + 0x10]
push eax
mov dword [esi + 8], edx
call fcn.1019f110
add esp, 0xc
movzx eax, byte [edi - 0x38]
mov ecx, ebx
push dword [edi + 0x10]
push eax
push dword [esi + 8]
call fcn.1001ee00
test al, al
je 0x10029262
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 4]
mov ecx, ebx
movzx eax, byte [eax - 0x38]
push dword [esi + 0x20]
push eax
push 0
push dword [esi + 8]
call fcn.1001f272
jmp 0x1002c33c
mov ecx, ebx
mov ebx, edx
mov edx, dword [esi + 4]
lea edi, [esi + 0xa8]
mov eax, dword [edx]
push ebx
add ebx, 0xffffffe0
push eax
push eax
push ebx
push dword [edx - 0x88]
push edi
call fcn.10022992
jmp 0x1002a00b
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
call fcn.10004066
jmp case.0x10029035.3
mov ecx, dword [ebx + 4]
call fcn.10003eb0
inc dword [ebx + 0x20]
jmp case.default.0x10029035
mov eax, dword [esi + 4]
mov eax, dword [eax - 0x40]
jmp 0x1002c51a
mov dword [esi + 8], edx
call fcn.100241ca
mov ecx, eax
push 8
call fcn.1002435a
mov ecx, dword [esi + 4]
xor edx, edx
lea edi, [esi + 0xa8]
mov dword [eax], edx
mov byte [eax + 4], 0
mov ecx, dword [ecx]
mov dword [eax], ecx
mov byte [eax + 4], 2
mov ecx, dword [ebx]
mov dword [edi], 0x1020002
jmp 0x100293a0
mov dword [esi + 8], edx
call fcn.100241ca
mov ecx, eax
push 8
call fcn.1002435a
mov ecx, dword [esi + 4]
xor edx, edx
lea edi, [esi + 0xa8]
mov dword [eax], edx
mov byte [eax + 4], 0
mov ecx, dword [ecx]
mov dword [eax], ecx
mov byte [eax + 4], 3
mov ecx, dword [ebx]
mov dword [edi], 0x1020003
jmp 0x100293a0
mov dword [esi + 8], edx
call fcn.100241ca
mov ecx, eax
push 8
call fcn.1002435a
mov ecx, dword [esi + 4]
xor edx, edx
lea edi, [esi + 0xa8]
mov dword [eax], edx
mov byte [eax + 4], 0
mov ecx, dword [ecx]
mov dword [eax], ecx
mov byte [eax + 4], 1
mov ecx, dword [ebx]
mov dword [edi], 0x1020001
jmp 0x100293a0
mov dword [esi + 8], edx
call fcn.100241ca
mov ecx, eax
push 8
call fcn.1002435a
mov ecx, dword [esi + 4]
xor edx, edx
lea edi, [esi + 0xa8]
mov dword [eax], edx
mov byte [eax + 4], 0
mov cl, byte [ecx]
mov byte [eax], cl
mov byte [eax + 4], 4
mov ecx, dword [ebx]
mov dword [edi], 0x1020004
lea ebx, [esi + 0xb0]
mov word [edi + 4], 1
mov dword [ebx + 4], edx
mov dword [ebx], edx
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], edx
mov dword [edi + 0x18], 0xffffffff
mov dword [ebx + 0x18], edx
mov dword [ebx + 0x14], edx
mov dword [ebx + 0x20], edx
mov dword [ebx + 0x1c], edx
push dword [esi + 8]
push edi
push eax
call fcn.10012f0a
jmp 0x1002c51a
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
add edx, 0xfffffff0
push dword [eax]
push edx
push dword [eax - 0x84]
call fcn.10022574
jmp 0x1002c51a
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002941b
mov eax, 0x101c8289
mov ecx, ebx
push eax
push eax
push str.methods_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
push 0x44
mov edi, dword [esi + 4]
push edi
lea eax, [esi + 0x10]
push eax
call fcn.1019f110
add esp, 0xc
mov eax, dword [edi - 0x84]
mov dword [esi + 0x18], eax
jmp case.default.0x10029035
mov eax, dword [esi + 4]
mov eax, dword [eax - 0x38]
jmp 0x1002a9ba
lea eax, [esi + 0xa8]
mov dword [esi + 8], edx
mov dword [eax], 0
call fcn.100241ca
mov ebx, 0x2c
mov ecx, eax
push ebx
call fcn.1002435a
mov edi, dword [esi + 4]
mov ecx, dword [edi + 4]
add ecx, 0x14
push ebx
push ecx
push eax
mov ebx, eax
call fcn.1019f110
add esp, 0xc
mov ecx, dword [edi - 0x38]
lea eax, [esi + 0xa8]
mov dword [eax + 4], ebx
push eax
call fcn.1000ed1c
mov eax, dword [edi - 0x38]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push dword [esi + 8]
push dword [edi + 4]
jmp 0x1002c2b5
mov eax, dword [esi + 4]
mov eax, dword [eax - 0x38]
jmp 0x1002c232
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push 0xf
jmp 0x1002aa85
mov edx, dword [esi + 4]
mov eax, dword [edx - 0x44]
test eax, eax
je 0x1002c572
mov edi, dword [esi + 8]
mov ecx, ebx
add edi, 0xfffffff0
push edi
push dword [edx + 4]
push eax
call fcn.10022fca
jmp 0x1002c51a
mov dword [esi + 0x10], 9
jmp case.default.0x10029035
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002951d
mov ecx, ebx
push 0x101c8289
push 0x101c8fa0
push str.bit_wise_operator_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x10], 0xb
jmp case.default.0x10029035
mov eax, dword [esi + 0x54]
add edx, 0xfffffff0
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002955d
mov ecx, ebx
push 0x101c8289
push 0x101c8f73
push str._supported_in_vertex_fragment_shaders_only
push edx
mov edi, edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, edi
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x12
jmp 0x1002abcf
mov eax, dword [esi + 0x54]
add edx, 0xfffffff0
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x100295a7
mov ecx, ebx
push 0x101c8289
push 0x101c8f75
push str._supported_in_vertex_fragment_shaders_only
push edx
mov edi, edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, edi
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x13
jmp 0x1002abcf
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x100295f0
lea eax, [edx - 0x10]
mov ecx, ebx
push 0x101c8289
push 0x101c8f90
push str._supported_in_vertex_fragment_shaders_only
push eax
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x58]
add edx, 0xfffffff0
cmp dword [eax], 0x12c
je 0x10029620
mov ecx, ebx
push 0x101c8289
push 0x101c8f90
push str.integer_modulus_operator_supported_in_GLSL_ES_3.00_only
push edx
mov edi, edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, edi
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x28
jmp 0x1002abcf
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x18
jmp 0x1002abed
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x1b
jmp 0x1002abed
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x14
jmp 0x1002abed
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x15
jmp 0x1002abed
mov eax, dword [esi + 0x58]
add edx, 0xfffffff0
cmp dword [eax], 0x12c
je 0x100296ca
mov ecx, ebx
push 0x101c8289
push 0x101c8f98
push str.bit_wise_operator_supported_in_GLSL_ES_3.00_only
push edx
mov edi, edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, edi
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x2b
jmp 0x1002abcf
mov eax, dword [esi + 0x58]
add edx, 0xfffffff0
cmp dword [eax], 0x12c
je 0x10029710
mov ecx, ebx
push 0x101c8289
push 0x101c8f9c
push str.bit_wise_operator_supported_in_GLSL_ES_3.00_only
push edx
mov edi, edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, edi
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x2d
jmp 0x1002abcf
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x26
jmp 0x1002abed
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x25
jmp 0x1002abed
add edx, 0xffffffd0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push dword [eax - 0x10c]
call fcn.10023c2a
jmp 0x1002c51a
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x100297a6
mov ecx, ebx
push 0x101c8289
push 0x101c8f5a
push str.bit_wise_operator_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x100297d3
mov ecx, ebx
push 0x101c8289
push 0x101c8f5a
push str._supported_in_vertex_fragment_shaders_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x10], 0x9c
jmp case.default.0x10029035
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002980b
mov ecx, ebx
push 0x101c8289
push 0x101c8f64
push str.bit_wise_operator_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x10029838
mov ecx, ebx
push 0x101c8289
push 0x101c8f64
push str._supported_in_vertex_fragment_shaders_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x10], 0x9f
jmp case.default.0x10029035
mov ecx, dword [ebx]
add edx, 0xfffffff0
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
mov edi, edx
call fcn.10012d60
test eax, eax
mov dword [esi + 0x14], eax
jne case.default.0x10029035
mov edx, edi
mov dword [esi + 0x5c], esp
push eax
sub esp, 0x3c
mov edi, dword [esi + 4]
mov ebx, esp
lea eax, [ebx + 0x24]
mov ecx, dword [edi + 4]
add ecx, 0x14
push eax
mov dword [esi + 8], edx
call fcn.1002c82c
mov ecx, dword [edi - 0x84]
lea eax, [ebx + 8]
add ecx, 0x14
push eax
call fcn.1002c82c
mov eax, dword [esi + 8]
mov dword [ebx], eax
mov dword [ebx + 4], 0x101d2b03
mov ebx, dword [ebp + 8]
mov ecx, ebx
call fcn.1001e2fc
mov esp, dword [esi + 0x5c]
mov ecx, ebx
call fcn.10005cc4
jmp 0x1002a7e3
mov eax, dword [esi + 4]
mov ecx, ebx
push dword [eax + 4]
call fcn.1001e6cc
jmp 0x1002a91f
mov eax, dword [esi + 4]
mov eax, dword [eax - 0x40]
test eax, eax
je 0x1002c51a
cmp dword [eax + 0x40], 0
jne 0x1002c51a
mov dword [eax + 0x40], 5
jmp 0x1002c51a
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
jne 0x1002c446
lea edi, [edx - 0x40]
jmp 0x1002c481
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
jne 0x1002c4aa
lea eax, [edx - 0x50]
mov dword [esi + 0x5c], eax
jmp 0x1002c4e8
mov eax, dword [esi + 4]
mov ecx, ebx
lea eax, [eax - 0x38]
push eax
call fcn.100206fc
jmp case.0x10029035.226
mov eax, dword [esi + 4]
mov ecx, ebx
push dword [eax - 0x38]
push edx
call fcn.10020e04
jmp 0x1002c232
mov ecx, dword [esi + 4]
mov eax, dword [ecx - 0x38]
mov ecx, dword [ecx + 0x10]
mov dword [esi + 0x1c], eax
cmp byte [ecx], 0
je case.default.0x10029035
mov ecx, dword [esi + 4]
lea eax, [ecx + 0xc]
mov ecx, dword [ecx - 0x38]
jmp 0x10029987
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x10]
cmp byte [eax], 0
je 0x1002c577
mov ecx, dword [edx - 0x7c]
lea eax, [edx + 0xc]
mov dword [esi + 0x1c], ecx
mov ecx, dword [edx - 0x7c]
push eax
call fcn.1000ed1c
jmp case.default.0x10029035
mov ecx, dword [esi + 4]
mov al, byte [ecx - 0x6c]
cmp al, 2
jb 0x100299d6
add al, 0xfe
mov edx, str.unknown_qualifier
cmp al, 0x20
ja 0x100299b1
movsx eax, al
mov edx, dword [eax*4 + 0x101d3220]
mov edi, dword [esi + 8]
mov ecx, ebx
lea eax, [edi - 0x10]
push 0x101c8289
push edx
push str.no_qualifiers_allowed_for_function_return
push eax
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov ecx, dword [esi + 4]
mov edx, edi
cmp dword [ecx - 0x78], 0xffffffff
lea edi, [ecx - 0x7c]
jne 0x100299ef
cmp dword [ecx - 0x74], 0
jne 0x100299ef
cmp dword [ecx - 0x70], 0
je 0x1002c661
add edx, 0xfffffff0
mov ecx, ebx
push 0x101c8289
push str.layout
push str.no_qualifiers_allowed_for_function_return
push edx
mov dword [esi + 8], edi
mov edi, edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, edi
mov edi, dword [esi + 8]
mov ecx, ebx
push str.samplers_cant_be_function_return_values
push edi
push edx
call fcn.1001ec4a
test al, al
je 0x10029a33
mov ecx, ebx
call fcn.10005cc4
lea ebx, [esi + 0xa8]
mov ecx, ebx
push edi
call fcn.10024504
call fcn.100241ca
mov ecx, eax
push 0x88
call fcn.1002435a
mov edi, eax
mov ecx, eax
push 0x101c8289
push 0
push ebx
mov eax, dword [esi + 4]
push dword [eax - 0x44]
call fcn.1000ec78
mov eax, dword [esi + 0xc]
mov dword [esi + 0x1c], edi
mov ecx, dword [eax]
call fcn.10003eb0
jmp case.default.0x10029035
mov byte [esi + 0x1c], 0x10
jmp case.default.0x10029035
mov edi, dword [esi + 4]
lea eax, [edi - 0x154]
push 0x44
push eax
lea eax, [esi + 0x10]
push eax
mov ebx, edx
call fcn.1019f110
add esp, 0xc
mov ecx, dword [ebp + 8]
lea eax, [ebx - 0x20]
add ebx, 0xffffffd0
push dword [edi - 0x40]
push eax
push dword [edi - 0xcc]
push ebx
push dword [edi - 0x150]
lea eax, [esi + 0x1c]
push eax
call fcn.1002044c
jmp 0x1002c51a
mov eax, dword [esi + 0x58]
lea edi, [edx - 0x40]
cmp dword [eax], 0x12c
je 0x10029af2
mov ecx, ebx
push 0x101c8289
push 0x101c8f6a
push str.implicitly_sized_array_supported_in_GLSL_ES_3.00_only
push edi
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x5c], edi
mov edi, dword [esi + 4]
lea eax, [edi - 0x198]
push 0x44
push eax
lea eax, [esi + 0x10]
push eax
call fcn.1019f110
add esp, 0xc
mov edx, dword [esi + 8]
mov ecx, ebx
lea eax, [edx - 0x10]
add edx, 0xffffffd0
push dword [edi + 4]
push eax
push 0
push edx
push dword [edi - 0x110]
push dword [esi + 0x5c]
push dword [edi - 0x194]
jmp 0x10029b9c
mov eax, dword [esi + 0x58]
lea edi, [edx - 0x10]
cmp dword [eax], 0x12c
je 0x10029b5c
mov ecx, ebx
push 0x101c8289
push 0x101c8f48
push str.first_class_arrays__array_initializer__supported_in_GLSL_ES_3.00_only
push edi
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x5c], edi
mov edi, dword [esi + 4]
lea eax, [edi - 0x1dc]
push 0x44
push eax
lea eax, [esi + 0x10]
push eax
call fcn.1019f110
add esp, 0xc
mov edx, dword [esi + 8]
mov ecx, ebx
lea eax, [edx - 0x40]
add edx, 0xffffffb0
push dword [edi + 4]
push dword [esi + 0x5c]
push dword [edi - 0xc8]
push eax
push dword [edi - 0x154]
push edx
push dword [edi - 0x1d8]
lea eax, [esi + 0x1c]
push eax
call fcn.100205f2
jmp 0x1002c51a
mov eax, dword [esi + 4]
lea eax, [eax + 0xc]
push 0x38
push eax
lea eax, [esi + 0x1c]
mov edi, eax
push eax
mov ebx, edx
call fcn.1019f110
add esp, 0xc
lea ecx, [esi + 0xa8]
push 0x101c8289
call fcn.10002d7e
mov ecx, dword [ebp + 8]
lea eax, [esi + 0xa8]
push eax
push ebx
push edi
jmp 0x10029c02
mov edi, dword [esi + 4]
lea eax, [edi - 0x38]
push 0x38
push eax
lea eax, [esi + 0x1c]
push eax
mov ebx, edx
call fcn.1019f110
add esp, 0xc
mov ecx, dword [ebp + 8]
push dword [edi]
push ebx
lea eax, [esi + 0x1c]
push eax
call fcn.1001ff42
jmp 0x1002c51a
mov edi, dword [esi + 4]
lea eax, [edi - 0x104]
push 0x38
push eax
lea eax, [esi + 0x1c]
push eax
mov ebx, edx
call fcn.1019f110
add esp, 0xc
mov ecx, dword [ebp + 8]
lea eax, [ebx - 0x20]
add ebx, 0xffffffd0
push dword [edi - 0x40]
push eax
push dword [edi - 0xcc]
push ebx
lea eax, [esi + 0x1c]
push eax
call fcn.1002002a
jmp 0x1002c51a
mov edi, dword [esi + 4]
lea eax, [edi - 0xc0]
push 0x38
push eax
lea eax, [esi + 0x1c]
push eax
mov ebx, edx
call fcn.1019f110
add esp, 0xc
mov ecx, dword [ebp + 8]
lea eax, [ebx - 0x10]
add ebx, 0xffffffe0
push dword [edi + 4]
push eax
push dword [edi - 0x88]
push ebx
lea eax, [esi + 0x1c]
push eax
call fcn.10020114
jmp 0x1002c51a
mov eax, dword [esi + 4]
mov ecx, ebx
push dword [eax + 4]
push dword [eax]
push edx
add edx, 0xfffffff0
push edx
call fcn.10020254
jmp 0x1002c51a
mov eax, dword [esi + 4]
mov ecx, dword [ebp + 8]
movzx ebx, byte [eax - 0x27]
movzx edi, byte [eax - 0x28]
lea edx, [eax + 0xc]
push edx
push dword [eax - 0x2c]
push dword [eax - 0x30]
push dword [eax - 0x34]
push ebx
push edi
lea eax, [esi + 0xa8]
push eax
call fcn.1001fb14
push 0x38
lea eax, [esi + 0xa8]
jmp 0x1002b62d
mov byte [esi + 0x2c], 0x1d
jmp case.default.0x10029035
mov byte [esi + 0x2c], 0x1e
jmp case.default.0x10029035
mov eax, dword [esi + 0x58]
add edx, 0xfffffff0
mov edi, edx
cmp dword [eax], 0x64
je 0x10029d12
mov ecx, ebx
push 0x101c8289
push str.varying
push str._supported_in_GLSL_ES_1.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, edi
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
cmp ecx, 0x14
mov ecx, ebx
setl al
push str.invariant_varying
push eax
push edx
call fcn.1001e73e
test al, al
je 0x10029d3b
mov ecx, ebx
call fcn.10005cc4
mov ecx, dword [esi + 0x54]
xor eax, eax
cmp dword [ecx], 0x8b31
mov byte [esi + 0x1c], 0
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
jne 0x1002c522
mov word [esi + 0x2c], 7
jmp 0x1002c528
mov eax, dword [esi + 0xc]
lea edx, [esi + 0x20]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
cmp ecx, 0x14
mov ecx, dword [esi + 4]
setl byte [esi + 0x2c]
jmp 0x10029fc5
mov edi, edx
mov edx, dword [esi + 4]
xor eax, eax
lea ebx, [esi + 0x20]
movsd xmm0, qword [edi]
mov byte [esi + 0x1c], al
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
movsd xmm1, qword [edi + 8]
mov cl, byte [edx + 0x1c]
mov edi, dword [edx - 0x30]
mov byte [esi + 0x2c], cl
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], al
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
movsd qword [ebx + 0x24], xmm0
movsd xmm0, qword [edx - 0x38]
mov ecx, ebx
movsd qword [ebx + 0x2c], xmm1
mov dword [ecx + 8], edi
jmp 0x1002a018
mov edi, dword [esi + 4]
mov ecx, ebx
lea eax, [edx - 0x10]
mov ebx, edx
movzx edx, byte [edi + 0x1c]
push eax
push edx
call fcn.1001f540
mov cl, byte [edi + 0x1c]
xor eax, eax
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
mov byte [esi + 0x1c], al
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov byte [esi + 0x2c], cl
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
lea ecx, [esi + 0x20]
mov byte [esi + 0x38], al
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
movsd qword [ecx + 0x2c], xmm1
movsd qword [ecx + 0x24], xmm0
jmp 0x1002b4ef
mov byte [esi + 0x2c], 2
jmp case.default.0x10029035
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x10029e79
lea eax, [edx - 0x10]
mov ecx, ebx
push 0x101c8289
push str.centroid_in
push str.storage_qualifier_supported_in_GLSL_ES_3.00_only
push eax
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
cmp eax, 0x8b31
jne 0x10029ea9
add edx, 0xfffffff0
mov ecx, ebx
push 0x101c8289
push str.it_is_an_error_to_use_centroid_in_in_the_vertex_shader
push str.invalid_storage_qualifier
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [ebx + 0x14]
cmp eax, 0x8b30
mov al, 0x22
jne 0x1002b52e
jmp 0x1002b569
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x10029eea
lea eax, [edx - 0x10]
mov ecx, ebx
push 0x101c8289
push str.centroid_out
push str.storage_qualifier_supported_in_GLSL_ES_3.00_only
push eax
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
cmp eax, 0x8b30
jne 0x10029f1a
add edx, 0xfffffff0
mov ecx, ebx
push 0x101c8289
push str.it_is_an_error_to_use_centroid_out_in_the_fragment_shader
push str.invalid_storage_qualifier
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [ebx + 0x14]
cmp eax, 0x8b30
mov al, 0xa
je 0x1002b569
mov al, 0x1f
jmp 0x1002b569
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
cmp ecx, 0x14
mov ecx, ebx
setl al
push str.uniform
push eax
push edx
call fcn.1001e73e
test al, al
je 0x10029f57
mov ecx, ebx
call fcn.10005cc4
mov byte [esi + 0x2c], 8
jmp case.default.0x10029035
mov eax, dword [esi + 4]
lea edi, [eax + 0xc]
push 0x38
push edi
lea eax, [esi + 0x1c]
push eax
call fcn.1019f110
mov edx, dword [esi + 8]
add esp, 0xc
cmp byte [esi + 0x2e], 0
jne case.default.0x10029035
movzx eax, byte [edi]
mov ecx, dword [ebx + 4]
push eax
mov ebx, edx
call fcn.1002c7aa
movzx edx, byte [edi]
mov ecx, dword [ebp + 8]
mov byte [esi + 0x2e], al
movzx eax, al
push edx
push eax
push ebx
mov edi, dword [ebp + 8]
call fcn.1001e3f4
test al, al
je case.default.0x10029035
mov ecx, edi
jmp 0x1002c64b
mov byte [esi + 0x1c], 3
jmp case.default.0x10029035
mov ecx, dword [esi + 4]
lea edx, [esi + 0x1c]
mov eax, dword [ecx + 0x14]
movsd xmm0, qword [ecx + 0xc]
jmp 0x1002b619
mov eax, dword [esi + 4]
lea edi, [esi + 0xa8]
mov ecx, ebx
push dword [eax + 0x14]
push dword [eax + 0x10]
push dword [eax + 0xc]
push dword [eax - 0x74]
push dword [eax - 0x78]
push dword [eax - 0x7c]
push edi
call fcn.10022a1c
jmp 0x1002a00b
lea edi, [esi + 0xa8]
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax]
push edi
call fcn.100228b0
mov eax, dword [edi + 8]
movsd xmm0, qword [edi]
lea ecx, [esi + 0x1c]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
jmp case.default.0x10029035
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002a04d
add edx, 0xfffffff0
mov ecx, ebx
push 0x101c8289
push 0x101c8f6a
push str.implicitly_sized_array_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 4]
lea eax, [eax - 0x7c]
push 0x38
push eax
lea eax, [esi + 0x1c]
push eax
call fcn.1019f110
add esp, 0xc
mov byte [esi + 0x38], 1
mov dword [esi + 0x3c], 0
jmp case.default.0x10029035
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
jmp 0x1002b774
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 2
jmp 0x1002b774
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
jmp 0x1002b7e8
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
jmp 0x1002b84d
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
jmp 0x1002b8af
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 4
jmp 0x1002b7e8
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 4
jmp 0x1002b84d
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 4
jmp 0x1002b8af
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 2
jmp 0x1002b8af
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a19d
mov ecx, ebx
push 0x101c8289
push str.mat4
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
cmp ecx, edx
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov eax, dword [esi + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov eax, 4
jmp 0x1002ba22
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a230
mov ecx, ebx
push 0x101c8289
push str.mat2x4
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
cmp ecx, edx
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov eax, dword [esi + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov dword [esi + 0x30], 2
jmp 0x1002a326
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a2c5
mov ecx, ebx
push 0x101c8289
push str.mat3x4
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
cmp ecx, edx
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov eax, dword [esi + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov dword [esi + 0x30], 3
mov eax, 4
jmp 0x1002ba25
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a35f
mov ecx, ebx
push 0x101c8289
push str.samplerCube
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x11
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a3a8
mov ecx, ebx
push 0x101c8289
push str.sampler2DArray
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x12
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a3f1
mov ecx, ebx
push 0x101c8289
push str.isampler2D
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x15
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a43a
mov ecx, ebx
push 0x101c8289
push str.isampler3D
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x16
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a483
mov ecx, ebx
push 0x101c8289
push str.isamplerCube
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x17
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a4cc
mov ecx, ebx
push 0x101c8289
push str.isampler2DArray
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x18
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a515
mov ecx, ebx
push 0x101c8289
push str.usampler2D
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x19
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a55e
mov ecx, ebx
push 0x101c8289
push str.usamplerCube
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x1b
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002a5a7
mov ecx, ebx
push 0x101c8289
push str.sampler2DShadow
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x1d
jmp 0x1002bf31
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 4]
mov ebx, edx
mov edi, 0x14
movsd xmm0, qword [ebx]
movsd xmm1, qword [ebx + 8]
mov ecx, dword [ecx]
mov eax, dword [eax + 4]
mov edx, dword [ecx + 4]
add eax, 0xc
sub edx, dword [ecx]
xor ecx, ecx
mov byte [esi + 0x1c], 0x25
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], ecx
mov dword [esi + 0x28], ecx
cmp edx, edi
setl byte [esi + 0x2c]
xor edx, edx
mov word [esi + 0x2d], 0
inc edx
mov dword [esi + 0x30], edx
mov dword [esi + 0x34], edx
lea edx, [esi + 0x20]
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x40], ecx
movsd qword [edx + 0x2c], xmm1
movsd qword [edx + 0x24], xmm0
mov dword [esi + 0x40], eax
jmp case.default.0x10029035
mov eax, dword [esi + 4]
add edx, 0xfffffff0
mov ecx, ebx
push dword [eax - 0x44]
jmp 0x1002bfcd
lea eax, [edx - 0x40]
add edx, 0xffffffb0
mov ecx, ebx
lea edi, [esi + 0xa8]
mov ebx, edx
mov edx, dword [esi + 4]
push dword [edx - 0x38]
push dword [edx - 0x110]
push eax
push ebx
push edi
jmp 0x1002a698
mov eax, dword [esi + 4]
mov ebx, edx
mov eax, dword [eax - 0x38]
mov dword [esi + 0x5c], eax
call fcn.100241ca
mov ecx, eax
push 0x1c
call fcn.1002435a
mov edi, eax
mov ecx, eax
push 0x101c8289
call fcn.10002d7e
mov ecx, dword [ebp + 8]
add ebx, 0xffffffc0
lea eax, [esi + 0xa8]
push dword [esi + 0x5c]
push edi
push ebx
push ebx
mov edi, eax
push eax
call fcn.10022d4c
jmp 0x1002b469
mov edx, dword [esi + 4]
mov ecx, ebx
lea eax, [edx - 0x7c]
push dword [edx - 0x38]
push eax
jmp 0x1002c0fa
mov eax, dword [esi + 4]
mov ecx, ebx
push dword [eax]
push edx
call fcn.1001e768
test al, al
je 0x1002a6cb
mov ecx, ebx
call fcn.10005cc4
call fcn.100241ca
mov ecx, eax
push 0x2c
call fcn.1002435a
mov dword [eax], 0x1000000
mov edi, eax
mov word [eax + 4], 1
xor eax, eax
mov dword [edi + 0xc], eax
mov dword [edi + 8], eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x18], 0xffffffff
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x28], eax
mov dword [edi + 0x24], eax
call fcn.100241ca
mov edx, 0x18
mov ecx, eax
push edx
call fcn.1002435a
mov ecx, dword [esi + 4]
mov edx, dword [esi + 8]
mov ecx, dword [ecx]
mov dword [eax], edi
mov dword [eax + 4], ecx
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
jmp 0x1002c228
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
call fcn.10004066
jmp case.default.0x10029035
mov ecx, dword [ebx]
lea eax, [esi + 0x70]
push eax
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x40]
jmp 0x1002aa2b
mov eax, dword [esi + 4]
add edx, 0xffffffc0
mov ecx, ebx
push dword [eax - 0x84]
mov edi, edx
push edx
call fcn.1001ebd4
test al, al
je 0x1002a779
mov ecx, ebx
call fcn.10005cc4
mov ecx, dword [ebx]
push edi
mov eax, dword [esi + 4]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax - 0x84]
call fcn.10012c50
jmp 0x1002c51a
mov eax, dword [esi + 4]
add edx, 0xffffffe0
mov ecx, ebx
lea eax, [eax - 0xc0]
mov dword [esi + 0x5c], eax
push eax
mov dword [esi + 8], edx
push edx
call fcn.1001ec10
test al, al
je 0x1002a7bb
mov ecx, ebx
call fcn.10005cc4
lea eax, [esi + 0xa8]
mov ecx, ebx
push eax
mov edi, dword [esi + 4]
push dword [edi + 4]
push dword [esi + 0x5c]
push dword [edi - 0x88]
push dword [esi + 8]
call fcn.1001f7c0
test al, al
jne 0x1002c6bc
mov eax, dword [edi + 4]
jmp 0x1002c51a
mov eax, dword [esi + 4]
mov ecx, ebx
push dword [eax - 0x84]
push edx
call fcn.1001ebd4
test al, al
je 0x1002a807
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov ecx, dword [ebx]
xor eax, eax
add edx, 0xffffffc0
push edx
mov edx, dword [esi + 4]
push dword [edx - 0x150]
push eax
push dword [edx - 0x84]
push eax
push 2
jmp 0x1002c394
mov eax, dword [esi + 4]
mov eax, dword [eax - 0x40]
jmp 0x1002c2c5
mov eax, dword [esi + 0x54]
add edx, 0xfffffff0
cmp dword [eax], 0x8b30
je 0x1002a865
mov ecx, ebx
push 0x101c8289
push str.discard
push str._supported_in_fragment_shaders_only
push edx
mov edi, edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, edi
mov ecx, ebx
push edx
push 0x72
jmp 0x1002c3c0
mov ecx, dword [ebx]
lea eax, [esi + 0x70]
push eax
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x40]
call fcn.10012b34
jmp 0x1002c3e8
mov eax, dword [esi + 4]
mov ecx, ebx
push dword [eax + 4]
push dword [eax]
push edx
call fcn.1001f5c8
mov edi, dword [eax + 0x3c]
test edi, edi
je 0x1002c42b
cmp dword [eax + 0x14], 1
jg 0x1002c42b
add eax, 0xc
lea ebx, [esi + 0xa8]
push 0x2c
push eax
push ebx
call fcn.1019f110
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
push dword [esi + 8]
push ebx
push edi
jmp 0x100293cf
mov eax, dword [esi + 4]
add edx, 0xffffffe0
mov ecx, ebx
push dword [eax - 0x40]
push edx
push dword [eax - 0xc8]
call fcn.1002203a
jmp 0x1002c51a
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax - 0x40]
push 0xc
jmp 0x1002aa85
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax - 0x40]
push 0xd
jmp 0x1002aa85
mov ecx, ebx
push 0x101c8f6a
mov eax, dword [esi + 4]
push dword [eax + 4]
call fcn.1001e6f6
test al, al
je case.0x10029035.3
mov ecx, ebx
call fcn.10005cc4
jmp case.0x10029035.3
mov ecx, dword [ebp + 8]
lea ebx, [esi + 0xa8]
xor eax, eax
mov byte [ebx], al
push ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax + 0xc]
call fcn.100237b8
mov dword [esi + 0x14], eax
xor eax, eax
mov ecx, dword [esi + 8]
cmp byte [ebx], al
je case.default.0x10029035
shl edi, 4
mov edx, dword [esi + 4]
mov eax, dword [ecx + edi]
mov edi, dword [ecx + edi + 4]
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x68], eax
imul eax, dword [esi + 0x9c], 0x44
sub ecx, dword [esi + 0xa0]
add edx, eax
mov eax, dword [esi + 0xa4]
movsx ebx, word [esi + ecx*2 + 0x130]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x60]
jmp 0x1002908e
push 0x44
push dword [esi + 4]
lea eax, [esi + 0x10]
push eax
call fcn.1019f110
add esp, 0xc
jmp 0x1002c2c8
mov eax, dword [esi + 4]
mov eax, dword [eax + 0xc]
mov dword [esi + 0x1c], eax
jmp case.0x10029035.226
lea eax, [esi + 0xa8]
mov dword [esi + 8], edx
mov dword [eax], 0
call fcn.100241ca
mov edx, 0x2c
mov ecx, eax
push edx
mov ebx, 0x2c
call fcn.1002435a
mov edi, dword [esi + 4]
mov ecx, dword [edi + 4]
add ecx, 0x14
push ebx
push ecx
push eax
mov ebx, eax
call fcn.1019f110
add esp, 0xc
mov ecx, dword [edi - 0x7c]
lea eax, [esi + 0xa8]
mov dword [eax + 4], ebx
push eax
call fcn.1000ed1c
mov eax, dword [edi - 0x7c]
mov dword [esi + 0x1c], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov eax, dword [esi + 8]
add eax, 0xfffffff0
push eax
push dword [edi + 4]
push dword [edi - 0x84]
call fcn.10012b34
jmp 0x1002c51a
mov eax, dword [esi + 4]
cmp byte [eax + 0x28], 0
lea edi, [eax + 0xc]
je 0x1002aa6a
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002aa6a
mov ecx, ebx
push 0x101c8289
push 0x101c8f6a
push str.array_constructor_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov ecx, ebx
push edi
call fcn.1002104a
jmp 0x1002c232
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push 0xe
call fcn.10023028
jmp 0x1002c51a
mov dword [esi + 0x10], 0
jmp case.default.0x10029035
mov dword [esi + 0x10], 8
jmp case.default.0x10029035
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x10
jmp 0x1002abcf
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x11
jmp 0x1002abcf
mov eax, dword [esi + 0x58]
add edx, 0xfffffff0
cmp dword [eax], 0x12c
je 0x1002ab09
mov ecx, ebx
push 0x101c8289
push 0x101c8f92
push str.bit_wise_operator_supported_in_GLSL_ES_3.00_only
push edx
mov edi, edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, edi
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x29
jmp 0x1002abcf
mov eax, dword [esi + 0x58]
add edx, 0xfffffff0
cmp dword [eax], 0x12c
je 0x1002ab4f
mov ecx, ebx
push 0x101c8289
push 0x101c8f95
push str.bit_wise_operator_supported_in_GLSL_ES_3.00_only
push edx
mov edi, edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, edi
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x2a
jmp 0x1002abcf
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x19
jmp 0x1002abed
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x1a
jmp 0x1002abed
mov eax, dword [esi + 0x58]
add edx, 0xfffffff0
cmp dword [eax], 0x12c
je 0x1002abbe
mov ecx, ebx
push 0x101c8289
push 0x101c8f9a
push str.bit_wise_operator_supported_in_GLSL_ES_3.00_only
push edx
mov edi, edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, edi
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x2c
call fcn.100235b8
jmp 0x1002c51a
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push 0x27
call fcn.10023626
jmp 0x1002c51a
mov eax, dword [esi + 4]
add edx, 0xfffffff0
mov ecx, ebx
push dword [eax - 0x84]
push str.assign
mov edi, edx
push edx
call fcn.1001e442
test al, al
je 0x1002ac1d
mov ecx, ebx
call fcn.10005cc4
mov ecx, ebx
push edi
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push dword [eax - 0x44]
call fcn.100234d4
jmp 0x1002c51a
mov dword [esi + 0x10], 0x90
jmp case.default.0x10029035
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002ac72
mov ecx, ebx
push 0x101c8289
push 0x101c8f67
push str._supported_in_vertex_fragment_shaders_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x10], 0x94
jmp case.default.0x10029035
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002acab
mov ecx, ebx
push 0x101c8289
push 0x101c8f50
push str._supported_in_vertex_fragment_shaders_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x10], 0x99
jmp case.default.0x10029035
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002ace3
mov ecx, ebx
push 0x101c8289
push 0x101c8f53
push str.integer_modulus_operator_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002ad10
mov ecx, ebx
push 0x101c8289
push 0x101c8f53
push str._supported_in_vertex_fragment_shaders_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x10], 0x9a
jmp case.default.0x10029035
mov dword [esi + 0x10], 0x92
jmp case.default.0x10029035
mov dword [esi + 0x10], 0x93
jmp case.default.0x10029035
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002ad60
mov ecx, ebx
push 0x101c8289
push 0x101c8f56
push str.bit_wise_operator_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002ad8d
mov ecx, ebx
push 0x101c8289
push 0x101c8f56
push str._supported_in_vertex_fragment_shaders_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x10], 0x9b
jmp case.default.0x10029035
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002adc5
mov ecx, ebx
push 0x101c8289
push 0x101c8f5e
push str.bit_wise_operator_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002adf2
mov ecx, ebx
push 0x101c8289
push 0x101c8f5e
push str._supported_in_vertex_fragment_shaders_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x10], 0x9d
jmp case.default.0x10029035
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002ae2a
mov ecx, ebx
push 0x101c8289
push 0x101c8f61
push str.bit_wise_operator_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002ae57
mov ecx, ebx
push 0x101c8289
push 0x101c8f61
push str._supported_in_vertex_fragment_shaders_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x10], 0x9e
jmp case.default.0x10029035
mov eax, dword [esi + 4]
add edx, 0xfffffff0
mov ecx, ebx
push dword [eax - 0x44]
push edx
call fcn.10022f38
test al, al
je 0x1002ae7f
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 4]
movsd xmm0, qword [eax - 0x44]
movsd qword [esi + 0x10], xmm0
jmp case.default.0x10029035
add edx, 0xfffffff0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax - 0x38]
call fcn.10020852
jmp 0x1002c51a
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 4]
mov ecx, dword [eax]
movzx eax, byte [edx - 0x7c]
lea edi, [edx - 0x38]
push eax
push edi
call fcn.10004096
test al, al
jne case.0x10029035.226
movzx ecx, byte [edi]
cmp ecx, 0x14
ja case.default.0x1002aed9
mov edx, dword [esi + 8]
mov eax, str.void
jmp dword [ecx*4 + 0x101cf928]
mov eax, str.float
jmp case.0x1002aed9.0
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002af33
mov eax, dword [esi + 4]
movsx ecx, byte [eax - 0x204]
mov eax, str.unknown_qualifier
cmp ecx, 0x22
ja 0x1002af10
mov eax, dword [ecx*4 + 0x101d3340]
mov ecx, dword [esi + 8]
lea edx, [ecx - 0x80]
mov ecx, ebx
push 0x101c8289
push eax
push str.interface_blocks_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov edi, dword [esi + 4]
lea ecx, [edx - 0x40]
lea eax, [edx - 0x30]
add edx, 0xffffff90
mov dword [esi + 0x5c], ecx
lea ecx, [edi - 0x214]
mov dword [esi + 8], ecx
mov ecx, ebx
push eax
push dword [edi - 0x84]
push dword [esi + 0x5c]
push dword [edi - 0x110]
push dword [edi - 0x18c]
push dword [edi - 0x1dc]
jmp 0x1002c511
mov eax, dword [esi + 4]
cmp byte [eax - 0x38], 0
jne 0x1002afa4
mov eax, dword [eax]
cmp dword [eax + 0x18], 0x10
lea eax, [eax + 4]
jb 0x1002af84
mov eax, dword [eax]
mov ecx, ebx
push 0x101c8289
push eax
push str.illegal_use_of_type_void
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
lea ecx, [eax - 0x38]
mov dword [esi + 8], ecx
mov ecx, ebx
push dword [eax]
push edx
call fcn.1001e768
test al, al
je 0x1002afbf
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 4]
mov ebx, dword [eax]
call fcn.100241ca
mov ecx, eax
push 0x2c
call fcn.1002435a
mov edi, eax
mov ecx, eax
push dword [esi + 8]
call fcn.10024504
mov dword [esi + 0x1c], ebx
jmp 0x1002b121
lea edi, [edx - 0x20]
sub esp, 0x3c
mov eax, dword [esi + 4]
mov ecx, ebx
movsd xmm0, qword [eax - 0xd4]
movsd qword [esp + 0x34], xmm0
movsd xmm0, qword [eax - 0xdc]
movsd qword [esp + 0x2c], xmm0
movsd xmm0, qword [eax - 0xe4]
movsd qword [esp + 0x24], xmm0
movsd xmm0, qword [eax - 0xec]
movsd qword [esp + 0x1c], xmm0
movsd xmm0, qword [eax - 0xf4]
movsd qword [esp + 0x14], xmm0
movsd xmm0, qword [eax - 0x104]
movsd xmm1, qword [eax - 0xfc]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
mov dword [esp], edi
call fcn.1001efa0
test al, al
je 0x1002b066
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
mov ecx, ebx
add edx, 0xffffffd0
push dword [eax - 0xcc]
push edx
call fcn.1001e768
test al, al
je 0x1002b088
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 4]
mov ecx, ebx
lea eax, [edx - 0x104]
mov dword [esi + 8], eax
lea eax, [esi + 0xa8]
mov dword [eax], 0
push eax
push dword [edx - 0x40]
push edi
call fcn.1001ee54
test al, al
je 0x1002b0b8
mov ecx, dword [ebp + 8]
call fcn.10005cc4
mov ebx, dword [esi + 4]
mov eax, dword [esi + 0xa8]
mov byte [ebx - 0xe8], 1
mov dword [ebx - 0xe4], eax
call fcn.100241ca
mov ecx, eax
push 0x2c
call fcn.1002435a
mov edi, eax
mov ecx, eax
push dword [esi + 8]
call fcn.10024504
mov eax, dword [ebx - 0xcc]
mov dword [esi + 0x1c], eax
jmp 0x1002b121
mov byte [esi + 0x1c], 0x11
jmp case.default.0x10029035
call fcn.100241ca
mov ecx, eax
push 0x2c
call fcn.1002435a
mov edi, eax
mov eax, dword [esi + 4]
mov ecx, edi
lea eax, [eax + 0xc]
push eax
call fcn.10024504
mov dword [esi + 0x1c], 0
mov dword [esi + 0x20], edi
jmp case.default.0x10029035
push 0x44
push dword [esi + 4]
lea eax, [esi + 0x10]
jmp 0x1002b631
mov edi, dword [esi + 4]
lea eax, [edi - 0x88]
push 0x44
push eax
lea eax, [esi + 0x10]
push eax
mov dword [esi + 8], edx
call fcn.1019f110
add esp, 0xc
mov ecx, ebx
push dword [edi]
push dword [esi + 8]
push dword [edi - 0x84]
lea eax, [esi + 0x1c]
push eax
call fcn.10020392
jmp 0x1002c51a
mov edi, dword [esi + 4]
lea eax, [edi - 0x110]
push 0x44
push eax
lea eax, [esi + 0x10]
push eax
mov ebx, edx
call fcn.1019f110
add esp, 0xc
mov ecx, dword [ebp + 8]
lea eax, [ebx - 0x10]
add ebx, 0xffffffe0
push dword [edi + 4]
push eax
push dword [edi - 0x88]
push ebx
push dword [edi - 0x10c]
lea eax, [esi + 0x1c]
push eax
call fcn.1002056e
jmp 0x1002c51a
mov eax, dword [esi + 0x58]
lea edi, [edx - 0x30]
cmp dword [eax], 0x12c
je 0x1002b1da
mov ecx, ebx
push 0x101c8289
push 0x101c8f6a
push str.implicitly_sized_array_supported_in_GLSL_ES_3.00_only
push edi
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x5c], edi
mov edi, dword [esi + 4]
lea eax, [edi - 0x148]
push 0x38
push eax
lea eax, [esi + 0x1c]
push eax
call fcn.1019f110
add esp, 0xc
mov edx, dword [esi + 8]
mov ecx, ebx
lea eax, [edx - 0x10]
add edx, 0xffffffc0
push dword [edi + 4]
push eax
push 0
push dword [esi + 0x5c]
push dword [edi - 0x110]
jmp 0x1002b276
mov eax, dword [esi + 0x58]
lea edi, [edx - 0x10]
cmp dword [eax], 0x12c
je 0x1002b23d
mov ecx, ebx
push 0x101c8289
push 0x101c8f48
push str.first_class_arrays__array_initializer__supported_in_GLSL_ES_3.00_only
push edi
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x5c], edi
mov edi, dword [esi + 4]
lea eax, [edi - 0x18c]
push 0x38
push eax
lea eax, [esi + 0x1c]
push eax
call fcn.1019f110
add esp, 0xc
mov edx, dword [esi + 8]
mov ecx, ebx
lea eax, [edx - 0x40]
add edx, 0xffffffb0
push dword [edi + 4]
push dword [esi + 0x5c]
push dword [edi - 0xc8]
push eax
push dword [edi - 0x154]
push edx
lea eax, [esi + 0x1c]
push eax
call fcn.1002016e
jmp 0x1002c51a
mov edi, dword [esi + 4]
lea eax, [edi + 0xc]
push 0x38
push eax
lea eax, [esi + 0x1c]
push eax
call fcn.1019f110
mov edx, dword [esi + 8]
add esp, 0xc
cmp byte [edi + 0x28], 0
je case.default.0x10029035
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je case.default.0x10029035
mov ecx, ebx
push 0x101c8289
push 0x101c8f6a
push str.first_class_array_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
cmp dword [ebx + 0x18], 0x12c
je case.default.0x10029035
mov eax, dword [esi + 4]
mov byte [eax + 0x28], 0
mov dword [eax + 0x2c], 0
jmp case.default.0x10029035
mov byte [esi + 0x1c], 0x12
jmp case.default.0x10029035
mov eax, dword [esi + 0x54]
cmp dword [eax], 0x8b31
je 0x1002b329
mov ecx, ebx
push 0x101c8289
push str.attribute
push str._supported_in_vertex_shaders_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x64
je 0x1002b352
mov ecx, ebx
push 0x101c8289
push str.attribute
push str._supported_in_GLSL_ES_1.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
cmp ecx, 0x14
mov ecx, ebx
setl al
push str.attribute
push eax
push edx
call fcn.1001e73e
test al, al
je 0x1002b37b
mov ecx, ebx
call fcn.10005cc4
xor eax, eax
mov byte [esi + 0x1c], al
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov word [esi + 0x2c], 3
jmp 0x1002c55e
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x64
je 0x1002b3c1
mov ecx, ebx
push 0x101c8289
push str.varying
push str._supported_in_GLSL_ES_1.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
cmp ecx, 0x14
mov ecx, ebx
setl al
push str.varying
push eax
push edx
call fcn.1001e73e
test al, al
je 0x1002b3ea
mov ecx, ebx
call fcn.10005cc4
mov ecx, dword [esi + 0x54]
xor eax, eax
cmp dword [ecx], 0x8b31
mov byte [esi + 0x1c], 0
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
jne 0x1002c558
mov word [esi + 0x2c], 5
jmp 0x1002c55e
mov eax, dword [esi + 4]
mov cl, 2
movsx eax, byte [eax + 0x1c]
cmp eax, 2
je 0x1002c5d8
mov ecx, dword [esi + 0xc]
mov ecx, dword [ecx]
mov edx, dword [ecx + 4]
sub edx, dword [ecx]
mov ecx, eax
cmp edx, 0x14
jge 0x1002c5a2
mov edx, dword [esi + 8]
jmp 0x1002c5d8
mov ecx, dword [esi + 4]
mov ebx, edx
lea edi, [esi + 0xa8]
movzx eax, byte [ecx + 0x1c]
movzx edx, byte [ecx - 0x28]
mov ecx, dword [ebp + 8]
push eax
push ebx
add ebx, 0xfffffff0
push edx
push ebx
push edi
call fcn.10022a5e
push 0x38
push edi
jmp 0x1002b62e
mov eax, dword [esi + 4]
movsx ecx, byte [eax + 0x1c]
mov eax, str.unknown_qualifier
cmp ecx, 0x22
ja 0x1002b489
mov eax, dword [ecx*4 + 0x101d3340]
mov ecx, ebx
push 0x101c8289
push eax
push str.interpolation_qualifier_requires_a_fragment_in_or_vertex_out_storage_qualifier
push edx
mov edi, edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [ebx + 4]
jmp 0x1002b717
mov edi, dword [esi + 4]
mov ecx, ebx
lea eax, [edx - 0x20]
mov ebx, edx
movzx edx, byte [edi + 0x1c]
push eax
push edx
call fcn.1001f540
movzx eax, byte [edi + 0x1c]
movzx edx, byte [edi - 0x28]
mov ecx, dword [ebp + 8]
lea edi, [esi + 0xa8]
push eax
push ebx
add ebx, 0xfffffff0
push edx
push ebx
push edi
call fcn.10022a5e
push 0x38
push edi
lea eax, [esi + 0x1c]
push eax
call fcn.1019f110
add esp, 0xc
mov byte [esi + 0x2d], 1
jmp case.default.0x10029035
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002b521
mov ecx, ebx
push 0x101c8289
push 0x101cbfa8
push str.storage_qualifier_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0x54]
cmp dword [eax], 0x8b30
mov al, 0xc
je 0x1002b569
mov al, 9
jmp 0x1002b569
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002b55b
mov ecx, ebx
push 0x101c8289
push 0x101cbfab
push str.storage_qualifier_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0x54]
cmp dword [eax], 0x8b30
sete al
xor al, 0xb
mov byte [esi + 0x2c], al
jmp case.default.0x10029035
mov edi, dword [esi + 4]
lea eax, [edi + 0xc]
push 0x38
push eax
lea eax, [esi + 0x1c]
push eax
call fcn.1019f110
mov edx, dword [esi + 8]
add esp, 0xc
mov cl, byte [edi + 0xc]
mov al, byte [edi - 0x38]
mov ah, cl
mov byte [esi + 0x2e], al
dec ah
cmp ah, 3
jb case.default.0x10029035
mov eax, ecx
add al, 0xf1
cmp al, 0x11
jb case.default.0x10029035
cmp cl, 4
ja case.default.0x1002b5bc
movzx ecx, cl
mov eax, str.void
jmp dword [ecx*4 + 0x101cf914]
mov eax, str.float
jmp case.0x1002b5bc.0
mov byte [esi + 0x1c], 2
jmp case.default.0x10029035
mov byte [esi + 0x1c], 1
jmp case.default.0x10029035
mov eax, dword [esi + 0x58]
cmp dword [eax], 0x12c
je 0x1002b60b
add edx, 0xffffffd0
mov ecx, ebx
push 0x101c8289
push str.layout
push str.qualifier_supported_in_GLSL_ES_3.00_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov ecx, dword [esi + 4]
lea edx, [esi + 0x1c]
mov eax, dword [ecx - 0x30]
movsd xmm0, qword [ecx - 0x38]
mov dword [edx + 8], eax
movsd qword [edx], xmm0
jmp case.default.0x10029035
mov eax, dword [esi + 4]
lea eax, [eax + 0xc]
push 0x38
push eax
lea eax, [esi + 0x1c]
push eax
call fcn.1019f110
add esp, 0xc
jmp case.default.0x10029035
mov edi, dword [esi + 4]
lea eax, [edi - 0xc0]
push 0x38
push eax
lea eax, [esi + 0x1c]
push eax
mov ebx, edx
call fcn.1019f110
add esp, 0xc
add ebx, 0xffffffe0
sub esp, 0x3c
movsd xmm0, qword [edi - 0x90]
movsd qword [esp + 0x34], xmm0
movsd xmm0, qword [edi - 0x98]
movsd qword [esp + 0x2c], xmm0
movsd xmm0, qword [edi - 0xa0]
movsd qword [esp + 0x24], xmm0
movsd xmm0, qword [edi - 0xa8]
movsd qword [esp + 0x1c], xmm0
movsd xmm0, qword [edi - 0xb0]
movsd qword [esp + 0x14], xmm0
movsd xmm0, qword [edi - 0xc0]
movsd xmm1, qword [edi - 0xb8]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 4], xmm0
mov dword [esi + 8], ebx
mov dword [esp], ebx
mov ebx, dword [ebp + 8]
mov ecx, ebx
call fcn.1001efa0
test al, al
jne 0x1002c649
lea eax, [esi + 0xa8]
mov ecx, ebx
mov dword [eax], 0
push eax
push dword [edi - 0x40]
push dword [esi + 8]
call fcn.1001ee54
test al, al
je 0x1002b6fe
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xa8]
mov byte [esi + 0x38], 1
mov dword [esi + 0x3c], eax
jmp case.default.0x10029035
mov eax, dword [esi + 0xc]
mov edi, edx
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov edx, 0x14
mov byte [esi + 0x1c], al
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
cmp ecx, edx
setl byte [esi + 0x2c]
mov word [esi + 0x2d], 0
jmp 0x1002c52b
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 3
jmp 0x1002b774
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 4
cmp ecx, edx
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
jmp 0x1002c537
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 2
jmp 0x1002b7e8
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 2
jmp 0x1002b84d
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 3
cmp ecx, edx
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov dword [esi + 0x30], 2
jmp 0x1002b8f9
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 3
cmp ecx, edx
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov dword [esi + 0x30], 3
jmp 0x1002b8f9
mov eax, dword [esi + 0xc]
mov edi, edx
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 3
cmp ecx, edx
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
mov edx, 4
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov dword [esi + 0x30], edx
mov dword [esi + 0x34], ecx
jmp case.default.0x10029035
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002b930
mov ecx, ebx
push 0x101c8289
push str.mat2
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
cmp ecx, edx
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov eax, dword [esi + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov eax, 2
jmp 0x1002ba22
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002b9c3
mov ecx, ebx
push 0x101c8289
push str.mat3
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
cmp ecx, edx
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov eax, dword [esi + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov eax, 3
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
jmp case.default.0x10029035
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002ba5c
mov ecx, ebx
push 0x101c8289
push str.mat2x3
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
cmp ecx, edx
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov eax, dword [esi + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov dword [esi + 0x30], 2
jmp 0x1002bc85
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002baf1
mov ecx, ebx
push 0x101c8289
push str.mat3x2
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
cmp ecx, edx
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov eax, dword [esi + 8]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov dword [esi + 0x30], 3
jmp 0x1002bbe8
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002bb86
mov ecx, ebx
push 0x101c8289
push str.mat4x2
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
cmp ecx, edx
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov eax, dword [esi + 8]
mov ecx, 4
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], 2
jmp case.default.0x10029035
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002bc23
mov ecx, ebx
push 0x101c8289
push str.mat4x3
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 1
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
cmp ecx, edx
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov eax, dword [esi + 8]
mov ecx, 4
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], 3
jmp case.default.0x10029035
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002bcc0
mov ecx, ebx
push 0x101c8289
push str.sampler2D
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0xf
jmp 0x1002bf31
mov ecx, ebx
push str.GL_OES_EGL_image_external
call fcn.1001f572
test al, al
jne 0x1002bd0a
mov ecx, ebx
push 0x101c8289
push str.samplerExternalOES
push str.unsupported_type
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002bd39
mov ecx, ebx
push 0x101c8289
push str.samplerExternalOES
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x14
jmp 0x1002bf31
mov ecx, ebx
push str.GL_ARB_texture_rectangle
call fcn.1001f572
test al, al
jne 0x1002bd83
mov ecx, ebx
push 0x101c8289
push str.sampler2DRect
push str.unsupported_type
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002bdb2
mov ecx, ebx
push 0x101c8289
push str.sampler2DRect
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x13
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002bdfb
mov ecx, ebx
push 0x101c8289
push str.sampler3D
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x10
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002be44
mov ecx, ebx
push 0x101c8289
push str.usampler3D
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x1a
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002be8d
mov ecx, ebx
push 0x101c8289
push str.usampler2DArray
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x1c
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002bed6
mov ecx, ebx
push 0x101c8289
push str.samplerCubeShadow
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x1e
jmp 0x1002bf31
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002bf1c
mov ecx, ebx
push 0x101c8289
push str.sampler2DArrayShadow
push str._supported_in_vertex_fragment_shaders_only
push dword [esi + 8]
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xc]
mov edx, 0x14
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
xor eax, eax
mov byte [esi + 0x1c], 0x1f
cmp ecx, edx
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
setl byte [esi + 0x2c]
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], 0
mov ecx, dword [esi + 8]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 8]
jmp 0x1002c546
mov eax, dword [esi + 0x54]
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 0x8b30
je 0x1002bf9b
mov ecx, ebx
push 0x101c8289
push str.struct
push str._supported_in_vertex_fragment_shaders_only
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 4]
lea eax, [eax + 0xc]
push 0x38
push eax
lea eax, [esi + 0x1c]
push eax
call fcn.1019f110
add esp, 0xc
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
cmp ecx, 0x14
setl byte [esi + 0x2c]
jmp case.default.0x10029035
mov eax, dword [esi + 4]
mov ecx, ebx
push dword [eax]
push edx
call fcn.10022f38
jmp 0x1002c33c
mov eax, dword [esi + 4]
mov ecx, dword [eax - 0x38]
mov edx, dword [eax + 0xc]
mov dword [esi + 0x1c], ecx
mov edi, dword [edx + 4]
cmp dword [edx + 8], edi
je case.default.0x10029035
mov dword [esi + 0x5c], 0
jmp 0x1002bffc
mov ecx, dword [esi + 0x1c]
mov eax, dword [ecx + 4]
mov ebx, dword [ecx + 8]
cmp ebx, eax
je 0x1002c081
mov ecx, dword [esi + 0x5c]
mov ecx, dword [edi + ecx*4]
xor edi, edi
mov dword [esi + 8], ecx
mov eax, dword [eax + edi*4]
mov ecx, dword [eax + 4]
mov eax, dword [esi + 8]
push dword [eax + 4]
call fcn.100038b2
test al, al
je 0x1002c066
mov eax, dword [esi + 8]
mov eax, dword [eax + 4]
cmp dword [eax + 0x18], 0x10
lea eax, [eax + 4]
jb 0x1002c037
mov eax, dword [eax]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x5c]
mov ebx, dword [ebp + 8]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + edx*4]
mov ecx, ebx
add edx, 8
push eax
push str.struct
push str.duplicate_field_name_in_structure:
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov ecx, dword [esi + 0x1c]
inc edi
mov ebx, dword [ecx + 8]
mov eax, dword [ecx + 4]
mov edx, ebx
sub edx, eax
sar edx, 2
cmp edi, edx
jb 0x1002c011
mov eax, dword [esi + 4]
mov edx, dword [eax + 0xc]
mov edi, dword [esi + 0x5c]
lea eax, [ecx + 8]
lea edi, [edi*4]
add edi, dword [edx + 4]
cmp dword [ecx + 0xc], ebx
je 0x1002c09f
mov ecx, dword [edi]
mov dword [ebx], ecx
add dword [eax], 4
jmp 0x1002c0a6
push edi
push ebx
call fcn.100032d4
mov eax, dword [esi + 0x5c]
mov ebx, eax
mov eax, dword [esi + 4]
inc ebx
mov ecx, ebx
mov dword [esi + 0x5c], ebx
mov edx, dword [eax + 0xc]
mov edi, dword [edx + 4]
mov eax, dword [edx + 8]
sub eax, edi
sar eax, 2
cmp ebx, eax
jb 0x1002bff9
jmp case.default.0x10029035
mov edi, dword [esi + 4]
mov ecx, ebx
mov al, byte [edi - 0xb0]
lea edx, [edi - 0x7c]
mov byte [edi - 0x6c], al
movsd xmm0, qword [edi - 0xbc]
movsd qword [edi - 0x78], xmm0
mov eax, dword [edi - 0xb4]
mov dword [edi - 0x70], eax
push dword [edi - 0x38]
push edx
call fcn.10022b3e
jmp 0x1002c232
call fcn.100241ca
mov ecx, eax
push 0x10
call fcn.1002435a
mov edi, eax
call fcn.100241ca
mov dword [edi], eax
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [esi + 0x1c], edi
mov eax, dword [esi + 4]
mov ecx, dword [edi + 8]
mov edx, dword [edi + 0xc]
lea eax, [eax + 0xc]
cmp edx, ecx
je 0x1002c594
mov eax, dword [eax]
mov dword [ecx], eax
add dword [edi + 8], 4
jmp case.default.0x10029035
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 4]
mov edi, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
lea eax, [eax + 0xc]
cmp edx, edi
je 0x1002c596
mov eax, dword [eax]
mov dword [edi], eax
add dword [ecx + 8], 4
jmp case.default.0x10029035
mov eax, dword [esi + 4]
add edx, 0xffffffd0
mov ecx, ebx
push dword [eax - 0xcc]
mov dword [esi + 8], edx
push edx
call fcn.1001e768
test al, al
je 0x1002c190
mov ecx, ebx
call fcn.10005cc4
call fcn.100241ca
mov ecx, eax
push 0x2c
call fcn.1002435a
xor ecx, ecx
mov dword [eax], 0x1000000
mov word [eax + 4], 1
mov edi, eax
lea edx, [esi + 0xa8]
mov dword [eax + 0xc], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], ecx
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x20], ecx
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x28], ecx
mov dword [eax + 0x24], ecx
mov eax, dword [esi + 4]
mov dword [edx], ecx
mov ecx, ebx
mov eax, dword [eax - 0x40]
push edx
push eax
add eax, 4
push eax
call fcn.1001ee54
test al, al
je 0x1002c1f3
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 0xa8]
mov byte [edi + 5], 1
mov dword [edi + 8], eax
call fcn.100241ca
mov ecx, eax
push 0x18
call fcn.1002435a
mov ecx, dword [esi + 4]
mov ecx, dword [ecx - 0xcc]
mov dword [eax], edi
mov edi, dword [esi + 8]
mov dword [eax + 4], ecx
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [eax + 0x10], xmm1
movsd qword [eax + 8], xmm0
mov dword [esi + 0x1c], eax
jmp case.default.0x10029035
mov ecx, dword [esi + 4]
mov eax, dword [ecx - 0x84]
test eax, eax
je 0x1002c51a
mov dword [eax + 0x40], 1
mov eax, dword [ecx - 0x84]
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [eax + 0x7c], xmm1
movsd qword [eax + 0x74], xmm0
mov eax, dword [ecx - 0x84]
jmp 0x1002c51a
mov ecx, dword [esi + 4]
mov eax, dword [ecx - 0x40]
test eax, eax
je 0x1002c51a
mov dword [eax + 0x40], 1
mov eax, dword [ecx - 0x40]
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
movsd qword [eax + 0x7c], xmm1
movsd qword [eax + 0x74], xmm0
mov eax, dword [ecx - 0x40]
jmp 0x1002c51a
mov ecx, dword [ebx]
lea eax, [esi + 0x70]
push eax
mov eax, dword [esi + 4]
push dword [eax + 4]
call fcn.10012be6
jmp 0x1002c51a
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], 0
jmp case.default.0x10029035
inc dword [ebx + 0x24]
jmp case.default.0x10029035
add edx, 0xffffffb0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0xc8]
call fcn.10023322
mov dword [esi + 0x14], eax
dec dword [ebx + 0x24]
jmp case.default.0x10029035
add edx, 0xffffffe0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax - 0x40]
call fcn.100233ba
jmp 0x1002c51a
add edx, 0xfffffff0
mov ecx, ebx
push edx
call fcn.10023486
jmp 0x1002c51a
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 4]
mov dword [esi + 0x14], eax
mov eax, dword [ecx + 4]
mov ecx, ebx
push eax
add eax, 4
push eax
call fcn.1001ebd4
test al, al
je case.default.0x10029035
jmp 0x1002c649
mov ecx, dword [ebx + 4]
mov edi, edx
call fcn.10004066
mov ecx, dword [ebx]
add edi, 0xffffffb0
xor eax, eax
push edi
mov edx, dword [esi + 4]
push dword [edx + 4]
push eax
push dword [edx - 0x84]
push eax
push 1
jmp 0x1002c394
mov ecx, dword [ebx + 4]
mov edi, edx
call fcn.10004066
mov ecx, dword [ebx]
add edi, 0xffffffa0
push edi
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x80]
push dword [eax - 0x84]
push dword [eax - 0xc8]
push 0
call fcn.10013172
mov dword [esi + 0x14], eax
dec dword [ebx + 0x20]
jmp case.default.0x10029035
add edx, 0xfffffff0
mov ecx, ebx
push edx
push 0x75
jmp 0x1002c3c0
add edx, 0xfffffff0
mov ecx, ebx
push edx
push 0x74
jmp 0x1002c3c0
add edx, 0xfffffff0
mov ecx, ebx
push edx
push 0x73
call fcn.100236ea
jmp 0x1002c51a
add edx, 0xffffffe0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax - 0x40]
push 0x73
call fcn.10023760
jmp 0x1002c51a
mov eax, dword [esi + 4]
mov eax, dword [eax + 4]
mov dword [esi + 0x14], eax
mov dword [ebx + 0x1c], eax
jmp case.default.0x10029035
mov edi, edx
mov edx, dword [esi + 4]
mov ecx, ebx
lea eax, [edx + 4]
push eax
push dword [edx + 0xc]
push edi
call fcn.10020b12
jmp case.default.0x10029035
add edx, 0xffffffe0
mov ecx, ebx
push edx
mov eax, dword [esi + 4]
push dword [eax + 4]
push dword [eax - 0x84]
push dword [eax - 0x7c]
call fcn.100209fc
jmp 0x1002c51a
mov ecx, dword [ebx]
mov edx, eax
add edx, 0xc
push dword [esi + 8]
push edx
push dword [eax + 4]
push dword [eax + 8]
call fcn.1000ff44
jmp 0x1002c51a
mov eax, dword [esi + 4]
movsx ecx, byte [eax - 0xf4]
mov eax, str.unknown_qualifier
cmp ecx, 0x22
ja 0x1002c461
mov eax, dword [ecx*4 + 0x101d3340]
lea edi, [edx - 0x40]
mov ecx, ebx
push 0x101c8289
push eax
push str.interface_blocks_supported_in_GLSL_ES_3.00_only
push edi
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov ecx, dword [esi + 4]
add edx, 0xffffffd0
lea eax, [ecx - 0x104]
mov dword [esi + 8], eax
mov eax, edx
mov edx, ecx
mov ecx, ebx
push edi
xor ebx, ebx
push ebx
xor ebx, ebx
push edi
push ebx
push dword [edx - 0x7c]
push dword [edx - 0xcc]
push eax
jmp 0x1002c512
mov eax, dword [esi + 4]
movsx ecx, byte [eax - 0x138]
mov eax, str.unknown_qualifier
cmp ecx, 0x22
ja 0x1002c4c5
mov eax, dword [ecx*4 + 0x101d3340]
lea edx, [edx - 0x50]
mov ecx, ebx
push 0x101c8289
push eax
push str.interface_blocks_supported_in_GLSL_ES_3.00_only
mov dword [esi + 0x5c], edx
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov edx, dword [esi + 8]
mov edi, dword [esi + 4]
lea eax, [edx - 0x10]
add edx, 0xffffffc0
lea ecx, [edi - 0x148]
mov dword [esi + 8], ecx
mov ecx, ebx
push dword [esi + 0x5c]
push 0
push eax
push dword [edi - 0x44]
push dword [edi - 0xc0]
push dword [edi - 0x110]
push edx
push dword [esi + 8]
call fcn.10021974
mov dword [esi + 0x14], eax
jmp case.default.0x10029035
mov word [esi + 0x2c], 6
mov byte [esi + 0x2e], al
xor ecx, ecx
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], al
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
lea eax, [esi + 0x20]
movsd qword [eax + 0x2c], xmm1
movsd qword [eax + 0x24], xmm0
jmp case.default.0x10029035
mov word [esi + 0x2c], 4
xor ecx, ecx
mov byte [esi + 0x2e], al
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], al
jmp 0x1002bf57
mov eax, dword [edx + 4]
jmp 0x1002c51a
mov eax, dword [esi + 8]
mov ecx, ebx
add eax, 0xfffffff0
push 0x101c8289
push str.void
push str.cannot_be_an_argument_type_except_for__void_
push eax
jmp 0x1002c644
mov ecx, edi
push eax
push edx
call fcn.100032d4
jmp case.default.0x10029035
mov edx, str.unknown_qualifier
cmp cl, 0x22
ja 0x1002c5b3
mov edx, dword [eax*4 + 0x101d32b0]
mov ecx, ebx
push 0x101c8289
push edx
push str.Local_variables_can_only_use_the_const_storage_qualifier.
mov edi, dword [esi + 8]
push edi
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov eax, dword [esi + 4]
mov edx, edi
mov cl, byte [eax + 0x1c]
xor eax, eax
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
mov byte [esi + 0x1c], al
mov dword [esi + 0x20], 0xffffffff
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov byte [esi + 0x2c], cl
xor ecx, ecx
mov word [esi + 0x2d], 0
inc ecx
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], ecx
mov byte [esi + 0x38], al
jmp 0x1002c540
cmp cl, 0x25
jne 0x1002c62e
mov eax, str.structure
jmp case.0x1002b5bc.0
mov eax, 0x101cbf11
jmp case.0x1002b5bc.0
mov eax, str.uint
jmp case.0x1002b5bc.0
mov eax, str.bool
jmp case.0x1002b5bc.0
mov eax, str.unknown_type
add edx, 0xfffffff0
mov ecx, ebx
push 0x101c8289
push eax
push str.illegal_type_for_precision_qualifier
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
jmp case.default.0x10029035
mov edx, dword [esi + 8]
cmp cl, 0x25
jne case.0x1002aed9.5
mov eax, str.structure
jmp case.0x1002aed9.0
add edx, 0xfffffff0
jmp 0x10029a1a
mov eax, str.unknown_type
jmp case.0x1002aed9.0
mov eax, 0x101cbf11
jmp case.0x1002aed9.0
mov eax, str.uint
jmp case.0x1002aed9.0
mov eax, str.bool
jmp case.0x1002aed9.0
mov eax, str.sampler2D
jmp case.0x1002aed9.0
mov eax, str.sampler3D
jmp case.0x1002aed9.0
mov eax, str.samplerCube
jmp case.0x1002aed9.0
mov eax, str.sampler2DRect
jmp case.0x1002aed9.0
mov eax, str.samplerExternalOES
add edx, 0xffffffd0
mov ecx, ebx
push 0x101c8289
push eax
push str.illegal_type_argument_for_default_precision_qualifier
push edx
call fcn.1001def0
mov ecx, ebx
call fcn.10005cc4
mov dword [esi + 0x14], 0
mov edi, dword [esi + 0x64]
imul eax, dword [esi + 0x9c], 0x44
mov ecx, dword [esi + 4]
sub edi, dword [esi + 0xa0]
lea ecx, [ecx + eax + 0x44]
mov eax, 0x44
push eax
lea eax, [esi + 0x10]
push eax
mov dword [esi + 4], ecx
push ecx
call fcn.1019f110
add esp, 0xc
movsd xmm0, qword [esi + 0x70]
mov eax, dword [esi + 0xa4]
movsd xmm1, qword [esi + 0x78]
movsx edx, word [esi + edi*2 + 0x130]
mov dword [esi + 0x64], edi
movsd qword [eax + 0x18], xmm1
movsd qword [eax + 0x10], xmm0
lea eax, [eax + 0x10]
mov dword [esi + 8], eax
mov eax, dword [esi + 0x68]
movzx eax, byte [eax + 0x101d2f7a]
movsx ecx, word [eax + eax + 0x101d2f8c]
add ecx, edx
cmp ecx, 0x9e2
ja 0x1002c752
cmp word [ecx + ecx + 0x101cfe38], dx
jne 0x1002c752
movsx ebx, word [ecx + ecx + 0x101d11fe]
jmp 0x1002c75a
movsx ebx, word [eax + eax + 0x101d3046]
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x64]
mov edx, dword [esi + 4]
mov word [esi + ecx*2 + 0x132], bx
cmp ecx, 0xc5
lea ecx, [ecx + 1]
jle 0x10028e6c
push 0x101d320d
push dword [ebp + 0xc]
push dword [ebp + 8]
lea eax, [esi + 0x80]
push eax
call fcn.10028c2e
add esp, 0x10
mov eax, 2
jmp 0x1002c79e
xor eax, eax
inc eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
jmp 0x1002c79e