/*
 |            file: glsl/glslfns.c
 |        language: 1	(ANSI C)
 |     produced by: GNU C 4.2.1
 |    compiler dir: /OST/GraphicsGFX/SDP3430/Source/SGX12.19/GFX_Linux_DDK/src/eurasia/tools/intern/oglcompiler
 | program counter: <0x469f0;0x48320>
 */
typedef unsigned char IMG_UINT8

typedef char IMG_CHAR

typedef long unsigned int IMG_UINT32

typedef long int IMG_INT32

typedef float IMG_FLOAT

enum tag_img_bool {
	IMG_FALSE = 0; //0x0
	IMG_TRUE = 1; //0x1
	IMG_FORCE_ALIGN = 2147483647; //0x7fffffff
}

typedef enum tag_img_bool IMG_BOOL

typedef void IMG_VOID

enum ErrorTypeTAG {
	ERRORTYPE_INTERNAL = 1; //0x1
	ERRORTYPE_PROGRAM_ERROR = 2; //0x2
	ERRORTYPE_PROGRAM_WARNING = 4; //0x4
	ERRORTYPE_ALL = 7; //0x7
}

typedef enum ErrorTypeTAG ErrorType

struct ErrorMessageTAG {
	ErrorType eErrorType // @0
	IMG_CHAR* pszErrorMessageString // @4
	IMG_CHAR* pszStartOfLine // @8
	IMG_UINT32 uCharNumber // @c
}

typedef struct ErrorMessageTAG ErrorMessage

struct ErrorLogTAG {
	ErrorMessage[100] sErrorMessages // @0
	IMG_UINT32 uNumProgramErrorMessages // @640
	IMG_UINT32 uNumProgramWarningMessages // @644
	IMG_UINT32 uNumInternalErrorMessages // @648
	IMG_UINT32 uTotalNumErrorMessages // @64c
	IMG_BOOL bDisplayMessages // @650
}

typedef struct ErrorLogTAG ErrorLog

typedef struct GLSLCompilerPrivateDataTAG GLSLCompilerPrivateData

struct GLSLCompilerPrivateDataTAG {
	LanguageContext* psLanguageContext // @0
	SymbolTableContext* psSymbolTableContext // @4
	SymTable* psVertexSymbolTable // @8
	SymTable* psFragmentSymbolTable // @c
	GLSLIdentifierList sVertexBuiltInsReferenced // @10
	GLSLIdentifierList sFragmentBuiltInsReferenced // @1c
	IMG_VOID* pvUniFlexContext // @28
	ErrorLog* psErrorLog // @2c
	IMG_UINT32 uPointCoordTC // @30
	IMG_UINT32 uCurSrcLine // @34
}

enum TokenNameTag {
	TOK_INVALID_TOKEN = 0; //0x0
	TOK_ARRAY_LENGTH = 1; //0x1
	TOK_ATTRIBUTE = 2; //0x2
	TOK_BOOL = 3; //0x3
	TOK_BREAK = 4; //0x4
	TOK_BVEC2 = 5; //0x5
	TOK_BVEC3 = 6; //0x6
	TOK_BVEC4 = 7; //0x7
	TOK_CENTROID = 8; //0x8
	TOK_CONST = 9; //0x9
	TOK_CONTINUE = 10; //0xa
	TOK_DISCARD = 11; //0xb
	TOK_DO = 12; //0xc
	TOK_ELSE = 13; //0xd
	TOK_FALSE = 14; //0xe
	TOK_FLAT = 15; //0xf
	TOK_FLOAT = 16; //0x10
	TOK_FOR = 17; //0x11
	TOK_HIGH_PRECISION = 18; //0x12
	TOK_IF = 19; //0x13
	TOK_IN = 20; //0x14
	TOK_INOUT = 21; //0x15
	TOK_INT = 22; //0x16
	TOK_INVARIANT = 23; //0x17
	TOK_IVEC2 = 24; //0x18
	TOK_IVEC3 = 25; //0x19
	TOK_IVEC4 = 26; //0x1a
	TOK_LOW_PRECISION = 27; //0x1b
	TOK_MAT2X2 = 28; //0x1c
	TOK_MAT2X3 = 29; //0x1d
	TOK_MAT2X4 = 30; //0x1e
	TOK_MAT3X2 = 31; //0x1f
	TOK_MAT3X3 = 32; //0x20
	TOK_MAT3X4 = 33; //0x21
	TOK_MAT4X2 = 34; //0x22
	TOK_MAT4X3 = 35; //0x23
	TOK_MAT4X4 = 36; //0x24
	TOK_MEDIUM_PRECISION = 37; //0x25
	TOK_OUT = 38; //0x26
	TOK_PRECISION = 39; //0x27
	TOK_RETURN = 40; //0x28
	TOK_SAMPLER1D = 41; //0x29
	TOK_SAMPLER2D = 42; //0x2a
	TOK_SAMPLER3D = 43; //0x2b
	TOK_SAMPLER1DSHADOW = 44; //0x2c
	TOK_SAMPLER2DSHADOW = 45; //0x2d
	TOK_SAMPLERCUBE = 46; //0x2e
	TOK_STRUCT = 47; //0x2f
	TOK_SUPER_PRECISION = 48; //0x30
	TOK_TRUE = 49; //0x31
	TOK_UNIFORM = 50; //0x32
	TOK_VARYING = 51; //0x33
	TOK_VEC2 = 52; //0x34
	TOK_VEC3 = 53; //0x35
	TOK_VEC4 = 54; //0x36
	TOK_VOID = 55; //0x37
	TOK_WHILE = 56; //0x38
	TOK_ASM = 57; //0x39
	TOK_CAST = 58; //0x3a
	TOK_CLASS = 59; //0x3b
	TOK_DEFAULT = 60; //0x3c
	TOK_DOUBLE = 61; //0x3d
	TOK_DVEC2 = 62; //0x3e
	TOK_DVEC3 = 63; //0x3f
	TOK_DVEC4 = 64; //0x40
	TOK_ENUM = 65; //0x41
	TOK_EXTERN = 66; //0x42
	TOK_EXTERNAL = 67; //0x43
	TOK_FIXED = 68; //0x44
	TOK_FVEC2 = 69; //0x45
	TOK_FVEC3 = 70; //0x46
	TOK_FVEC4 = 71; //0x47
	TOK_GOTO = 72; //0x48
	TOK_HALF = 73; //0x49
	TOK_HVEC2 = 74; //0x4a
	TOK_HVEC3 = 75; //0x4b
	TOK_HVEC4 = 76; //0x4c
	TOK_INLINE = 77; //0x4d
	TOK_INPUT = 78; //0x4e
	TOK_INTERFACE = 79; //0x4f
	TOK_LONG = 80; //0x50
	TOK_NAMESPACE = 81; //0x51
	TOK_NOINLINE = 82; //0x52
	TOK_OUTPUT = 83; //0x53
	TOK_PACKED = 84; //0x54
	TOK_PUBLIC = 85; //0x55
	TOK_SAMPLER2DRECT = 86; //0x56
	TOK_SAMPLER2DRECTSHADOW = 87; //0x57
	TOK_SAMPLER3DRECT = 88; //0x58
	TOK_SHORT = 89; //0x59
	TOK_SIZEOF = 90; //0x5a
	TOK_STATIC = 91; //0x5b
	TOK_SWITCH = 92; //0x5c
	TOK_TEMPLATE = 93; //0x5d
	TOK_THIS = 94; //0x5e
	TOK_TYPEDEF = 95; //0x5f
	TOK_UNION = 96; //0x60
	TOK_UNSIGNED = 97; //0x61
	TOK_USING = 98; //0x62
	TOK_VOLATILE = 99; //0x63
	TOK_CASE = 100; //0x64
	TOK_CHAR = 101; //0x65
	TOK_BYTE = 102; //0x66
	TOK_INCOMMENT = 103; //0x67
	TOK_OUTCOMMENT = 104; //0x68
	TOK_COMMENT = 105; //0x69
	TOK_AMPERSAND = 106; //0x6a
	TOK_BANG = 107; //0x6b
	TOK_CARET = 108; //0x6c
	TOK_COMMA = 109; //0x6d
	TOK_COLON = 110; //0x6e
	TOK_DASH = 111; //0x6f
	TOK_DOT = 112; //0x70
	TOK_DOTDOT = 113; //0x71
	TOK_EQUAL = 114; //0x72
	TOK_LEFT_ANGLE = 115; //0x73
	TOK_LEFT_BRACE = 116; //0x74
	TOK_LEFT_BRACKET = 117; //0x75
	TOK_LEFT_PAREN = 118; //0x76
	TOK_PERCENT = 119; //0x77
	TOK_PLUS = 120; //0x78
	TOK_QUESTION = 121; //0x79
	TOK_RIGHT_ANGLE = 122; //0x7a
	TOK_RIGHT_BRACE = 123; //0x7b
	TOK_RIGHT_BRACKET = 124; //0x7c
	TOK_RIGHT_PAREN = 125; //0x7d
	TOK_SEMICOLON = 126; //0x7e
	TOK_SLASH = 127; //0x7f
	TOK_STAR = 128; //0x80
	TOK_TILDA = 129; //0x81
	TOK_VERTICAL_BAR = 130; //0x82
	TOK_APOSTROPHE = 131; //0x83
	TOK_AT = 132; //0x84
	TOK_BACK_SLASH = 133; //0x85
	TOK_DOLLAR = 134; //0x86
	TOK_HASH = 135; //0x87
	TOK_SPEECH_MARK = 136; //0x88
	TOK_UNDERSCORE = 137; //0x89
	TOK_ADD_ASSIGN = 138; //0x8a
	TOK_AND_ASSIGN = 139; //0x8b
	TOK_AND_OP = 140; //0x8c
	TOK_DEC_OP = 141; //0x8d
	TOK_DIV_ASSIGN = 142; //0x8e
	TOK_EQ_OP = 143; //0x8f
	TOK_INC_OP = 144; //0x90
	TOK_GE_OP = 145; //0x91
	TOK_LE_OP = 146; //0x92
	TOK_LEFT_ASSIGN = 147; //0x93
	TOK_LEFT_OP = 148; //0x94
	TOK_MOD_ASSIGN = 149; //0x95
	TOK_MUL_ASSIGN = 150; //0x96
	TOK_NE_OP = 151; //0x97
	TOK_OR_ASSIGN = 152; //0x98
	TOK_OR_OP = 153; //0x99
	TOK_RIGHT_ASSIGN = 154; //0x9a
	TOK_RIGHT_OP = 155; //0x9b
	TOK_SUB_ASSIGN = 156; //0x9c
	TOK_XOR_OP = 157; //0x9d
	TOK_XOR_ASSIGN = 158; //0x9e
	TOK_FLOATCONSTANT = 159; //0x9f
	TOK_BOOLCONSTANT = 160; //0xa0
	TOK_INTCONSTANT = 161; //0xa1
	TOK_IDENTIFIER = 162; //0xa2
	TOK_PROGRAMHEADER = 163; //0xa3
	TOK_ABS = 164; //0xa4
	TOK_ADD = 165; //0xa5
	TOK_ADDRESS = 166; //0xa6
	TOK_ALIAS = 167; //0xa7
	TOK_ARL = 168; //0xa8
	TOK_ATTRIB = 169; //0xa9
	TOK_DP3 = 170; //0xaa
	TOK_DP4 = 171; //0xab
	TOK_DPH = 172; //0xac
	TOK_DST = 173; //0xad
	TOK_END = 174; //0xae
	TOK_EX2 = 175; //0xaf
	TOK_EXP = 176; //0xb0
	TOK_FLR = 177; //0xb1
	TOK_FRC = 178; //0xb2
	TOK_LIT = 179; //0xb3
	TOK_LG2 = 180; //0xb4
	TOK_LOG = 181; //0xb5
	TOK_MAD = 182; //0xb6
	TOK_MAX = 183; //0xb7
	TOK_MIN = 184; //0xb8
	TOK_MOV = 185; //0xb9
	TOK_MUL = 186; //0xba
	TOK_OPTION = 187; //0xbb
	TOK_PARAM = 188; //0xbc
	TOK_POW = 189; //0xbd
	TOK_PROGRAM = 190; //0xbe
	TOK_RCP = 191; //0xbf
	TOK_RESULT = 192; //0xc0
	TOK_RSQ = 193; //0xc1
	TOK_SGE = 194; //0xc2
	TOK_SLT = 195; //0xc3
	TOK_SUB = 196; //0xc4
	TOK_STATE = 197; //0xc5
	TOK_SWZ = 198; //0xc6
	TOK_TEMP = 199; //0xc7
	TOK_VERTEX = 200; //0xc8
	TOK_XPD = 201; //0xc9
	TOK_ATTRIB_LC = 202; //0xca
	TOK_COLOR = 203; //0xcb
	TOK_FOGCOORD = 204; //0xcc
	TOK_MATRIXINDEX = 205; //0xcd
	TOK_NORMAL = 206; //0xce
	TOK_POSITION = 207; //0xcf
	TOK_PRIMARY = 208; //0xd0
	TOK_SECONDARY = 209; //0xd1
	TOK_TEXCOORD = 210; //0xd2
	TOK_WEIGHT = 211; //0xd3
	TOK_ENV = 212; //0xd4
	TOK_LOCAL = 213; //0xd5
	TOK_AMBIENT = 214; //0xd6
	TOK_BACK = 215; //0xd7
	TOK_DIFFUSE = 216; //0xd8
	TOK_EMISSION = 217; //0xd9
	TOK_FRONT = 218; //0xda
	TOK_MATERIAL = 219; //0xdb
	TOK_SHININESS = 220; //0xdc
	TOK_SPECULAR = 221; //0xdd
	TOK_ATTENUATION = 222; //0xde
	TOK_DIRECTION = 223; //0xdf
	TOK_LIGHT = 224; //0xe0
	TOK_LIGHTMODEL = 225; //0xe1
	TOK_LIGHTPROD = 226; //0xe2
	TOK_SCENECOLOR = 227; //0xe3
	TOK_SPOT = 228; //0xe4
	TOK_EYE = 229; //0xe5
	TOK_OBJECT = 230; //0xe6
	TOK_TEXGEN = 231; //0xe7
	TOK_FOG = 232; //0xe8
	TOK_PARAMS = 233; //0xe9
	TOK_CLIP = 234; //0xea
	TOK_PLANE = 235; //0xeb
	TOK_POINT = 236; //0xec
	TOK_SIZE = 237; //0xed
	TOK_INVERSE = 238; //0xee
	TOK_INVTRANS = 239; //0xef
	TOK_MATRIX = 240; //0xf0
	TOK_MODELVIEW = 241; //0xf1
	TOK_MVP = 242; //0xf2
	TOK_PALETTE = 243; //0xf3
	TOK_PROJECTION = 244; //0xf4
	TOK_ROW = 245; //0xf5
	TOK_TEXTURE = 246; //0xf6
	TOK_TRANSPOSE = 247; //0xf7
	TOK_POINTSIZE = 248; //0xf8
	TOK_1SWIZZLE = 249; //0xf9
	TOK_2SWIZZLE = 250; //0xfa
	TOK_3SWIZZLE = 251; //0xfb
	TOK_4SWIZZLE = 252; //0xfc
	TOK_TEXGENCOORD = 253; //0xfd
	TOK_SWIZZLE = 254; //0xfe
	TOK_WRITEMASK = 255; //0xff
	TOK_SET_PREDICATE = 256; //0x100
	TOK_TEST_PREDICATE = 257; //0x101
	TOK_NEWLINE = 258; //0x102
	TOK_CARRIGE_RETURN = 259; //0x103
	TOK_TAB = 260; //0x104
	TOK_VTAB = 261; //0x105
	TOK_LANGUAGE_VERSION = 262; //0x106
	TOK_EXTENSION_CHANGE = 263; //0x107
	TOK_STRING = 264; //0x108
	TOK_ENDOFSTRING = 265; //0x109
	TOK_TERMINATEPARSING = 266; //0x10a
	TOKLAST = 267; //0x10b
}

typedef enum TokenNameTag TokenName

struct TokenTAG {
	TokenName eTokenName // @0
	IMG_CHAR* pszStartOfLine // @4
	IMG_UINT32 uStringNumber // @8
	IMG_UINT32 uLineNumber // @c
	IMG_UINT32 uCharNumber // @10
	IMG_UINT32 uSizeOfDataInBytes // @14
	IMG_VOID* pvData // @18
}

typedef struct TokenTAG Token

enum SyntaxSymbolMatchTAG {
	SYNTAX_SYMBOL_NO_MATCH = 0; //0x0
	SYNTAX_SYMBOL_MATCH = 1; //0x1
}

typedef enum SyntaxSymbolMatchTAG SyntaxSymbolMatch

enum SyntaxSymbolTypeTAG {
	SYMTYPE_RULE = 0; //0x0
	SYMTYPE_TOKEN = 1; //0x1
}

typedef enum SyntaxSymbolTypeTAG SyntaxSymbolType

typedef struct SyntaxSymbolTAG* PSyntaxSymbol

struct SyntaxSymbolTAG {
	IMG_UINT32 uSyntaxSymbolName // @0
	const IMG_CHAR* pSyntaxSymbolName // @4
	SyntaxSymbolType eSyntaxSymbolType // @8
	TokenName eTokenName // @c
	PFN_STATEMENT_MATCH pfnSyntaxSymbolMatchFN // @10
	PFN_STATEMENT_UNMATCH pfnSyntaxSymbolUnmatchFN // @14
	IMG_CHAR* pszDataMatch // @18
	IMG_UINT32 uLRSyntaxSymbolName // @1c
}

typedef SyntaxSymbolMatch* PFN_STATEMENT_MATCH

typedef enum SyntaxSymbolMatchTAG SyntaxSymbolMatch

typedef void* PFN_STATEMENT_UNMATCH

void

typedef struct SyntaxSymbolTAG SyntaxSymbol

struct SyntaxSymbolLookupEntryTAG {
	IMG_UINT32 uSyntaxSymbolGrammarStartPos // @0
	IMG_UINT32 uRuleNumber // @4
	IMG_UINT32 uNumVariants // @8
}

typedef struct SyntaxSymbolLookupEntryTAG SyntaxSymbolLookupEntry

struct SyntaxTableTAG {
	SyntaxSymbol* psSyntaxSymbolTable // @0
	IMG_UINT32 uSyntaxSymbolTableSize // @4
	SyntaxSymbolLookupEntry* psLookupTable // @8
	IMG_UINT32* psSyntaxGrammar // @c
	IMG_UINT32 uNumberSyntaxGrammarRules // @10
	IMG_UINT32 uEmptySyntaxSymbolName // @14
}

typedef struct SyntaxTableTAG SyntaxTable

typedef void* PFN_SYMBOL_DECONSTRUCTOR

void

struct SymTableEntry_TAG {
	IMG_CHAR* pszString // @0
	IMG_UINT32 uSymbolID // @4
	IMG_UINT32 bScopeModifier // @8
	IMG_UINT32 uScopeLevel // @8
	IMG_UINT32 uRefCount // @8
	IMG_UINT32 uDataSizeInBytes // @8
	IMG_VOID* pvData // @c
	PFN_SYMBOL_DECONSTRUCTOR pfnSymbolDeconstructor // @10
}

typedef struct SymTableEntry_TAG SymTableEntry

struct SymTable_TAG {
	IMG_CHAR[20] acDesc // @0
	IMG_UINT32 uNumEntries // @14
	IMG_UINT32 uMaxNumEntries // @18
	IMG_UINT32 uMaxNumBitsForSymbolTableIDs // @1c
	IMG_UINT32 uSymbolIDShift // @20
	IMG_UINT32 uSymbolIDMask // @24
	IMG_UINT32 uMaxTableSize // @28
	IMG_UINT32 uMaxNumUniqueSymbolIDs // @2c
	IMG_UINT32 uCurrentScopeLevel // @30
	IMG_UINT32 uUniqueSymbolTableID // @34
	IMG_UINT32 uGetNextSymbolCounter // @38
	IMG_UINT32 uGetNextSymbolScopeLevel // @3c
	struct SymTable_TAG* psSecondarySymbolTable // @40
	SymTableEntry* psEntries // @44
}

typedef struct SymTable_TAG SymTable

struct SymbolTableContextTAG {
	IMG_UINT32 uSymbolTableListSize // @0
	SymTable** ppsSymbolTables // @4
}

typedef struct SymbolTableContextTAG SymbolTableContext

typedef unsigned int size_t

typedef long long int __quad_t

typedef long int __off_t

typedef __quad_t __off64_t

struct LanguageContextTAG {
	SyntaxTable* psSyntaxTable // @0
	IMG_UINT32 uLastSyntaxSymbolName // @4
	IMG_UINT32 uEmptySyntaxSymbolName // @8
	IMG_UINT32 uHeadSyntaxSymbolName // @c
}

typedef struct LanguageContextTAG LanguageContext

struct _IO_FILE {
	int _flags // @0
	char* _IO_read_ptr // @4
	char* _IO_read_end // @8
	char* _IO_read_base // @c
	char* _IO_write_base // @10
	char* _IO_write_ptr // @14
	char* _IO_write_end // @18
	char* _IO_buf_base // @1c
	char* _IO_buf_end // @20
	char* _IO_save_base // @24
	char* _IO_backup_base // @28
	char* _IO_save_end // @2c
	struct _IO_marker* _markers // @30
	struct _IO_FILE* _chain // @34
	int _fileno // @38
	int _flags2 // @3c
	__off_t _old_offset // @40
	short unsigned int _cur_column // @44
	signed char _vtable_offset // @46
	char[1] _shortbuf // @47
	_IO_lock_t* _lock // @48
	__off64_t _offset // @50
	void* __pad1 // @58
	void* __pad2 // @5c
	void* __pad3 // @60
	void* __pad4 // @64
	size_t __pad5 // @68
	int _mode // @6c
	char[40] _unused2 // @70
}

typedef void _IO_lock_t

struct _IO_marker {
	struct _IO_marker* _next // @0
	struct _IO_FILE* _sbuf // @4
	int _pos // @8
}

enum GLSLTypeSpecifierTAG {
	GLSLTS_INVALID = 0; //0x0
	GLSLTS_VOID = 1; //0x1
	GLSLTS_FLOAT = 2; //0x2
	GLSLTS_VEC2 = 3; //0x3
	GLSLTS_VEC3 = 4; //0x4
	GLSLTS_VEC4 = 5; //0x5
	GLSLTS_INT = 6; //0x6
	GLSLTS_IVEC2 = 7; //0x7
	GLSLTS_IVEC3 = 8; //0x8
	GLSLTS_IVEC4 = 9; //0x9
	GLSLTS_BOOL = 10; //0xa
	GLSLTS_BVEC2 = 11; //0xb
	GLSLTS_BVEC3 = 12; //0xc
	GLSLTS_BVEC4 = 13; //0xd
	GLSLTS_MAT2X2 = 14; //0xe
	GLSLTS_MAT2X3 = 15; //0xf
	GLSLTS_MAT2X4 = 16; //0x10
	GLSLTS_MAT3X2 = 17; //0x11
	GLSLTS_MAT3X3 = 18; //0x12
	GLSLTS_MAT3X4 = 19; //0x13
	GLSLTS_MAT4X2 = 20; //0x14
	GLSLTS_MAT4X3 = 21; //0x15
	GLSLTS_MAT4X4 = 22; //0x16
	GLSLTS_SAMPLER1D = 23; //0x17
	GLSLTS_SAMPLER2D = 24; //0x18
	GLSLTS_SAMPLER3D = 25; //0x19
	GLSLTS_SAMPLERCUBE = 26; //0x1a
	GLSLTS_SAMPLER1DSHADOW = 27; //0x1b
	GLSLTS_SAMPLER2DSHADOW = 28; //0x1c
	GLSLTS_STRUCT = 29; //0x1d
}

typedef enum GLSLTypeSpecifierTAG GLSLTypeSpecifier

enum GLSLBuiltInFunctionIDTAG {
	GLSLBFID_RADIANS = 0; //0x0
	GLSLBFID_DEGREES = 1; //0x1
	GLSLBFID_SIN = 2; //0x2
	GLSLBFID_COS = 3; //0x3
	GLSLBFID_TAN = 4; //0x4
	GLSLBFID_ASIN = 5; //0x5
	GLSLBFID_ACOS = 6; //0x6
	GLSLBFID_ATAN = 7; //0x7
	GLSLBFID_POW = 8; //0x8
	GLSLBFID_EXP = 9; //0x9
	GLSLBFID_LOG = 10; //0xa
	GLSLBFID_EXP2 = 11; //0xb
	GLSLBFID_LOG2 = 12; //0xc
	GLSLBFID_SQRT = 13; //0xd
	GLSLBFID_INVERSESQRT = 14; //0xe
	GLSLBFID_ABS = 15; //0xf
	GLSLBFID_SIGN = 16; //0x10
	GLSLBFID_FLOOR = 17; //0x11
	GLSLBFID_CEIL = 18; //0x12
	GLSLBFID_FRACT = 19; //0x13
	GLSLBFID_MOD = 20; //0x14
	GLSLBFID_MIN = 21; //0x15
	GLSLBFID_MAX = 22; //0x16
	GLSLBFID_CLAMP = 23; //0x17
	GLSLBFID_MIX = 24; //0x18
	GLSLBFID_STEP = 25; //0x19
	GLSLBFID_SMOOTHSTEP = 26; //0x1a
	GLSLBFID_LENGTH = 27; //0x1b
	GLSLBFID_DISTANCE = 28; //0x1c
	GLSLBFID_DOT = 29; //0x1d
	GLSLBFID_CROSS = 30; //0x1e
	GLSLBFID_NORMALIZE = 31; //0x1f
	GLSLBFID_FTRANSFORM = 32; //0x20
	GLSLBFID_FACEFORWARD = 33; //0x21
	GLSLBFID_REFLECT = 34; //0x22
	GLSLBFID_REFRACT = 35; //0x23
	GLSLBFID_MATRIXCOMPMULT = 36; //0x24
	GLSLBFID_TRANSPOSE = 37; //0x25
	GLSLBFID_OUTERPRODUCT = 38; //0x26
	GLSLBFID_LESSTHAN = 39; //0x27
	GLSLBFID_LESSTHANEQUAL = 40; //0x28
	GLSLBFID_GREATERTHAN = 41; //0x29
	GLSLBFID_GREATERTHANEQUAL = 42; //0x2a
	GLSLBFID_EQUAL = 43; //0x2b
	GLSLBFID_NOTEQUAL = 44; //0x2c
	GLSLBFID_ANY = 45; //0x2d
	GLSLBFID_ALL = 46; //0x2e
	GLSLBFID_NOT = 47; //0x2f
	GLSLBFID_TEXTURE1D = 48; //0x30
	GLSLBFID_TEXTURE1DPROJ = 49; //0x31
	GLSLBFID_TEXTURE1DLOD = 50; //0x32
	GLSLBFID_TEXTURE1DPROJLOD = 51; //0x33
	GLSLBFID_TEXTURE1DGRAD = 52; //0x34
	GLSLBFID_TEXTURE1DPROJGRAD = 53; //0x35
	GLSLBFID_TEXTURE2D = 54; //0x36
	GLSLBFID_TEXTURE2DPROJ = 55; //0x37
	GLSLBFID_TEXTURE2DLOD = 56; //0x38
	GLSLBFID_TEXTURE2DPROJLOD = 57; //0x39
	GLSLBFID_TEXTURE2DGRAD = 58; //0x3a
	GLSLBFID_TEXTURE2DPROJGRAD = 59; //0x3b
	GLSLBFID_TEXTURE3D = 60; //0x3c
	GLSLBFID_TEXTURE3DPROJ = 61; //0x3d
	GLSLBFID_TEXTURE3DLOD = 62; //0x3e
	GLSLBFID_TEXTURE3DPROJLOD = 63; //0x3f
	GLSLBFID_TEXTURE3DGRAD = 64; //0x40
	GLSLBFID_TEXTURE3DPROJGRAD = 65; //0x41
	GLSLBFID_TEXTURECUBE = 66; //0x42
	GLSLBFID_TEXTURECUBELOD = 67; //0x43
	GLSLBFID_TEXTURECUBEGRAD = 68; //0x44
	GLSLBFID_SHADOW1D = 69; //0x45
	GLSLBFID_SHADOW1DPROJ = 70; //0x46
	GLSLBFID_SHADOW1DLOD = 71; //0x47
	GLSLBFID_SHADOW1DPROJLOD = 72; //0x48
	GLSLBFID_SHADOW1DGRAD = 73; //0x49
	GLSLBFID_SHADOW1DPROJGRAD = 74; //0x4a
	GLSLBFID_SHADOW2D = 75; //0x4b
	GLSLBFID_SHADOW2DPROJ = 76; //0x4c
	GLSLBFID_SHADOW2DLOD = 77; //0x4d
	GLSLBFID_SHADOW2DPROJLOD = 78; //0x4e
	GLSLBFID_SHADOW2DGRAD = 79; //0x4f
	GLSLBFID_SHADOW2DPROJGRAD = 80; //0x50
	GLSLBFID_DFDX = 81; //0x51
	GLSLBFID_DFDY = 82; //0x52
	GLSLBFID_FWIDTH = 83; //0x53
	GLSLBFID_NOISE1 = 84; //0x54
	GLSLBFID_NOISE2 = 85; //0x55
	GLSLBFID_NOISE3 = 86; //0x56
	GLSLBFID_NOISE4 = 87; //0x57
	GLSLBFID_NOT_BUILT_IN = 88; //0x58
}

typedef enum GLSLBuiltInFunctionIDTAG GLSLBuiltInFunctionID

struct GLSLIdentifierListTAG {
	IMG_UINT32* puIdentifiersReferenced // @0
	IMG_UINT32 uNumIdentifiersReferenced // @4
	IMG_UINT32 uIdentifiersReferencedListSize // @8
}

typedef struct GLSLIdentifierListTAG GLSLIdentifierList

// external function PC=<0x469f0;0x48320>
IMG_BOOL EmulateBuiltInFunction(
	GLSLCompilerPrivateData* psCPD
	GLSLBuiltInFunctionID eBFID
	GLSLTypeSpecifier* peTypeSpecifiers
	IMG_VOID** pvData
	IMG_VOID* pvResult
	GLSLTypeSpecifier* peResultTypeSpecifier
	)
{
	IMG_UINT32 x
	IMG_UINT32 y
	IMG_UINT32 z
	IMG_UINT32 i
	IMG_UINT32[3] uIncArg
	IMG_FLOAT fResult
	IMG_UINT32 uLoopCount
	IMG_FLOAT* pfData1
	IMG_FLOAT* pfData2
	IMG_FLOAT* pfData3
	IMG_FLOAT* pfResult
	IMG_BOOL* pbData1
	IMG_BOOL* pbResult
	IMG_INT32* piData1
	IMG_INT32* piData2
	{
		IMG_FLOAT fDotNI
	}
	{
		IMG_UINT32 uNumRows
		IMG_UINT32 uNumCols
	}
	{
		IMG_UINT32 uNumRows
		IMG_UINT32 uNumCols
	}
	const GLSLTypeSpecifier[9] aeTransposeResultTable
	const GLSLTypeSpecifier[3] aeOuterProductResultTable
}


struct _IO_FILE* stdin

struct _IO_FILE* stdout

const IMG_UINT8[30] GLSLTypeSpecifierNumElementsTable

const IMG_UINT8[30] GLSLTypeSpecifierDimensionTable

const IMG_UINT8[30] GLSLTypeSpecifierIndexedTable

