Function at 0x10095560
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4e4
mov eax, dword [0x101282a0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0x14]
xor ebx, ebx
mov dword [ebp - 0x4e4], ebx
push edi
mov edi, dword [ebp + 0x10]
sub eax, 0x8b30
je 0x100956e7
dec eax
jne 0x10095bfc
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov dword [ebp - 0x4e4], eax
test eax, eax
je 0x100955e9
push 0
push 0
push 1
push 4
push 0x13
push 3
push 1
lea ecx, [ebp - 0x2c0]
mov ebx, 0x1000
call fcn.1008a1f9
push eax
push str.gl_Position
call fcn.100928a8
pop ecx
mov ecx, dword [ebp - 0x4e4]
push eax
call fcn.100954a6
jmp 0x100955eb
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx]
call fcn.10092ec9
test ebx, 0x1000
je 0x1009561b
and ebx, 0xffffefff
mov dword [ebp - 0x284], 0xf
and dword [ebp - 0x288], 0
mov byte [ebp - 0x298], 0
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov dword [ebp - 0x4e4], eax
test eax, eax
je 0x1009566c
push 0
push 0
push 1
push 1
push 0x14
push 2
push 1
lea ecx, [ebp - 0x304]
or ebx, 0x2000
call fcn.1008a1f9
push eax
push str.gl_PointSize
call fcn.100928a8
pop ecx
mov ecx, dword [ebp - 0x4e4]
push eax
call fcn.100954a6
jmp 0x1009566e
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx]
call fcn.10092ec9
test ebx, 0x2000
je 0x10095698
and dword [ebp - 0x2cc], 0
mov dword [ebp - 0x2c8], 0xf
mov byte [ebp - 0x2dc], 0
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov ebx, eax
test ebx, ebx
je 0x100956db
push 0
push 0
push 1
push 1
push 0x12
push 3
push 2
lea ecx, [ebp - 0x49c]
call fcn.1008a1f9
push eax
push str.gl_InstanceID
call fcn.100928a8
pop ecx
push eax
mov ecx, ebx
call fcn.100954a6
jmp 0x100956dd
xor eax, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 8]
jmp 0x10095bf6
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov dword [ebp - 0x4e4], eax
test eax, eax
je 0x10095733
push 0
push 0
xor ebx, ebx
lea ecx, [ebp - 0x16c]
inc ebx
push ebx
push 4
push 0x15
push 2
push ebx
call fcn.1008a1f9
push eax
push str.gl_FragCoord
call fcn.100928a8
pop ecx
mov ecx, dword [ebp - 0x4e4]
push eax
call fcn.100954a6
jmp 0x10095735
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx]
call fcn.10092ec9
test bl, 1
je 0x1009575f
and ebx, 0xfffffffe
mov dword [ebp - 0x130], 0xf
and dword [ebp - 0x134], 0
mov byte [ebp - 0x144], 0
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov dword [ebp - 0x4e4], eax
test eax, eax
je 0x100957ac
xor eax, eax
lea ecx, [ebp - 0x238]
push eax
push eax
push 1
push 1
push 0x16
push eax
push 4
or ebx, 2
call fcn.1008a1f9
push eax
push str.gl_FrontFacing
call fcn.100928a8
pop ecx
mov ecx, dword [ebp - 0x4e4]
push eax
call fcn.100954a6
jmp 0x100957ae
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx]
call fcn.10092ec9
test bl, 2
je 0x100957d8
and ebx, 0xfffffffd
mov dword [ebp - 0x1fc], 0xf
and dword [ebp - 0x200], 0
mov byte [ebp - 0x210], 0
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov dword [ebp - 0x4e4], eax
test eax, eax
je 0x10095826
push 0
push 0
push 1
push 2
push 0x17
push 2
push 1
lea ecx, [ebp - 0x38c]
or ebx, 4
call fcn.1008a1f9
push eax
push str.gl_PointCoord
call fcn.100928a8
pop ecx
mov ecx, dword [ebp - 0x4e4]
push eax
call fcn.100954a6
jmp 0x10095828
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx]
call fcn.10092ec9
test bl, 4
je 0x10095852
and ebx, 0xfffffffb
mov dword [ebp - 0x350], 0xf
and dword [ebp - 0x354], 0
mov byte [ebp - 0x364], 0
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
cmp dword [ebp + 0xc], 0x8b42
mov dword [ebp - 0x4e4], eax
je 0x10095b42
test eax, eax
je 0x100958ad
push 0
push 0
push 1
push 4
push 0x18
push 2
push 1
lea ecx, [ebp - 0x348]
or ebx, 8
call fcn.1008a1f9
push eax
push str.gl_FragColor
call fcn.100928a8
pop ecx
mov ecx, dword [ebp - 0x4e4]
push eax
call fcn.100954a6
jmp 0x100958af
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx + 4]
call fcn.10092ec9
test bl, 8
je 0x100958da
and ebx, 0xfffffff7
mov dword [ebp - 0x30c], 0xf
and dword [ebp - 0x310], 0
mov byte [ebp - 0x320], 0
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov dword [ebp - 0x4e4], eax
test eax, eax
je 0x10095928
push 0
push 0
push 1
push 4
push 0x19
push 2
push 1
lea ecx, [ebp - 0x27c]
or ebx, 0x10
call fcn.1008a1f9
push eax
push str.gl_FragData_gl_MaxDrawBuffers_
call fcn.100928a8
pop ecx
mov ecx, dword [ebp - 0x4e4]
push eax
call fcn.100954a6
jmp 0x1009592a
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx + 4]
call fcn.10092ec9
test bl, 0x10
je 0x10095957
and ebx, 0xffffffef
mov dword [ebp - 0x240], 0xf
xor eax, eax
mov dword [ebp - 0x244], eax
mov byte [ebp - 0x254], al
jmp 0x10095959
xor eax, eax
cmp dword [edi + 0x30], eax
je 0x10095a16
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov dword [ebp - 0x4e4], eax
test eax, eax
je 0x100959ba
xor ecx, ecx
xor eax, eax
push ecx
push ecx
push 1
or ebx, 0x20
cmp dword [edi + 0x4c], ecx
push 1
setne al
lea ecx, [ebp - 0x1b0]
push 0x1a
add eax, 2
push eax
push 1
call fcn.1008a1f9
push eax
push str.gl_FragDepthEXT
call fcn.100928a8
pop ecx
mov ecx, dword [ebp - 0x4e4]
push eax
call fcn.100954a6
jmp 0x100959bc
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx + 4]
call fcn.10092ec9
test bl, 0x20
je 0x100959e7
and ebx, 0xffffffdf
mov dword [ebp - 0x174], 0xf
and dword [ebp - 0x178], 0
mov byte [ebp - 0x188], 0
push str.GL_EXT_frag_depth
lea ecx, [ebp - 0x3c]
call fcn.10089cca
mov ecx, dword [esi]
lea eax, [ebp - 0x3c]
push eax
push str.gl_FragDepthEXT
mov ecx, dword [ecx + 4]
call fcn.10093524
xor eax, eax
mov dword [ebp - 0x28], 0xf
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x3c], al
cmp dword [edi + 0x3c], eax
je 0x10095a57
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov ebx, eax
test ebx, ebx
je 0x10095bef
lea ecx, [ebp - 0x414]
push 0
push 0
push 1
push 4
push 0x1c
push 2
push 1
call fcn.1008a1f9
push eax
push str.gl_LastFragData_gl_MaxDrawBuffers_
jmp 0x10095bdf
cmp dword [edi + 0x40], eax
je 0x10095afd
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov dword [ebp - 0x4e4], eax
test eax, eax
je 0x10095ab1
push 0
push 0
push 1
push 4
push 0x1b
push 2
push 1
lea ecx, [ebp - 0x1f4]
or ebx, 0x80
call fcn.1008a1f9
push eax
push str.gl_LastFragColor
call fcn.100928a8
pop ecx
mov ecx, dword [ebp - 0x4e4]
push eax
call fcn.100954a6
jmp 0x10095ab3
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx + 4]
call fcn.10092ec9
test bl, bl
jns 0x10095ada
and dword [ebp - 0x1bc], 0
mov dword [ebp - 0x1b8], 0xf
mov byte [ebp - 0x1cc], 0
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov ebx, eax
test ebx, ebx
je 0x10095bef
lea ecx, [ebp - 0x458]
jmp 0x10095a39
cmp dword [edi + 0x44], eax
je 0x10095bfc
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov ebx, eax
test ebx, ebx
je 0x10095bef
push 0
push 0
push 1
push 4
push 0x1b
push 2
push 1
lea ecx, [ebp - 0x4e0]
call fcn.1008a1f9
push eax
push str.gl_LastFragColorARM
jmp 0x10095bdf
test eax, eax
je 0x10095b7f
push 0
push 0
push 1
push 4
push 1
push 2
push 1
lea ecx, [ebp - 0x10c]
or ebx, 0x400
call fcn.1008a1f9
push eax
push str.css_MixColor
call fcn.100928a8
pop ecx
mov ecx, dword [ebp - 0x4e4]
push eax
call fcn.100954a6
jmp 0x10095b81
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx + 4]
call fcn.10092ec9
test ebx, 0x400
je 0x10095bac
and dword [ebp - 0xd4], 0
mov dword [ebp - 0xd0], 0xf
mov byte [ebp - 0xe4], 0
push 0x74
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov ebx, eax
test ebx, ebx
je 0x10095bef
push 0
push 0
push 4
push 4
push 1
push 2
push 1
lea ecx, [ebp - 0x3d0]
call fcn.1008a1f9
push eax
push str.css_ColorMatrix
call fcn.100928a8
pop ecx
push eax
mov ecx, ebx
call fcn.100954a6
jmp 0x10095bf1
xor eax, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
push eax
call fcn.10092ec9
mov ecx, dword [esi]
mov ebx, str.matrixCompMult
push 0x14
push ebx
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x14
push ebx
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x19
push str.equal
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x1a
push str.notEqual
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x1b
push str.lessThan
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x1c
push str.greaterThan
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x1d
push str.lessThanEqual
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
mov ebx, str.greaterThanEqual
push 0x1e
push ebx
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x19
push str.equal
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x1a
push str.notEqual
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x1b
push str.lessThan
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x1c
push str.greaterThan
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x1d
push str.lessThanEqual
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x1e
push ebx
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x31
push str.radians
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x32
push str.degrees
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x33
push 0x10101a40
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x34
push 0x10101a44
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x35
push 0x10101a48
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x36
push str.asin
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x37
push str.acos
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x38
push str.atan
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x39
push str.sinh
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x3a
push str.cosh
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x3b
push str.tanh
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x3c
push str.asinh
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x3d
push str.acosh
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x3e
push str.atanh
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x3f
push 0x10101a94
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x42
push str.exp2
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x41
push 0x10101a9c
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x40
push 0x10101a98
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x43
push str.log2
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x44
push 0x10101ab0
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x45
push str.inversesqrt
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x46
push 0x10101ac4
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x47
push str.sign
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x48
push str.floor
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x49
push str.ceil
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x4a
push str.fract
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x4b
push 0x10101ae8
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x4c
push 0x10101aec
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x4d
push 0x10101af0
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
mov ebx, str.clamp
push 0x4e
push ebx
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x4f
push 0x10101afc
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x50
push str.step
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x51
push str.smoothstep
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x4c
push 0x10101aec
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x4d
push 0x10101af0
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x4e
push ebx
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x52
push str.isnan
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x53
push str.isinf
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x54
push str.floatBitsToInt
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x55
push str.floatBitsToUint
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x56
push str.intBitsToFloat
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x57
push str.uintBitsToFloat
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x58
push str.packSnorm2x16
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x59
push str.packUnorm2x16
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x5a
push str.packHalf2x16
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x5b
push str.unpackSnorm2x16
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x5c
push str.unpackUnorm2x16
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x5d
push str.unpackHalf2x16
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x5e
push str.length
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x5f
push str.distance
mov ecx, dword [ecx]
call fcn.10093573
push 0x60
mov ecx, dword [esi]
push 0x10101bd8
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x61
push str.cross
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x62
push str.normalize
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x63
push str.faceforward
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x64
push str.reflect
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x65
push str.refract
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x6a
push str.outerProduct
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x6b
push str.transpose
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x6c
push str.determinant
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x6d
push str.inverse
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x6e
push 0x10101c9c
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0x6f
push 0x10101ca0
mov ecx, dword [ecx]
call fcn.10093573
mov ecx, dword [esi]
push 0xc
push 0x10101ca4
mov ecx, dword [ecx]
call fcn.10093573
xor ebx, ebx
cmp dword [ebp + 8], 0x8b30
jne 0x100962b3
cmp dword [edi + 0x20], ebx
je 0x100961d2
mov ecx, dword [esi]
push 0x66
push str.dFdx
mov ecx, dword [ecx + 4]
call fcn.10093573
mov ecx, dword [esi]
push 0x67
push str.dFdy
mov ecx, dword [ecx + 4]
call fcn.10093573
mov ecx, dword [esi]
push 0x68
push str.fwidth
mov ecx, dword [ecx + 4]
call fcn.10093573
mov ebx, str.GL_OES_standard_derivatives
lea ecx, [ebp - 0x3c]
push ebx
call fcn.10089cca
mov ecx, dword [esi]
lea eax, [ebp - 0x3c]
push eax
push str.dFdx
mov ecx, dword [ecx + 4]
call fcn.10093524
and dword [ebp - 0x2c], 0
lea ecx, [ebp - 0xac]
push ebx
mov dword [ebp - 0x28], 0xf
mov byte [ebp - 0x3c], 0
call fcn.10089cca
mov ecx, dword [esi]
lea eax, [ebp - 0xac]
push eax
push str.dFdy
mov ecx, dword [ecx + 4]
call fcn.10093524
and dword [ebp - 0x9c], 0
lea ecx, [ebp - 0xc8]
push ebx
mov dword [ebp - 0x98], 0xf
mov byte [ebp - 0xac], 0
call fcn.10089cca
mov ecx, dword [esi]
lea eax, [ebp - 0xc8]
push eax
push str.fwidth
mov ecx, dword [ecx + 4]
call fcn.10093524
xor ebx, ebx
mov dword [ebp - 0xb4], 0xf
mov dword [ebp - 0xb8], ebx
mov byte [ebp - 0xc8], bl
cmp dword [edi + 0x34], ebx
je 0x1009626b
push str.GL_EXT_shader_texture_lod
lea ecx, [ebp - 0x58]
call fcn.10089cca
mov ecx, dword [esi]
lea eax, [ebp - 0x58]
push eax
push str.texture2DLodEXT
mov ecx, dword [ecx + 4]
call fcn.10093524
push str.GL_EXT_shader_texture_lod
lea ecx, [ebp - 0x74]
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], ebx
mov byte [ebp - 0x58], bl
call fcn.10089cca
mov ecx, dword [esi]
lea eax, [ebp - 0x74]
push eax
push str.texture2DProjLodEXT
mov ecx, dword [ecx + 4]
call fcn.10093524
push str.GL_EXT_shader_texture_lod
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x60], 0xf
mov dword [ebp - 0x64], ebx
mov byte [ebp - 0x74], bl
call fcn.10089cca
mov ecx, dword [esi]
lea eax, [ebp - 0x90]
push eax
push str.textureCubeLodEXT
mov ecx, dword [ecx + 4]
call fcn.10093524
mov dword [ebp - 0x7c], 0xf
mov dword [ebp - 0x80], ebx
mov byte [ebp - 0x90], bl
cmp dword [edi + 0x40], ebx
je 0x1009628e
push str.GL_NV_shader_framebuffer_fetch
lea ecx, [ebp - 0x128]
call fcn.10089cca
lea eax, [ebp - 0x128]
push eax
push str.gl_LastFragColor
jmp 0x100962a9
cmp dword [edi + 0x44], ebx
je 0x100962b3
push str.GL_ARM_shader_framebuffer_fetch
lea ecx, [ebp - 0x20]
call fcn.10089cca
lea eax, [ebp - 0x20]
push eax
push str.gl_LastFragColorARM
mov ecx, dword [esi]
mov ecx, dword [ecx + 4]
call fcn.10093524
mov ecx, dword [esi]
push 0x66
push str.dFdx
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x67
push str.dFdy
mov ecx, dword [ecx + 8]
call fcn.10093573
mov ecx, dword [esi]
push 0x68
push str.fwidth
mov ecx, dword [ecx + 8]
call fcn.10093573
cmp dword [edi + 0x34], ebx
je 0x10096344
mov ebx, str.GL_EXT_shader_texture_lod
lea ecx, [ebp - 0x20]
push ebx
call fcn.10089cca
mov ecx, dword [esi]
lea eax, [ebp - 0x20]
push eax
push str.texture2DGradEXT
mov ecx, dword [ecx + 4]
call fcn.10093524
push ebx
lea ecx, [ebp - 0x20]
call fcn.10089cca
mov ecx, dword [esi]
lea eax, [ebp - 0x20]
push eax
push str.texture2DProjGradEXT
mov ecx, dword [ecx + 4]
call fcn.10093524
push ebx
lea ecx, [ebp - 0x20]
call fcn.10089cca
mov ecx, dword [esi]
lea eax, [ebp - 0x20]
push eax
push str.textureCubeGradEXT
mov ecx, dword [ecx + 4]
call fcn.10093524
cmp dword [ebp + 8], 0x8b30
jne 0x1009647e
cmp dword [ebp + 0xc], 0x8b42
je 0x1009647e
push 1
push 1
push 4
push 0x19
push 2
push 1
lea ecx, [ebp - 0x10c]
call fcn.1008a1f9
mov eax, dword [edi + 0x1c]
push 0x74
mov byte [ebp - 0xf2], 1
mov dword [ebp - 0xf0], eax
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov ebx, eax
test ebx, ebx
je 0x100963b7
push 0
lea eax, [ebp - 0x10c]
push eax
push str.gl_FragData
call fcn.100928a8
pop ecx
push eax
mov ecx, ebx
call fcn.100954a6
jmp 0x100963b9
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx + 4]
call fcn.10092ec9
cmp dword [edi + 0x3c], 0
jne 0x100963d4
cmp dword [edi + 0x40], 0
je 0x1009647e
push 1
push 1
push 4
push 0x1c
push 2
push 1
lea ecx, [ebp - 0x10c]
call fcn.1008a1f9
mov eax, dword [edi + 0x1c]
push 0x74
mov byte [ebp - 0xf2], 1
mov dword [ebp - 0xf0], eax
call fcn.1008dec8
mov ecx, eax
call fcn.1008df7a
mov ebx, eax
test ebx, ebx
je 0x1009642d
push 0
lea eax, [ebp - 0x10c]
push eax
push str.gl_LastFragData
call fcn.100928a8
pop ecx
push eax
mov ecx, ebx
call fcn.100954a6
jmp 0x1009642f
xor eax, eax
mov ecx, dword [esi]
push eax
mov ecx, dword [ecx + 4]
call fcn.10092ec9
cmp dword [edi + 0x3c], 0
je 0x10096452
push str.GL_EXT_shader_framebuffer_fetch
lea ecx, [ebp - 0x20]
call fcn.10089cca
lea eax, [ebp - 0x20]
jmp 0x1009646e
cmp dword [edi + 0x40], 0
je 0x1009647e
push str.GL_NV_shader_framebuffer_fetch
lea ecx, [ebp - 0x128]
call fcn.10089cca
lea eax, [ebp - 0x128]
mov ecx, dword [esi]
push eax
push str.gl_LastFragData
mov ecx, dword [ecx + 4]
call fcn.10093524
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100cdf13
mov esp, ebp
pop ebp
ret