/*
 |            file: usc.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/usc
 | program counter: <0x6a054;0x79614>
 */
typedef unsigned int size_t

typedef long long int __quad_t

typedef long int __off_t

typedef __quad_t __off64_t

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
}

typedef int[64] __jmp_buf

typedef struct {
	long unsigned int[32] __val // @0
} __sigset_t

struct __jmp_buf_tag {
	__jmp_buf __jmpbuf // @0
	int __mask_was_saved // @100
	__sigset_t __saved_mask // @104
}

typedef struct __jmp_buf_tag[1] jmp_buf

typedef unsigned char IMG_UINT8

typedef unsigned char IMG_BYTE

typedef char IMG_CHAR

typedef char* IMG_PCHAR

typedef short unsigned int IMG_UINT16

typedef long unsigned int IMG_UINT32

typedef long unsigned int* IMG_PUINT32

typedef long int IMG_INT32

typedef float IMG_FLOAT

typedef float* IMG_PFLOAT

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 enum tag_img_bool* IMG_PBOOL

typedef void* IMG_PVOID

enum undefined {
	SGX_CORE_ID_INVALID = 0; //0x0
	SGX_CORE_ID_520 = 1; //0x1
	SGX_CORE_ID_530 = 2; //0x2
	SGX_CORE_ID_535 = 3; //0x3
	SGX_CORE_ID_540 = 4; //0x4
	SGX_CORE_ID_545 = 5; //0x5
}

typedef enum undefined SGX_CORE_ID_TYPE

struct _SGX_CORE_INFO {
	SGX_CORE_ID_TYPE eID // @0
	IMG_UINT32 uiRev // @4
}

typedef struct _SGX_CORE_INFO SGX_CORE_INFO

struct _SGX_CORE_BUGS {
	SGX_CORE_ID_TYPE eCoreType // @0
	IMG_UINT32 ui32CoreRevision // @4
	IMG_UINT32 ui32Flags // @8
}

typedef struct _SGX_CORE_BUGS SGX_CORE_BUGS

struct _SGX_CORE_FEATURES {
	IMG_UINT32 ui32Flags // @0
	IMG_UINT32 ui32NumMutexes // @4
	IMG_UINT32 ui32NumMonitors // @8
	IMG_UINT32 ui32TextureStateSize // @c
	IMG_UINT32 ui32NumUSEPipes // @10
	IMG_UINT32 ui32NumProgramCounterBits // @14
}

typedef struct _SGX_CORE_FEATURES SGX_CORE_FEATURES

enum UseasmRegTypeTAG {
	USEASM_REGTYPE_TEMP = 0; //0x0
	USEASM_REGTYPE_OUTPUT = 1; //0x1
	USEASM_REGTYPE_PRIMATTR = 2; //0x2
	USEASM_REGTYPE_SECATTR = 3; //0x3
	USEASM_REGTYPE_INDEX = 4; //0x4
	USEASM_REGTYPE_GLOBAL = 5; //0x5
	USEASM_REGTYPE_FPCONSTANT = 6; //0x6
	USEASM_REGTYPE_FPINTERNAL = 7; //0x7
	USEASM_REGTYPE_IMMEDIATE = 8; //0x8
	USEASM_REGTYPE_LINK = 9; //0x9
	USEASM_REGTYPE_DRC = 10; //0xa
	USEASM_REGTYPE_LABEL = 11; //0xb
	USEASM_REGTYPE_PREDICATE = 12; //0xc
	USEASM_REGTYPE_CLIPPLANE = 13; //0xd
	USEASM_REGTYPE_ADDRESSMODE = 14; //0xe
	USEASM_REGTYPE_SWIZZLE = 15; //0xf
	USEASM_REGTYPE_INTSRCSEL = 16; //0x10
	USEASM_REGTYPE_FILTERCOEFF = 17; //0x11
	USEASM_REGTYPE_LABEL_WITH_OFFSET = 18; //0x12
	USEASM_REGTYPE_TEMP_NAMED = 19; //0x13
	USEASM_REGTYPE_MAXIMUM = 20; //0x14
}

struct _USE_REGISTER {
	IMG_UINT32 uNumber // @0
	IMG_UINT32 uType // @4
	IMG_UINT32 uFlags // @8
	IMG_UINT32 uIndex // @c
	IMG_UINT32 uNamedRegLink // @10
}

typedef struct _USE_REGISTER USE_REGISTER

struct _USE_INST {
	IMG_UINT32 uOpcode // @0
	IMG_UINT32 uFlags1 // @4
	IMG_UINT32 uFlags2 // @8
	IMG_UINT32 uFlags3 // @c
	IMG_UINT32 uTest // @10
	USE_REGISTER[11] asArg // @14
	struct _USE_INST* psPrev // @f0
	struct _USE_INST* psNext // @f4
	IMG_UINT32 uSourceLine // @f8
	IMG_PCHAR pszSourceFile // @fc
}

typedef struct _USE_INST* PUSE_INST

typedef IMG_PVOID* USEASM_REALLOCFN

typedef void* IMG_PVOID

typedef IMG_UINT32* USEASM_GETLABELADDRFN

typedef long unsigned int IMG_UINT32

typedef void* USEASM_SETLABELADDRFN

void

typedef IMG_PCHAR* USEASM_GETLABELNAMEFN

typedef char* IMG_PCHAR

typedef void* USEASM_ASSEMBLERERRORFN

void

typedef void* USEASM_LADDRNOTIFY

void

struct _USEASM_CONTEXT {
	IMG_PVOID pvContext // @0
	IMG_PVOID pvLabelState // @4
	USEASM_REALLOCFN pfnRealloc // @8
	USEASM_GETLABELADDRFN pfnGetLabelAddress // @c
	USEASM_SETLABELADDRFN pfnSetLabelAddress // @10
	USEASM_GETLABELNAMEFN pfnGetLabelName // @14
	USEASM_ASSEMBLERERRORFN pfnAssemblerError // @18
	USEASM_LADDRNOTIFY pfnLADDRNotify // @1c
}

typedef struct _USEASM_CONTEXT* PUSEASM_CONTEXT

struct _USP_PC_SHADER_ {
	IMG_UINT32 uId // @0
	IMG_UINT32 uVersion // @4
	IMG_UINT32 uSize // @8
}

typedef struct _USP_PC_SHADER_* PUSP_PC_SHADER

typedef void* IMG_PVOID

void

void

enum tagUF_OPCODE {
	UFOP_ADD = 0; //0x0
	UFOP_SUB = 1; //0x1
	UFOP_MUL = 2; //0x2
	UFOP_MAD = 3; //0x3
	UFOP_DOT2ADD = 4; //0x4
	UFOP_DOT3 = 5; //0x5
	UFOP_DOT4 = 6; //0x6
	UFOP_RECIP = 7; //0x7
	UFOP_RSQRT = 8; //0x8
	UFOP_EXP = 9; //0x9
	UFOP_LOG = 10; //0xa
	UFOP_CMP = 11; //0xb
	UFOP_CND = 12; //0xc
	UFOP_FRC = 13; //0xd
	UFOP_FLR = 14; //0xe
	UFOP_TRC = 15; //0xf
	UFOP_RNE = 16; //0x10
	UFOP_CEIL = 17; //0x11
	UFOP_LRP = 18; //0x12
	UFOP_POW = 19; //0x13
	UFOP_MIN = 20; //0x14
	UFOP_MAX = 21; //0x15
	UFOP_CRS = 22; //0x16
	UFOP_NRM = 23; //0x17
	UFOP_ABS = 24; //0x18
	UFOP_SINCOS = 25; //0x19
	UFOP_SINCOS2 = 26; //0x1a
	UFOP_M4X4 = 27; //0x1b
	UFOP_M4X3 = 28; //0x1c
	UFOP_M3X4 = 29; //0x1d
	UFOP_M3X3 = 30; //0x1e
	UFOP_M3X2 = 31; //0x1f
	UFOP_DSX = 32; //0x20
	UFOP_DSY = 33; //0x21
	UFOP_DST = 34; //0x22
	UFOP_LIT = 35; //0x23
	UFOP_OGLLIT = 36; //0x24
	UFOP_SLT = 37; //0x25
	UFOP_SGE = 38; //0x26
	UFOP_SGN = 39; //0x27
	UFOP_SETBEQ = 40; //0x28
	UFOP_SETBGE = 41; //0x29
	UFOP_SETBLT = 42; //0x2a
	UFOP_SETBNE = 43; //0x2b
	UFOP_MOVCBIT = 44; //0x2c
	UFOP_DIV = 45; //0x2d
	UFOP_SQRT = 46; //0x2e
	UFOP_AND = 47; //0x2f
	UFOP_SHL = 48; //0x30
	UFOP_ASR = 49; //0x31
	UFOP_NOT = 50; //0x32
	UFOP_OR = 51; //0x33
	UFOP_SHR = 52; //0x34
	UFOP_XOR = 53; //0x35
	UFOP_LD = 54; //0x36
	UFOP_LDB = 55; //0x37
	UFOP_LDL = 56; //0x38
	UFOP_LDP = 57; //0x39
	UFOP_LDPIFTC = 58; //0x3a
	UFOP_LDD = 59; //0x3b
	UFOP_LDC = 60; //0x3c
	UFOP_LDCLZ = 61; //0x3d
	UFOP_KPLT = 62; //0x3e
	UFOP_KPLE = 63; //0x3f
	UFOP_KILLNZBIT = 64; //0x40
	UFOP_IF = 65; //0x41
	UFOP_ELSE = 66; //0x42
	UFOP_ENDIF = 67; //0x43
	UFOP_CALL = 68; //0x44
	UFOP_CALLNZ = 69; //0x45
	UFOP_RET = 70; //0x46
	UFOP_LOOP = 71; //0x47
	UFOP_ENDLOOP = 72; //0x48
	UFOP_REP = 73; //0x49
	UFOP_ENDREP = 74; //0x4a
	UFOP_IFC = 75; //0x4b
	UFOP_BREAK = 76; //0x4c
	UFOP_BREAKC = 77; //0x4d
	UFOP_SETP = 78; //0x4e
	UFOP_LABEL = 79; //0x4f
	UFOP_IFP = 80; //0x50
	UFOP_BREAKP = 81; //0x51
	UFOP_CALLP = 82; //0x52
	UFOP_GLSLLOOP = 83; //0x53
	UFOP_GLSLSTATICLOOP = 84; //0x54
	UFOP_GLSLENDLOOP = 85; //0x55
	UFOP_GLSLCONTINUE = 86; //0x56
	UFOP_GLSLLOOPTAIL = 87; //0x57
	UFOP_BREAKNZBIT = 88; //0x58
	UFOP_CALLNZBIT = 89; //0x59
	UFOP_RETNZBIT = 90; //0x5a
	UFOP_CONTINUENZBIT = 91; //0x5b
	UFOP_IFNZBIT = 92; //0x5c
	UFOP_SWITCH = 93; //0x5d
	UFOP_CASE = 94; //0x5e
	UFOP_DEFAULT = 95; //0x5f
	UFOP_ENDSWITCH = 96; //0x60
	UFOP_NOP = 97; //0x61
	UFOP_MOV = 98; //0x62
	UFOP_MOVA_TRC = 99; //0x63
	UFOP_MOVA_RNE = 100; //0x64
	UFOP_MOVA_INT = 101; //0x65
	UFOP_EXPP = 102; //0x66
	UFOP_LOGP = 103; //0x67
	UFOP_DOT4_CP = 104; //0x68
	UFOP_MUL2 = 105; //0x69
	UFOP_DIV2 = 106; //0x6a
	UFOP_MAXIMUM = 107; //0x6b
}

typedef enum tagUF_OPCODE UF_OPCODE

enum tagUNIFLEX_SRCMOD {
	UFREG_SMOD_NONE = 0; //0x0
	UFREG_SMOD_COMPLEMENT = 1; //0x1
	UFREG_SMOD_SIGNED = 2; //0x2
	UFREG_SMOD_BIAS = 3; //0x3
	UFREG_SMOD_TIMES2 = 4; //0x4
}

enum tagUNIFLEX_DMODSAT {
	UFREG_DMOD_SATNONE = 0; //0x0
	UFREG_DMOD_SATZEROONE = 1; //0x1
	UFREG_DMOD_SATNEGONEONE = 2; //0x2
	UFREG_DMOD_SATZEROMAX = 3; //0x3
}

enum tagUNIFLEX_DMODSCALE {
	UFREG_DMOD_SCALEMUL1 = 0; //0x0
	UFREG_DMOD_SCALEMUL2 = 1; //0x1
	UFREG_DMOD_SCALEMUL4 = 2; //0x2
	UFREG_DMOD_SCALEMUL8 = 3; //0x3
	UFREG_DMOD_SCALEDIV2 = 7; //0x7
	UFREG_DMOD_SCALEDIV4 = 6; //0x6
	UFREG_DMOD_SCALEDIV8 = 5; //0x5
	UFREG_DMOD_SCALEDIV16 = 4; //0x4
}

enum tagUF_REGTYPE {
	UFREG_TYPE_TEMP = 0; //0x0
	UFREG_TYPE_COL = 1; //0x1
	UFREG_TYPE_TEXCOORD = 2; //0x2
	UFREG_TYPE_CONST = 3; //0x3
	UFREG_TYPE_TEX = 4; //0x4
	UFREG_TYPE_HW_CONST = 5; //0x5
	UFREG_TYPE_PSOUTPUT = 6; //0x6
	UFREG_TYPE_ICONST = 7; //0x7
	UFREG_TYPE_BCONST = 8; //0x8
	UFREG_TYPE_MISC = 9; //0x9
	UFREG_TYPE_COMPOP = 10; //0xa
	UFREG_TYPE_LABEL = 11; //0xb
	UFREG_TYPE_PREDICATE = 12; //0xc
	UFREG_TYPE_TEXCOORDP = 13; //0xd
	UFREG_TYPE_TEXCOORDPIFTC = 14; //0xe
	UFREG_TYPE_VSINPUT = 15; //0xf
	UFREG_TYPE_VSOUTPUT = 16; //0x10
	UFREG_TYPE_ADDRESS = 17; //0x11
	UFREG_TYPE_INDEXABLETEMP = 19; //0x13
	UFREG_TYPE_CLIPPLANE = 20; //0x14
	UFREG_TYPE_IMMEDIATE = 21; //0x15
	UFREG_TYPE_MAXIMUM = 22; //0x16
}

typedef enum tagUF_REGTYPE UF_REGTYPE

enum tagUFREG_COMPOP {
	UFREG_COMPOP_GT = 1; //0x1
	UFREG_COMPOP_EQ = 2; //0x2
	UFREG_COMPOP_GE = 3; //0x3
	UFREG_COMPOP_LT = 4; //0x4
	UFREG_COMPOP_NE = 5; //0x5
	UFREG_COMPOP_LE = 6; //0x6
}

typedef enum tagUFREG_COMPOP UFREG_COMPOP

enum tagUF_HWCONST {
	HW_CONST_0 = 0; //0x0
	HW_CONST_1 = 1; //0x1
	HW_CONST_HALF = 2; //0x2
	HW_CONST_2 = 3; //0x3
}

enum tagUF_MISC {
	UF_MISC_POSITION = 0; //0x0
	UF_MISC_FACETYPE = 1; //0x1
	UF_MISC_FACETYPEBIT = 2; //0x2
	UF_MISC_FOG = 255; //0xff
}

struct _UNIFLEX_INDEXABLE_TEMP_SIZE {
	IMG_UINT32 uTag // @0
	IMG_UINT32 uSize // @4
}

typedef struct _UNIFLEX_INDEXABLE_TEMP_SIZE* PUNIFLEX_INDEXABLE_TEMP_SIZE

struct _UNIFLEX_CONSTS_RANGE {
	IMG_UINT32 uRangeStart // @0
	IMG_UINT32 uRangeEnd // @4
}

typedef struct _UNIFLEX_CONSTS_RANGE* PUNIFLEX_CONSTS_RANGE

struct _UNIFLEX_CONSTS_BUFF_RANGES {
	IMG_UINT32 uConstRangesCount // @0
	PUNIFLEX_CONSTS_RANGE psRanges // @4
}

typedef struct _UNIFLEX_CONSTS_BUFF_RANGES UNIFLEX_CONSTS_BUFF_RANGES

struct _UNIFLEX_PROGRAM_PARAMETERS {
	IMG_UINT32 uConstantBase // @0
	IMG_UINT32 uScratchBase // @4
	IMG_UINT32 uBooleanConsts // @8
	IMG_UINT32 uIntegerConsts // @c
	IMG_UINT32 uTextureState // @10
	IMG_UINT32 uInRegisterConstantOffset // @14
	IMG_UINT32 uInRegisterConstantLimit // @18
	UNIFLEX_CONSTS_BUFF_RANGES[18] psConstsBuffRanges // @1c
	IMG_UINT32 uIndexableTempBase // @ac
	IMG_UINT32 uIndexableTempArrayCount // @b0
	PUNIFLEX_INDEXABLE_TEMP_SIZE psIndexableTempArraySizes // @b4
	IMG_UINT32 uU24ScaleConstantNum // @b8
	IMG_UINT32 uPackDestType // @bc
	IMG_UINT32 uPackPrecision // @c0
	IMG_UINT32 uFeedbackInstCount // @c4
	IMG_UINT32 uExtraPARegisters // @c8
	IMG_UINT32 uNumAvailableTemporaries // @cc
	IMG_UINT32 uCentroidMask // @d0
	IMG_UINT32[4] puOutputSaturate // @d4
	SGX_CORE_INFO sTarget // @e4
	IMG_UINT32[2] puValidVSOutputs // @ec
	IMG_UINT32 uTextureStateConstOffset // @f4
	IMG_UINT32 uValidPSOutputs // @f8
	IMG_UINT32[18] puRelativeConstantMax // @fc
	IMG_UINT32 uVSPointSizeOutputNum // @144
}

typedef struct _UNIFLEX_PROGRAM_PARAMETERS* PUNIFLEX_PROGRAM_PARAMETERS

enum tagUSC_CHANNELFORM {
	USC_CHANNELFORM_INVALID = 0; //0x0
	USC_CHANNELFORM_U8 = 1; //0x1
	USC_CHANNELFORM_S8 = 2; //0x2
	USC_CHANNELFORM_U16 = 3; //0x3
	USC_CHANNELFORM_S16 = 4; //0x4
	USC_CHANNELFORM_F16 = 5; //0x5
	USC_CHANNELFORM_F32 = 6; //0x6
	USC_CHANNELFORM_ZERO = 7; //0x7
	USC_CHANNELFORM_ONE = 8; //0x8
	USC_CHANNELFORM_U24 = 9; //0x9
	USC_CHANNELFORM_U8_UN = 10; //0xa
	USC_CHANNELFORM_C10 = 11; //0xb
}

typedef enum tagUSC_CHANNELFORM USC_CHANNELFORM

struct _UNIFLEX_TEXFORM_ {
	USC_CHANNELFORM[4] peChannelForm // @0
	IMG_UINT32 uSwizzle // @10
	IMG_BOOL bTwoResult // @14
	IMG_UINT32 uChunkSize // @18
	IMG_UINT32 uCSCConst // @1c
	IMG_BOOL bUsePCF // @20
	IMG_BOOL bTFSwapRedAndBlue // @24
}

typedef struct _UNIFLEX_TEXFORM_* PUNIFLEX_TEXFORM

enum tagUFREG_RELATIVEINDEX {
	UFREG_RELATIVEINDEX_NONE = 0; //0x0
	UFREG_RELATIVEINDEX_A0X = 1; //0x1
	UFREG_RELATIVEINDEX_A0Y = 2; //0x2
	UFREG_RELATIVEINDEX_A0Z = 3; //0x3
	UFREG_RELATIVEINDEX_A0W = 4; //0x4
	UFREG_RELATIVEINDEX_AL = 5; //0x5
	UFREG_RELATIVEINDEX_TEMP_REG = 6; //0x6
}

typedef enum tagUFREG_RELATIVEINDEX UFREG_RELATIVEINDEX

enum agUF_REGFORMAT {
	UF_REGFORMAT_F32 = 0; //0x0
	UF_REGFORMAT_F16 = 1; //0x1
	UF_REGFORMAT_C10 = 2; //0x2
	UF_REGFORMAT_U8 = 3; //0x3
	UF_REGFORMAT_I32 = 4; //0x4
	UF_REGFORMAT_U32 = 5; //0x5
}

typedef enum agUF_REGFORMAT UF_REGFORMAT

struct _UF_REGISTER_ {
	IMG_UINT32 uNum // @0
	UF_REGTYPE eType // @4
	UF_REGFORMAT eFormat // @8
		union {
		IMG_UINT16 uSwiz
		IMG_BYTE byMask
	} u // @c
	IMG_BYTE byMod // @e
	UFREG_RELATIVEINDEX eRelativeIndex // @10
	UF_REGTYPE eRelativeType // @14
	IMG_UINT32 uRelativeNum // @18
	IMG_BYTE byRelativeChan // @1c
	IMG_UINT32 uArrayTag // @20
	IMG_UINT32 uAddressAlignment // @24
}

typedef struct _UF_REGISTER_ UF_REGISTER

typedef struct _UF_REGISTER_* PUF_REGISTER

struct _UNIFLEX_INST_ {
	UF_OPCODE eOpCode // @0
	UF_REGISTER sDest // @4
	UF_REGISTER sDest2 // @2c
	UF_REGISTER[4] asSrc // @54
	IMG_UINT32 uPredicate // @f4
	struct _UNIFLEX_INST_* psILink // @f8
	struct _UNIFLEX_INST_* psBLink // @fc
}

typedef struct _UNIFLEX_INST_* PUNIFLEX_INST

struct _UNIFLEX_CONSTDEF_ {
	IMG_UINT32 uCount // @0
	IMG_PUINT32 puConstStaticFlags // @4
	IMG_PFLOAT pfConst // @8
}

typedef struct _UNIFLEX_CONSTDEF_* PUNIFLEX_CONSTDEF

enum tagUNIFLEX_TEXTURE_COORDINATE {
	UNIFLEX_TEXTURE_COORDINATE_0 = 0; //0x0
	UNIFLEX_TEXTURE_COORDINATE_1 = 1; //0x1
	UNIFLEX_TEXTURE_COORDINATE_2 = 2; //0x2
	UNIFLEX_TEXTURE_COORDINATE_3 = 3; //0x3
	UNIFLEX_TEXTURE_COORDINATE_4 = 4; //0x4
	UNIFLEX_TEXTURE_COORDINATE_5 = 5; //0x5
	UNIFLEX_TEXTURE_COORDINATE_6 = 6; //0x6
	UNIFLEX_TEXTURE_COORDINATE_7 = 7; //0x7
	UNIFLEX_TEXTURE_COORDINATE_8 = 8; //0x8
	UNIFLEX_TEXTURE_COORDINATE_9 = 9; //0x9
	UNIFLEX_TEXTURE_COORDINATE_V0 = 10; //0xa
	UNIFLEX_TEXTURE_COORDINATE_V1 = 11; //0xb
	UNIFLEX_TEXTURE_COORDINATE_FOG = 12; //0xc
	UNIFLEX_TEXTURE_COORDINATE_POSITION = 13; //0xd
}

typedef enum tagUNIFLEX_TEXTURE_COORDINATE UNIFLEX_TEXTURE_COORDINATE

enum tagUNIFLEX_TEXLOAD_FORMAT {
	UNIFLEX_TEXLOAD_FORMAT_F32 = 0; //0x0
	UNIFLEX_TEXLOAD_FORMAT_F16 = 1; //0x1
	UNIFLEX_TEXLOAD_FORMAT_C10 = 2; //0x2
	UNIFLEX_TEXLOAD_FORMAT_U8 = 3; //0x3
}

typedef enum tagUNIFLEX_TEXLOAD_FORMAT UNIFLEX_TEXLOAD_FORMAT

struct tagUNIFLEX_TEXTURE_LOAD {
	IMG_UINT32 uTexture // @0
	IMG_UINT32 uChunk // @4
	UNIFLEX_TEXTURE_COORDINATE eCoordinate // @8
	IMG_UINT32 uCoordinateDimension // @c
	IMG_BOOL bProjected // @10
	UNIFLEX_TEXLOAD_FORMAT eFormat // @14
	IMG_BOOL bCentroid // @18
	IMG_UINT32 uNumAttributes // @1c
}

typedef struct tagUNIFLEX_TEXTURE_LOAD* PUNIFLEX_TEXTURE_LOAD

enum tagUNIFLEX_TEXTURE_UNPACK_FORMAT {
	UNIFLEX_TEXTURE_UNPACK_FORMAT_NATIVE = 0; //0x0
	UNIFLEX_TEXTURE_UNPACK_FORMAT_C10 = 1; //0x1
	UNIFLEX_TEXTURE_UNPACK_FORMAT_F16 = 2; //0x2
	UNIFLEX_TEXTURE_UNPACK_FORMAT_F32 = 3; //0x3
}

typedef enum tagUNIFLEX_TEXTURE_UNPACK_FORMAT UNIFLEX_TEXTURE_UNPACK_FORMAT

struct tagUNIFLEX_TEXTURE_UNPACK {
	UNIFLEX_TEXTURE_UNPACK_FORMAT eFormat // @0
	IMG_BOOL bNormalise // @4
}

typedef struct tagUNIFLEX_TEXTURE_UNPACK UNIFLEX_TEXTURE_UNPACK

enum tagUNIFLEX_CONST_FORMAT {
	UNIFLEX_CONST_FORMAT_F32 = 0; //0x0
	UNIFLEX_CONST_FORMAT_F16 = 1; //0x1
	UNIFLEX_CONST_FORMAT_C10 = 2; //0x2
	UNIFLEX_CONST_FORMAT_STATIC = 3; //0x3
	UNIFLEX_CONST_FORMAT_CONSTS_BUFFER_BASE = 4; //0x4
}

typedef enum tagUNIFLEX_CONST_FORMAT UNIFLEX_CONST_FORMAT

enum undefined {
	USC_METRICS_INTERMEDIATE_CODE_GENERATION = 0; //0x0
	USC_METRICS_VALUE_NUMBERING = 1; //0x1
	USC_METRICS_ASSIGN_INDEX_REGISTERS = 2; //0x2
	USC_METRICS_FLATTEN_CONDITIONALS_AND_ELIMINATE_MOVES = 3; //0x3
	USC_METRICS_INTEGER_OPTIMIZATIONS = 4; //0x4
	USC_METRICS_MERGE_IDENTICAL_INSTRUCTIONS = 5; //0x5
	USC_METRICS_INSTRUCTION_SELECTION = 6; //0x6
	USC_METRICS_REGISTER_ALLOCATION = 8; //0x8
	USC_METRICS_C10_REGISTER_ALLOCATION = 9; //0x9
	USC_METRICS_FINALISE_SHADER = 10; //0xa
	USC_METRICS_CUSTOM_TIMER_A = 11; //0xb
	USC_METRICS_CUSTOM_TIMER_B = 12; //0xc
	USC_METRICS_CUSTOM_TIMER_C = 13; //0xd
	USC_METRICS_LAST = 14; //0xe
}

typedef enum undefined USC_METRICS

typedef IMG_PVOID* USC_ALLOCFN

typedef void* USC_FREEFN

typedef void* USC_PRINTFN

typedef void* USC_PDUMPFN

void

typedef void* USC_STARTFN

void

typedef void* USC_FINISHFN

typedef struct {
	IMG_UINT32 uNumDests // @0
	IMG_UINT32 uNumSrcArgs // @4
	IMG_PCHAR pchName // @8
} INPUT_INST_DESC

struct _USC_MEMO_ {
	IMG_PVOID pvData // @0
}

typedef struct _USC_MEMO_ USC_MEMO

typedef struct _USC_MEMO_* USC_PMEMO

struct _USC_CHUNK_ {
	IMG_UINT32 uIndex // @0
	IMG_PVOID* pvArray // @4
	struct _USC_CHUNK_* psPrev // @8
	struct _USC_CHUNK_* psNext // @c
}

typedef struct _USC_CHUNK_* USC_PCHUNK

struct _USC_ARRAY_ {
	IMG_UINT32 uProps // @0
	IMG_UINT32 uChunk // @4
	IMG_UINT32 uSize // @8
	IMG_PVOID pvDefault // @c
	USC_PCHUNK psFirst // @10
	USC_MEMO sMemo // @14
}

typedef struct _USC_ARRAY_* USC_PARRAY

struct _USC_VECTOR_ {
	IMG_UINT32 uHeader // @0
	IMG_UINT32 uChunk // @4
	USC_PCHUNK psFirst // @8
	USC_MEMO sMemo // @c
}

typedef struct _USC_VECTOR_ USC_VECTOR

typedef struct _USC_VECTOR_* USC_PVECTOR

enum _USC_VECTOR_PROP_ {
	USC_VECTOR_DEF = 0; //0x0
	USC_VECTOR_PROP_NUM = 1; //0x1
}

typedef enum _USC_VECTOR_PROP_ USC_VECTOR_PROP

enum _USC_VECTOR_OP_ {
	USC_VEC_NOT = 0; //0x0
	USC_VEC_AND = 1; //0x1
	USC_VEC_OR = 2; //0x2
	USC_VEC_ADD = 3; //0x3
	USC_VEC_SUB = 4; //0x4
	USC_VEC_EQ = 5; //0x5
	USC_VEC_DISJ = 6; //0x6
}

typedef enum _USC_VECTOR_OP_ USC_VECTOR_OP

enum _USC_GRAPH_TYPE_ {
	GRAPH_NULL = 0; //0x0
	GRAPH_PLAIN = 2; //0x2
	GRAPH_SYM = 4; //0x4
	GRAPH_REFL = 8; //0x8
}

typedef enum _USC_GRAPH_TYPE_ USC_GRAPH_TYPE

struct _USC_GRAPH_ {
	IMG_UINT32 uChunk // @0
	USC_GRAPH_TYPE eType // @4
	IMG_PVOID pvDefault // @8
	USC_PARRAY psArray // @c
}

typedef struct _USC_GRAPH_ USC_GRAPH

typedef struct _USC_GRAPH_* USC_PGRAPH

enum _USC_MATRIX_TYPE_ {
	MATRIX_PLAIN = 0; //0x0
	MATRIX_SYM = 2; //0x2
}

typedef enum _USC_MATRIX_TYPE_ USC_MATRIX_TYPE

typedef USC_GRAPH* USC_PMATRIX

typedef struct {
	USC_VECTOR sPredicate // @0
	USC_VECTOR sPrimAttr // @10
	USC_VECTOR sTemp // @20
	USC_VECTOR sOutput // @30
	IMG_UINT32[1] puFpInternal // @40
	IMG_UINT32[1] puIndexReg // @44
} REGISTER_LIVESET

typedef struct {
	USC_VECTOR sPredicate // @0
	USC_VECTOR sPrimAttr // @10
	USC_VECTOR sTemp // @20
	USC_VECTOR sOutput // @30
	IMG_UINT32[1] puFpInternal // @40
	IMG_UINT32[1] puIndexReg // @44
}* PREGISTER_LIVESET

struct _INST_DESC {
	IMG_PCHAR pszName // @0
	IMG_UINT32 uFlags // @4
	IMG_UINT32 uArgumentCount // @8
	IMG_BOOL bHasDest // @c
	IMG_BOOL bCanRepeat // @10
	IMG_UINT32 uMaxRepeatCount // @14
	IMG_BOOL bCanUseRepeatMask // @18
	IMG_BOOL bDestMaskable // @1c
	IMG_UINT32[3] puMoeArgRemap // @20
	IMG_BOOL bCanPredicate // @2c
	IMG_UINT32 uUseasmOpcode // @30
}

typedef struct _INST_DESC INST_DESC

enum _IOPCODE {
	IMOV = 1; //0x1
	IFMOV = 2; //0x2
	IFADD = 3; //0x3
	IFSUB = 4; //0x4
	IFMUL = 5; //0x5
	IFMAD = 6; //0x6
	IFADM = 7; //0x7
	IFMSA = 8; //0x8
	IFDP = 9; //0x9
	IFDDP = 10; //0xa
	IFRCP = 11; //0xb
	IFRSQ = 12; //0xc
	IFLOG = 13; //0xd
	IFEXP = 14; //0xe
	IFDSX = 15; //0xf
	IFDSY = 16; //0x10
	IFMIN = 17; //0x11
	IFMAX = 18; //0x12
	IFSUBFLR = 19; //0x13
	IEFO = 20; //0x14
	ILOADCONST = 21; //0x15
	ILDAB = 22; //0x16
	ISTAB = 23; //0x17
	ILDLB = 24; //0x18
	ISTLB = 25; //0x19
	ILDAW = 26; //0x1a
	ISTAW = 27; //0x1b
	ILDLW = 28; //0x1c
	ISTLW = 29; //0x1d
	ILDAD = 30; //0x1e
	ISTAD = 31; //0x1f
	ILDLD = 32; //0x20
	ISTLD = 33; //0x21
	IELDD = 34; //0x22
	IELDQ = 35; //0x23
	IIDF = 36; //0x24
	IWDF = 37; //0x25
	IIMA16 = 38; //0x26
	IIMAE = 39; //0x27
	IUNPCKS16S8 = 40; //0x28
	IUNPCKU16U8 = 41; //0x29
	IUNPCKU16U16 = 42; //0x2a
	IUNPCKU16F16 = 43; //0x2b
	IPCKU16F32 = 44; //0x2c
	IPCKS16F32 = 45; //0x2d
	IPCKU8U8 = 46; //0x2e
	IPCKU8F16 = 47; //0x2f
	IPCKU8F32 = 48; //0x30
	IPCKC10C10 = 49; //0x31
	IPCKC10F32 = 50; //0x32
	IUNPCKF16C10 = 51; //0x33
	IUNPCKF16O8 = 52; //0x34
	IUNPCKF16U8 = 53; //0x35
	IUNPCKF16S8 = 54; //0x36
	IUNPCKF16U16 = 55; //0x37
	IUNPCKF16S16 = 56; //0x38
	IPCKF16F16 = 57; //0x39
	IPCKF16F32 = 58; //0x3a
	IUNPCKF32C10 = 59; //0x3b
	IUNPCKF32O8 = 60; //0x3c
	IUNPCKF32U8 = 61; //0x3d
	IUNPCKF32S8 = 62; //0x3e
	IUNPCKF32U16 = 63; //0x3f
	IUNPCKF32S16 = 64; //0x40
	IUNPCKF32F16 = 65; //0x41
	IPCKC10F16 = 66; //0x42
	ICOMBC10 = 67; //0x43
	ISMP = 68; //0x44
	ISMPBIAS = 69; //0x45
	ISMPREPLACE = 70; //0x46
	ISMPGRAD = 71; //0x47
	ISHL = 72; //0x48
	ISHR = 73; //0x49
	IASR = 74; //0x4a
	IAND = 75; //0x4b
	IXOR = 76; //0x4c
	IOR = 77; //0x4d
	IRLP = 78; //0x4e
	IBR = 79; //0x4f
	ICALL = 80; //0x50
	ILABEL = 81; //0x51
	ILAPC = 82; //0x52
	ISETL = 83; //0x53
	ISAVL = 84; //0x54
	IDRVPADDING = 85; //0x55
	ISMLSI = 86; //0x56
	ISMR = 87; //0x57
	ISETFC = 88; //0x58
	ISMBO = 89; //0x59
	INOP = 90; //0x5a
	ISOPWM = 91; //0x5b
	ISOP2 = 92; //0x5c
	ISOP3 = 93; //0x5d
	ILRP1 = 94; //0x5e
	IFPMA = 95; //0x5f
	IFPADD8 = 96; //0x60
	IFPSUB8 = 97; //0x61
	IFDPC = 98; //0x62
	IU8DOT3 = 99; //0x63
	IU8DOT4 = 100; //0x64
	IU8DOT3OFF = 101; //0x65
	IU8DOT4OFF = 102; //0x66
	IU16DOT3 = 103; //0x67
	IU16DOT4 = 104; //0x68
	IU16DOT3OFF = 105; //0x69
	IU16DOT4OFF = 106; //0x6a
	IMOVC = 107; //0x6b
	IMOVC_C10 = 108; //0x6c
	IMOVC_I32 = 109; //0x6d
	IFMOV16 = 110; //0x6e
	IFADD16 = 111; //0x6f
	IFMUL16 = 112; //0x70
	IFMAD16 = 113; //0x71
	ILDARRF32 = 114; //0x72
	ILDARRF16 = 115; //0x73
	ILDARRC10 = 116; //0x74
	ISTARRF32 = 117; //0x75
	ISTARRF16 = 118; //0x76
	ISTARRC10 = 119; //0x77
	ISMP_USP = 120; //0x78
	ISMPBIAS_USP = 121; //0x79
	ISMPREPLACE_USP = 122; //0x7a
	ISMPGRAD_USP = 123; //0x7b
	ISMP_USP_NDR = 124; //0x7c
	INVALID_MAXARG = 125; //0x7d
	IOPCODE_MAX = 126; //0x7e
}

typedef enum _IOPCODE IOPCODE

enum undefined {
	MOE_INCREMENT = 0; //0x0
	MOE_SWIZZLE = 1; //0x1
}

struct _MOE_DATA {
	enum undefined eOperandMode // @0
		union {
		IMG_INT32 iIncrement
		IMG_UINT32 uSwizzle
	} u // @4
}

typedef struct _MOE_DATA MOE_DATA

enum _ISSUE_TYPE {
	SINGLE_INST = 0; //0x0
	PRIMARY_INST = 1; //0x1
	SECONDARY_INST = 2; //0x2
	SCRATCH_INST = 3; //0x3
}

typedef enum _ISSUE_TYPE ISSUE_TYPE

struct _ARG {
	IMG_UINT32 uType // @0
	IMG_UINT32 uNumber // @4
	IMG_UINT32 uIndex // @8
	IMG_UINT32 uComponent // @c
	IMG_BOOL bNegate // @10
	IMG_BOOL bAbs // @14
	IMG_BOOL bKilled // @18
	IMG_UINT32 uImmTempType // @1c
	IMG_UINT32 uImmTempNum // @20
	IMG_UINT32 uArrayOffset // @24
	IMG_UINT32 uNumberPreMoe // @28
	UF_REGFORMAT eFmt // @2c
	IMG_UINT32 uF16Swizzle // @30
}

typedef struct _ARG ARG

typedef struct _ARG* PARG

enum _EFO_SRC {
	I0 = 0; //0x0
	I1 = 1; //0x1
	A0 = 2; //0x2
	A1 = 3; //0x3
	M0 = 4; //0x4
	M1 = 5; //0x5
	SRC0 = 6; //0x6
	SRC1 = 7; //0x7
	SRC2 = 8; //0x8
}

typedef enum _EFO_SRC EFO_SRC

struct _EFO_PARAMETERS {
	EFO_SRC eDSrc // @0
	EFO_SRC eI0Src // @4
	EFO_SRC eI1Src // @8
	EFO_SRC eA0Src0 // @c
	EFO_SRC eA0Src1 // @10
	EFO_SRC eA1Src0 // @14
	EFO_SRC eA1Src1 // @18
	EFO_SRC eM0Src0 // @1c
	EFO_SRC eM0Src1 // @20
	EFO_SRC eM1Src0 // @24
	EFO_SRC eM1Src1 // @28
	IMG_BOOL bWriteI0 // @2c
	IMG_BOOL bWriteI1 // @30
	IMG_BOOL bA0RightNeg // @34
	IMG_BOOL bA1LeftNeg // @38
	IMG_BOOL bIgnoreDest // @3c
	IMG_BOOL bM0Used // @40
	IMG_BOOL bM1Used // @44
	IMG_BOOL bA0Used // @48
	IMG_BOOL bA1Used // @4c
	IMG_BOOL bI0Used // @50
	IMG_BOOL bI1Used // @54
	IMG_BOOL bI0Killed // @58
	IMG_BOOL bI1Killed // @5c
	IMG_BOOL bI0DestValid // @60
	IMG_BOOL bI1DestValid // @64
	ARG sI0Dest // @68
	ARG sI1Dest // @9c
}

typedef struct _EFO_PARAMETERS* PEFO_PARAMETERS

struct _SOP2_PARAMS {
	IMG_UINT32 uCSel1 // @0
	IMG_UINT32 uCSel2 // @4
	IMG_BOOL bComplementCSel1 // @8
	IMG_BOOL bComplementCSel2 // @c
	IMG_BOOL bComplementCSrc1 // @10
	IMG_UINT32 uCOp // @14
	IMG_UINT32 uASel1 // @18
	IMG_UINT32 uASel2 // @1c
	IMG_BOOL bComplementASel1 // @20
	IMG_BOOL bComplementASel2 // @24
	IMG_UINT32 uAOp // @28
	IMG_UINT32 bComplementASrc1 // @2c
}

typedef struct _SOP2_PARAMS* PSOP2_PARAMS

struct _SOP3_PARAMS {
	IMG_UINT32 uCSel1 // @0
	IMG_UINT32 uCSel2 // @4
	IMG_BOOL bComplementCSel1 // @8
	IMG_BOOL bComplementCSel2 // @c
	IMG_BOOL bNegateCResult // @10
	IMG_UINT32 uCOp // @14
	IMG_UINT32 uCoissueOp // @18
	IMG_UINT32 uASel1 // @1c
	IMG_UINT32 uASel2 // @20
	IMG_BOOL bComplementASel1 // @24
	IMG_BOOL bComplementASel2 // @28
	IMG_BOOL bNegateAResult // @2c
	IMG_UINT32 uAOp // @30
}

typedef struct _SOP3_PARAMS* PSOP3_PARAMS

struct _LRP1_PARAMS {
	IMG_UINT32 uCSel10 // @0
	IMG_BOOL bComplementCSel10 // @4
	IMG_UINT32 uCSel11 // @8
	IMG_BOOL bComplementCSel11 // @c
	IMG_UINT32 uCS // @10
	IMG_UINT32 uASel1 // @14
	IMG_BOOL bComplementASel1 // @18
	IMG_UINT32 uASel2 // @1c
	IMG_BOOL bComplementASel2 // @20
	IMG_UINT32 uAOp // @24
}

typedef struct _LRP1_PARAMS* PLRP1_PARAMS

struct _SMP_USP_PARAMS_ {
	IMG_BOOL bProjected // @0
	IMG_BOOL bCentroid // @4
	IMG_BOOL bNonDependent // @8
	IMG_UINT32 uNDRTexCoord // @c
	IMG_UINT32 uChanMask // @10
	IMG_UINT32 uChanSwizzle // @14
	IMG_UINT32 uCoordDim // @18
	IMG_UINT32[4] auDestMask // @1c
	IMG_UINT32[4] auLiveChansInDest // @2c
	UF_REGFORMAT eTexPrecision // @3c
}

typedef struct _SMP_USP_PARAMS_ SMP_USP_PARAMS

typedef struct {
	IMG_BOOL bIMA32High // @0
	IMG_BOOL bIMA32Carry // @4
	IMG_UINT32 uIRegDestNum // @8
	IMG_BOOL bSigned // @c
}* PIMA32_PARAMS

typedef struct {
	IMG_UINT32 uDot34Scale // @0
} DOT34_PARAMS

typedef struct {
	IMG_UINT32 uClipplane // @0
} DPC_PARAMS

typedef struct {
	IMG_UINT32 uCoordSize // @0
	IMG_UINT32 uGradSize // @4
	IMG_UINT32 uTextureStage // @8
	IMG_BOOL bUsesPCF // @c
	IMG_UINT32 uDimensionality // @10
}* PSMP_PARAMS

typedef struct {
	IMG_UINT32 uCSel0 // @0
	IMG_UINT32 uCSel1 // @4
	IMG_UINT32 uCSel2 // @8
	IMG_UINT32 uASel0 // @c
	IMG_BOOL bComplementCSel0 // @10
	IMG_BOOL bComplementCSel1 // @14
	IMG_BOOL bComplementCSel2 // @18
	IMG_BOOL bComplementASel0 // @1c
	IMG_BOOL bComplementASel1 // @20
	IMG_BOOL bComplementASel2 // @24
}* PFPMA_PARAMS

typedef struct {
	IMG_UINT32 uSel1 // @0
	IMG_UINT32 uSel2 // @4
	IMG_BOOL bComplementSel1 // @8
	IMG_BOOL bComplementSel2 // @c
	IMG_UINT32 uCop // @10
	IMG_UINT32 uAop // @14
}* PSOPWM_PARAMS

typedef struct {
	IMG_UINT32 uIRegDestNum // @0
} DDP_PARAMS

typedef struct {
	IMG_BOOL bEnableRangeCheck // @0
} LD_PARAMS

typedef struct {
	IMG_BOOL bSrcModNegate // @0
	IMG_BOOL bSrcModAbsolute // @4
} NRM_PARAMS

typedef struct {
	IMG_BOOL bRelativeAddress // @0
	IMG_BOOL bStaticConst // @4
	IMG_UINT32 uStaticConstValue // @8
} LOADCONST_PARAMS

typedef struct {
	IMG_UINT32 uSrc2Type // @0
	IMG_BOOL bSigned // @4
	IMG_BOOL bCarryIn // @8
	IMG_BOOL bCarryOut // @c
	IMG_UINT32 uCarryIReg // @10
	IMG_BOOL bCarryInKilled // @14
} IMAE_PARAMS

struct _INST {
	IOPCODE eOpcode // @0
	IMG_UINT32[1] auFlag // @4
	IMG_UINT32 uPredSrc // @8
	ARG[4] asDest // @c
	IMG_UINT32 uPredDest // @dc
	PARG asArg // @e0
	IMG_UINT32 uTest // @e4
	IMG_UINT32 uRepeat // @e8
	IMG_UINT32 uMask // @ec
	PEFO_PARAMETERS psEfo // @f0
	PSOPWM_PARAMS psSopWm // @f4
	PSOP2_PARAMS psSop2 // @f8
	PSOP3_PARAMS psSop3 // @fc
	PLRP1_PARAMS psLrp1 // @100
	PFPMA_PARAMS psFpma // @104
	PIMA32_PARAMS psIma32 // @108
	PSMP_PARAMS psSmp // @10c
	DOT34_PARAMS sDot34 // @110
	DPC_PARAMS sDpc // @114
	DDP_PARAMS sDdp // @118
	LD_PARAMS sLd // @11c
	NRM_PARAMS sNrm // @120
	LOADCONST_PARAMS sLoadConst // @128
	IMAE_PARAMS sImae // @134
	IMG_UINT32 uDestCount // @14c
	IMG_UINT32 uDestMask // @150
	IMG_UINT32 uLiveChansInDest // @154
	PEFO_STAGEDATA psEfoData // @158
	IMG_UINT32 uId // @15c
	struct _INST* psGroupNext // @160
	PREPEAT_GROUP psRepeatGroup // @164
	IMG_UINT32[1] puSrcInc // @168
	ISSUE_TYPE eIssueType // @16c
	struct _INST* psCoInst // @170
	IMG_UINT32 uIRegUse // @174
	IMG_UINT32 uShaderResultHWOperands // @178
	SMP_USP_PARAMS sUSPSample // @17c
	struct _INST* psPrev // @1bc
	struct _INST* psNext // @1c0
}

typedef struct {
	IMG_UINT32 uEfoGroupId // @0
	struct _INST* psEfoGroupPrevWriter // @4
	struct _INST* psEfoGroupNextWriter // @8
	struct _INST* psEfoGroupFirstReader // @c
	struct _INST* psEfoGroupNextReader // @10
	IMG_BOOL bSelfContained // @14
}* PEFO_STAGEDATA

typedef struct {
	IMG_BOOL bDirty // @0
	struct _INST* psPrev // @4
	struct _INST* psNext // @8
}* PREPEAT_GROUP

enum _INST_FLAGS_ {
	INST_NULL = 0; //0x0
	INST_PRED_NEG = 1; //0x1
	INST_PRED_KILLED = 2; //0x2
	INST_TEST = 3; //0x3
	INST_SKIPINV = 4; //0x4
	INST_SYNCSTART = 5; //0x5
	INST_NOSCHED = 6; //0x6
	INST_DISABLEWB = 7; //0x7
	INST_SCALE = 8; //0x8
	INST_ONCEONLY = 9; //0x9
	INST_FETCH = 10; //0xa
	INST_TYPE_PRESERVE = 11; //0xb
	INST_DUMMY_FETCH = 12; //0xc
	INST_SPILL = 13; //0xd
	INST_FORMAT_SELECT = 14; //0xe
	INST_MOE = 15; //0xf
	INST_SINGLE = 16; //0x10
	INST_PRIMARY = 17; //0x11
	INST_SECONDARY = 18; //0x12
	INST_RESERVED = 19; //0x13
	INST_NOEMIT = 20; //0x14
	INST_RGB = 21; //0x15
	INST_ALPHA = 22; //0x16
	INST_FLAGS_NUM = 23; //0x17
}

typedef struct _INST* PINST

struct _CODEBLOCKLIST {
	struct _CODEBLOCK* psHead // @0
	struct _CODEBLOCK* psTail // @4
}

struct _CODEBLOCK {
	IMG_UINT32 uType // @0
	CODEBLOCKLIST sCodeBody // @4
	CODEBLOCKLIST sCodeElse // @c
	CODEBLOCKLIST sCodeLoopTail // @14
	struct _CODEBLOCK* psNext // @1c
	struct _CODEBLOCK* psPrev // @20
	PCODEBLOCKLIST psParent // @24
	REGISTER_LIVESET sRegistersLiveOut // @28
	PREGISTER_LIVESET psLoopRegistersLiveOut // @70
	struct _CODEBLOCK* psTypePrev // @74
	struct _CODEBLOCK* psTypeNext // @78
		union {
			struct {
		IMG_UINT32 uFlags // @0
		IMG_UINT32 uInstCount // @4
		PINST psBody // @8
		PINST psBodyTail // @c
		IMG_BOOL bEfoFmtCtl // @10
		IMG_BOOL bColFmtCtl // @14
		MOE_DATA[4] asMoeIncSwiz // @18
		IMG_UINT32[4] auMoeBaseOffset // @38
	} sBasic
			struct {
		IMG_UINT32 uPredSrc // @0
		IMG_BOOL bPredNegate // @4
		IMG_BOOL bSyncEndAfterMain // @8
		IMG_BOOL bSyncEndAfterElse // @c
		IMG_UINT32 uSyncEndPredSrc // @10
		struct _CODEBLOCK* psCondPrev // @14
		struct _CODEBLOCK* psCondNext // @18
		IMG_BOOL bStatic // @1c
	} sCond
			struct {
		IMG_UINT32 uPredSrc // @0
		IMG_BOOL bPredNegate // @4
		struct _CODEBLOCK* psNestedLoop // @8
		IMG_BOOL bSyncEnd // @c
		IMG_BOOL bStatic // @10
		BREAKTYPE eBreakType // @14
	} sBreak
			struct {
		IMG_UINT32 uPredSrc // @0
		IMG_BOOL bPredNegate // @4
		struct _CODEBLOCK* psNestedLoop // @8
		IMG_BOOL bSyncEnd // @c
		IMG_BOOL bStatic // @10
	} sContinue
			struct {
		IMG_UINT32 uDest // @0
		IMG_UINT32 uPredSrc // @4
		IMG_BOOL bPredNegate // @8
		struct _CODEBLOCK* psCallSiteNext // @c
		IMG_BOOL bSyncEnd // @10
		IMG_BOOL bStatic // @14
	} sCall
			struct {
		IMG_UINT32 uSkipPredSrc // @0
		IMG_BOOL bSkipPredNegate // @4
		IMG_UINT32 uContinuePredSrc // @8
		IMG_BOOL bContinuePredNegate // @c
		IMG_BOOL bHasSync // @10
		IMG_BOOL bSyncEnd // @14
		IMG_BOOL bSyncEndForBreak // @18
		IMG_BOOL bSyncEndForContinue // @1c
		IMG_UINT32 uBreakSyncEndPredSrc // @20
		IMG_UINT32 uContSyncEndPredSrc // @24
		IMG_BOOL bStatic // @28
	} sLoop
			struct {
		IMG_UINT32 uPredSrc // @0
		IMG_BOOL bPredNegate // @4
		IMG_BOOL bMain // @8
	} sExit
			struct {
		IMG_UINT32 uLabel // @0
		IMG_BOOL bHasEarlyExit // @4
		IMG_UINT32 uFuncFlags // @8
		struct _CODEBLOCK* psPrologBlock // @c
		struct _CODEBLOCK* psResetBlock // @10
		struct _CODEBLOCK* psEpilogBlock // @14
		struct _CODEBLOCK* psFuncEnd // @18
	} sFunc
			struct {
		IMG_UINT32 uCaseCount // @0
		PSWITCHCASE psCases // @4
		IMG_UINT32 uDefaultCase // @8
	} sSwitch
	} u // @7c
}

typedef struct _CODEBLOCKLIST CODEBLOCKLIST

typedef struct _CODEBLOCKLIST* PCODEBLOCKLIST

struct _SWITCHCASE {
	CODEBLOCKLIST sCaseBody // @0
	struct _CODEBLOCK* psTestBlock // @8
	IMG_BOOL bJustDefault // @c
	IMG_UINT32 uPredSrc // @10
	IMG_BOOL bPredNegate // @14
}

typedef struct _SWITCHCASE* PSWITCHCASE

enum undefined {
	BREAKTYPE_UNKNOWN = 0; //0x0
	BREAKTYPE_LOOP = 1; //0x1
	BREAKTYPE_SWITCH = 2; //0x2
}

typedef enum undefined BREAKTYPE

typedef struct _CODEBLOCK* PCODEBLOCK

struct _FIXED_TEMPORARY_GROUP {
	IMG_UINT32 uRefCount // @0
	IMG_UINT32 uTempCount // @4
	IMG_PUINT32 puTemps // @8
	IMG_BOOL bFixedNum // @c
	struct _FIXED_TEMPORARY_GROUP* psNext // @10
}

typedef struct _FIXED_TEMPORARY_GROUP* PFIXED_TEMPORARY_GROUP

struct tagINTERMEDIATE_STATE {
	IMG_UINT32 uCompilationStatus // @0
	IMG_UINT32 uFlags // @4
	PUSC_ALLOC_HEADER psAllocationListHead // @8
	USC_PCHUNK[2] apsChunkMem // @c
	IMG_UINT32 uCompilerFlags // @14
	IMG_PUINT32 puTextureDimensions // @18
	PUNIFLEX_CONSTDEF psConstants // @1c
	IMG_UINT32 uProjectedCoordinateMask // @20
	const SGX_CORE_FEATURES* psTargetFeatures // @24
	const SGX_CORE_BUGS* psTargetBugs // @28
	IMG_UINT32 uTexStateSize // @2c
	IMG_UINT32 uGammaStages // @30
	IMG_UINT32 uNrTextureLoads // @34
	PUNIFLEX_TEXTURE_LOAD psTextureLoads // @38
	IMG_UINT32 uMaxLabel // @3c
	IMG_UINT32 uNumLabels // @40
	IMG_PUINT32 auNestSortedLabel // @44
	PLABELDATA psLabelData // @48
	IMG_UINT32 uMaxNesting // @4c
	IMG_UINT32 uNumRegisters // @50
	IMG_UINT32 uNumPredicates // @54
	IMG_UINT32[18] puRemappedConstCount // @58
	USC_PARRAY[18] ppsRemappedConstMap // @a0
	USC_PARRAY[18] ppsRemappedConstFormat // @e8
	IMG_UINT32[18] puSaForBaseOfConstsBuff // @130
	IMG_UINT32 uStaticConstsBuffer // @178
	IMG_UINT32 uTextureStateConstsBuffer // @17c
	IMG_UINT32 uEmitsPresent // @180
	CODEBLOCKLIST sMainFunc // @184
	IMG_UINT32 uD3DLoopIndexMem // @18c
	IMG_UINT32 uD3DLoopIndexReg // @190
	IMG_UINT32 uLastUpdatedDest // @194
	PUNIFLEX_PROGRAM_PARAMETERS psSAOffsets // @198
	IMG_UINT32 uTemporaryRegisterCount // @19c
	IMG_UINT32 uNonDrTextureReadLimit // @1a0
	PUNIFLEX_TEXFORM psTextures // @1a4
	IMG_UINT32 uIterationSize // @1a8
	IMG_UINT32 uPrimaryAttributeRegisterCount // @1ac
	IMG_UINT32 uPARegistersUsed // @1b0
	IMG_UINT32 uInRegisterConstantCount // @1b4
	PINREGISTER_CONST psInRegisterConstantMap // @1b8
	IMG_UINT32 uConstSecAttrCount // @1bc
	IMG_UINT32 uLoadedConstSecAttrCount // @1c0
	IMG_UINT32 uCalculatedConstSecAttrCount // @1c4
	CODEBLOCKLIST sBasicBlockList // @1c8
	CODEBLOCKLIST sFlowControlList // @1d0
	PCODEBLOCK psCondSiteListHead // @1d8
	PCODEBLOCK psCondSiteListTail // @1dc
	PUSC_VEC_ARRAY_DATA* apsTempVecArray // @1e0
	IMG_UINT32 uIndexableTempArraySize // @1e4
	IMG_UINT32 uNumVecArrayRegs // @1e8
	PUSC_VEC_ARRAY_REG* apsVecArrayReg // @1ec
	IMG_UINT32 uNonAnisoTexStages // @1f0
	IMG_UINT32 uPreambleCount // @1f4
	PDGRAPH_STATE psDepState // @1f8
	PPRECOVR_STATE psPrecovrState // @1fc
	IMG_UINT32 uNumPrecovrStates // @200
	IMG_UINT32 uNextPackedRegisterTag // @204
	PFIXED_TEMPORARY_GROUP psFixedTemporaryGroupListHead // @208
	PFIXED_TEMPORARY_GROUP psFixedTemporaryGroupListTail // @20c
	PCODEBLOCK psPreFeedbackBlock // @210
	IMG_UINT32 uPAOutputNum // @214
	IMG_PUINT32 puInstructions // @218
	IMG_PUINT32 puLabels // @21c
	PUSEASM_CONTEXT psUseasmContext // @220
	IMG_UINT32 uNextLabel // @224
	IMG_UINT32 uMainProgInstCount // @228
	IMG_UINT32 uMainProgLabelCount // @22c
	IMG_UINT32 uMainProgStart // @230
	IMG_UINT32 uMainProgFeedbackPhase0End // @234
	PINST psMainProgFeedbackPhase0EndInst // @238
	IMG_UINT32 uMainProgFeedbackPhase1Start // @23c
	IMG_UINT32 uSAProgInstCount // @240
	IMG_UINT32 uSpillAreaSize // @244
	USC_ALLOCFN pfnAlloc // @248
	USC_FREEFN pfnFree // @24c
	USC_PRINTFN pfnPrint // @250
	IMG_PVOID pvPDumpFnDrvParam // @254
	USC_PDUMPFN pfnPDump // @258
	IMG_PVOID pvMetricsFnDrvParam // @25c
	USC_STARTFN pfnStart // @260
	USC_FINISHFN pfnFinish // @264
	IMG_UINT32 uNonPackedPSOutputType // @268
	IMG_UINT32 uNonPackedPSOutputNum // @26c
	IMG_UINT32 uPackedPSOutputType // @270
	IMG_UINT32 uPackedPSOutputNum // @274
	IMG_UINT32 uPackedPSOutputMask // @278
	IMG_UINT32 uDepthOutputNum // @27c
	IMG_UINT32 uTexkillOutputNum // @280
	IMG_UINT32 uVSClipOutputNum // @284
	PCODEBLOCK psSecAttrBlock // @288
	IMG_UINT32 uMaximumVSOutput // @28c
	IMG_UINT32 uColOutputCount // @290
	IMG_UINT32 uInRegisterConstantLimit // @294
	IMG_UINT32 uVSInputPARegCount // @298
	IMG_PUINT32 auVSInputPARegUsage // @29c
	IMG_UINT32 uMemOffsetAdjust // @2a0
	IMG_UINT32[18] puRangeCheckType // @2a4
	IMG_UINT32[18] puRangeCheckNumber // @2ec
	IMG_BOOL bExceptionReturnValid // @334
	jmp_buf sExceptionReturn // @338
	IMG_UINT32 uTextureUnpackFormatSelectedMask // @4c0
	IMG_UINT32 uTextureUnpackFormatReduced // @4c4
	UNIFLEX_TEXTURE_UNPACK[16] asTextureUnpackFormat // @4c8
	IMG_UINT32 uNumDynamicBranches // @548
	IMG_UINT32 uNumOfConstsBuffsAvailable // @54c
	IMG_UINT32[18] puConstsBufferInUse // @550
	IMG_UINT32 uInputTempRegisterCount // @598
	IMG_UINT32 uInputMacroTemp // @59c
}

typedef struct {
	struct tagINTERMEDIATE_STATE* psState // @0
	IMG_UINT32 uBlockInstructionCount // @4
	USC_PARRAY psInstructions // @8
	USC_PARRAY psTempLastWriter // @c
	USC_PARRAY psPALastWriter // @10
	USC_PARRAY psOutputLastWriter // @14
	USC_PARRAY psIRegLastWriter // @18
	IMG_UINT32[2] auIndexLastWriter // @1c
	USC_PARRAY psPredLastWriter // @24
	USC_PARRAY[1] apsRegArrayLastWriter // @28
	USC_PARRAY psMainDep // @2c
	USC_PGRAPH psDepGraph // @30
	USC_PGRAPH psClosedDepGraph // @34
	USC_PARRAY psDepCount // @38
	USC_PARRAY psSatDepCount // @3c
	IMG_UINT32 uAvailInstCount // @40
	IMG_UINT32 uRemovedInstCount // @44
}* PDGRAPH_STATE

typedef struct {
	UF_REGTYPE eType // @0
	IMG_UINT32 uNum // @4
	IMG_UINT32 uMask // @8
	IMG_UINT32 uTag // @c
	IMG_UINT32 uPrecision // @10
	UF_REGFORMAT eFormat // @14
}* PPACKED_OUTPUT

typedef struct {
	PPACKED_OUTPUT[16] apsPackedRegisters // @0
	IMG_UINT32 uNumPackedRegisters // @40
}* PPRECOVR_STATE

struct _USC_VEC_ARRAY_DATA_ {
	IMG_UINT32 uArrayTag // @0
	IMG_UINT32 uSize // @4
	IMG_UINT32 uVecs // @8
	IMG_UINT32 uLoads // @c
	IMG_UINT32 uStores // @10
	UF_REGFORMAT eFmt // @14
	IMG_UINT32 uRegArray // @18
	IMG_BOOL bStatic // @1c
}

typedef struct _USC_VEC_ARRAY_DATA_* PUSC_VEC_ARRAY_DATA

struct _USC_VEC_ARRAY_REG_ {
	IMG_UINT32 uArrayNum // @0
	IMG_UINT32 uBaseReg // @4
	IMG_UINT32 uRegs // @8
}

typedef struct _USC_VEC_ARRAY_REG_* PUSC_VEC_ARRAY_REG

struct _USC_ALLOC_HEADER {
	IMG_UINT32 uSize // @0
	IMG_UINT32 uAllocNum // @4
	struct _USC_ALLOC_HEADER* psPrev // @8
	struct _USC_ALLOC_HEADER* psNext // @c
}

typedef struct _USC_ALLOC_HEADER* PUSC_ALLOC_HEADER

struct _LABELDATA {
	PCODEBLOCK psDest // @0
	IMG_UINT32 uNestingLevel // @4
	PCODEBLOCK psCallSiteListHead // @8
	REGISTER_LIVESET sCallStartRegistersLive // @c
}

typedef struct _LABELDATA* PLABELDATA

struct _INPUT_PROGRAM {
	PUNIFLEX_INST psHead // @0
	PUNIFLEX_INST psTail // @4
}

typedef struct _INPUT_PROGRAM INPUT_PROGRAM

typedef struct _INPUT_PROGRAM* PINPUT_PROGRAM

struct _INREGISTER_CONST {
	IMG_UINT32 uNum // @0
	UNIFLEX_CONST_FORMAT eFormat // @4
	IMG_UINT32 uBuffer // @8
}

typedef struct _INREGISTER_CONST* PINREGISTER_CONST

typedef struct tagINTERMEDIATE_STATE* PINTERMEDIATE_STATE

typedef void* USC_STATE_FREEFN

void

typedef struct {
	IMG_UINT32 uCallNesting // @0
	IMG_BOOL bEarlyExit // @4
	IMG_BOOL bInConditional // @8
	PCODEBLOCK[16] asCallSite // @c
	IMG_UINT32[16] auLabelMap // @4c
	IMG_UINT32 uNumLabels // @8c
} CALLDATA

typedef struct {
	IMG_UINT32 uCallNesting // @0
	IMG_BOOL bEarlyExit // @4
	IMG_BOOL bInConditional // @8
	PCODEBLOCK[16] asCallSite // @c
	IMG_UINT32[16] auLabelMap // @4c
	IMG_UINT32 uNumLabels // @8c
}* PCALLDATA

typedef struct {
	PUNIFLEX_INST psCodeStart // @0
	IMG_UINT32 uGuardCount // @4
	IMG_PUINT32 puGuards // @8
}* PINPUT_SWITCH_CASE

// function
IMG_PVOID* ChunkElem(
	IMG_PVOID* pvArray
	IMG_UINT32 uSize
	IMG_UINT32 uIdx
	)
{
}


// function
IMG_UINT32 SetArraySize(
	IMG_UINT32 uNum
	IMG_UINT32 uSize
	)
{
}


// function
IMG_UINT32 SetVectorSize(
	IMG_UINT32 uNum
	IMG_UINT32 uSize
	)
{
}


// function
IMG_BOOL SetVectorFlag(
	IMG_UINT32 uNum
	USC_VECTOR_PROP eProp
	IMG_BOOL uFlag
	)
{
}


// function
IMG_UINT32 GetBit(
	const IMG_UINT32* auArr
	const IMG_UINT32 uPos
	)
{
}


// function
IMG_BOOL IsBlockEnd(
	UF_REGTYPE eInstType
	)
{
}


// function
IMG_BOOL UFRegIsConst(
	UF_REGISTER* psReg
	)
{
}


// external function
IMG_BOOL IsInputInstFlowControl(
	PUNIFLEX_INST psInst
	)
{
}


// external function
IMG_BOOL IsConditionalStart(
	PUNIFLEX_INST psInst
	)
{
}


// external function
UF_REGFORMAT GetRegisterFormat(
	PINTERMEDIATE_STATE psState
	PUF_REGISTER psSrc
	)
{
}


// function
void CopyInputInst(
	PUNIFLEX_INST psDest
	PUNIFLEX_INST psSrc
	)
{
	IMG_UINT32 uSrc
}


// function
void ApplyAbsoluteModifier(
	PUF_REGISTER psSrc
	)
{
}


// function
IMG_BOOL IsChanAlreadyLoaded(
	IMG_UINT32* puLoadedIndxReg
	IMG_BYTE* pbyLoadedIndxRegChan
	IMG_UINT32 uLoadedChansCount
	IMG_UINT32 uRelativeReg
	IMG_BYTE byRelativeRegChan
	IMG_PUINT32 puAddressChanLoadedIn
	)
{
	IMG_UINT32 uI
}


// external function
void InitInstArg(
	PARG psArg
	)
{
}


// function
void InsertBlockAtListTail(
	PCODEBLOCKLIST psList
	PCODEBLOCK psBlock
	)
{
}


// function
IMG_UINT32 GetArraySize(
	IMG_UINT32 uNum
	)
{
}


// function
IMG_UINT32 GetVectorFlag(
	IMG_UINT32 uNum
	USC_VECTOR_PROP eProp
	)
{
}


// function
IMG_UINT32 GetVectorSize(
	IMG_UINT32 uNum
	)
{
}


// function
IMG_UINT32 CalcVecOp(
	USC_VECTOR_OP eOp
	IMG_UINT32 uSrc1
	IMG_UINT32 uSrc2
	)
{
}


// external function
void InitVector(
	USC_PVECTOR psVector
	IMG_UINT32 uChunk
	IMG_BOOL bDefault
	)
{
	{
	}
	{
	}
}


// external function
void InitArray(
	USC_PARRAY psArray
	IMG_UINT32 uChunk
	IMG_PVOID pvDefault
	IMG_UINT32 uSize
	)
{
	{
	}
}


// function
IMG_UINT32 MapInputLabel(
	PCALLDATA psCallData
	IMG_UINT32 uLabel
	IMG_BOOL bAdd
	)
{
	IMG_UINT32 uCtr
	{
		IMG_UINT32 uRet
	}
}


// function
PUNIFLEX_INST LabelToInst(
	PUNIFLEX_INST psProg
	IMG_UINT32 uLabel
	)
{
}


// external function
void _UscFree(
	PINTERMEDIATE_STATE psState
	IMG_PVOID pvBlock
	)
{
	PUSC_ALLOC_HEADER psHeader
}


// external function
void _UscFree(
	PINTERMEDIATE_STATE psState
	IMG_PVOID pvBlock
	)
{
	PUSC_ALLOC_HEADER psHeader
}


// external function
void InitArray(
	USC_PARRAY psArray
	IMG_UINT32 uChunk
	IMG_PVOID pvDefault
	IMG_UINT32 uSize
	)
{
	{
	}
}


// external function
void InitVector(
	USC_PVECTOR psVector
	IMG_UINT32 uChunk
	IMG_BOOL bDefault
	)
{
	{
	}
	{
	}
}


// external function PC=<0x6a0ec;0x6a140>
IMG_BOOL CanHaveSourceModifier(
	PINTERMEDIATE_STATE psState
	PINST psInst
	IMG_UINT32 uArg
	IMG_BOOL bNegate
	IMG_BOOL bAbs
	)
{
}


// external function PC=<0x6a140;0x6a1d8>
IMG_BOOL IsArgInRegisterGroup(
	PINTERMEDIATE_STATE psState
	PINST psInst
	IMG_UINT32 uArg
	)
{
}


// external function PC=<0x6a1d8;0x6a20c>
IMG_BOOL WroteAllLiveChannels(
	PINST psInst
	IMG_UINT32 uDestIdx
	)
{
	IMG_UINT32 uLiveChansInDest
	IMG_UINT32 uDestMask
}


// external function PC=<0x6a20c;0x6a294>
IMG_BOOL CanUseDest(
	PINTERMEDIATE_STATE psState
	PINST psInst
	IMG_UINT32 uDestType
	IMG_UINT32 uDestIndex
	)
{
}


// external function
IMG_UINT32 GetChannelsWrittenInRegister(
	PINST psInst
	IMG_UINT32 uRegisterType
	IMG_UINT32 uRegisterNumber
	IMG_PUINT32* ppuLiveChansInDest
	IMG_PUINT32 puDestOffset
	)
{
	IMG_UINT32 uDestIdx
	{
		IMG_UINT32 uDestMask
	}
	{
		const IMG_UINT32* auArr
	}
}


// external function
IMG_UINT32 GetChannelsWrittenInRegister(
	PINST psInst
	IMG_UINT32 uRegisterType
	IMG_UINT32 uRegisterNumber
	IMG_PUINT32* ppuLiveChansInDest
	IMG_PUINT32 puDestOffset
	)
{
	IMG_UINT32 uDestIdx
	{
		IMG_UINT32 uDestMask
	}
	{
		const IMG_UINT32* auArr
	}
}


// external function
void InitInstArg(
	PARG psArg
	)
{
}


// external function PC=<0x6a384;0x6a394>
void PVRUniFlexDestroyContext(
	IMG_PVOID pvContext
	)
{
	PINTERMEDIATE_STATE psState
}


// external function PC=<0x6a394;0x6a408>
void RemoveInst(
	PCODEBLOCK psCodeBlock
	PINST psInstToRemove
	)
{
	{
		PINST psCoInst
	}
}


// external function PC=<0x6a408;0x6a430>
IMG_UINT32 MaskToSwiz(
	IMG_UINT32 uMask
	)
{
	IMG_UINT32 uSCMask
	IMG_UINT32 i
}


// external function
void GetPredicate(
	PINTERMEDIATE_STATE psState
	IMG_PUINT32 puPredSrc
	IMG_PBOOL pbPredNegate
	IMG_UINT32 uPredicate
	IMG_UINT32 uChan
	)
{
	IMG_UINT32 uPredIdx
	IMG_UINT32 uScalarPredSrc
	{
		IMG_UINT32 uPredComp
	}
}


// external function
void GetPredicate(
	PINTERMEDIATE_STATE psState
	IMG_PUINT32 puPredSrc
	IMG_PBOOL pbPredNegate
	IMG_UINT32 uPredicate
	IMG_UINT32 uChan
	)
{
	IMG_UINT32 uPredIdx
	IMG_UINT32 uScalarPredSrc
	{
		IMG_UINT32 uPredComp
	}
}


// external function
UF_REGFORMAT GetRegisterFormat(
	PINTERMEDIATE_STATE psState
	PUF_REGISTER psSrc
	)
{
}


// external function
IMG_BOOL IsInputInstFlowControl(
	PUNIFLEX_INST psInst
	)
{
}


// function
IMG_BOOL IsBlockStart(
	UF_REGTYPE eInstType
	)
{
}


// external function
PUNIFLEX_INST SkipInstBlock(
	PUNIFLEX_INST psFirstInst
	UF_REGTYPE eTerminate0
	UF_REGTYPE eTerminate1
	UF_REGTYPE eTerminate2
	)
{
	IMG_UINT32 uNesting
	PUNIFLEX_INST psCurr
	{
		UF_REGTYPE eInstType
	}
	{
		UF_REGTYPE eInstType
	}
}


// external function
PUNIFLEX_INST SkipInstBlock(
	PUNIFLEX_INST psFirstInst
	UF_REGTYPE eTerminate0
	UF_REGTYPE eTerminate1
	UF_REGTYPE eTerminate2
	)
{
	IMG_UINT32 uNesting
	PUNIFLEX_INST psCurr
	{
		UF_REGTYPE eInstType
	}
	{
		UF_REGTYPE eInstType
	}
}


// external function
IMG_BOOL IsConditionalStart(
	PUNIFLEX_INST psInst
	)
{
}


// external function PC=<0x6a624;0x6a6b0>
void ConvertRegister(
	PINTERMEDIATE_STATE psState
	PARG psReg
	)
{
	{
		const IMG_UINT32 uBaseReg
	}
	{
		const IMG_UINT32 uBaseReg
	}
}


// function PC=<0x6a6b0;0x6a854>
void CalculateNestingBlock(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psInitialBlock
	IMG_UINT32 uNesting
	)
{
	PCODEBLOCK psBlock
	{
		IMG_UINT32 uCase
		{
			PSWITCHCASE psCase
		}
	}
	{
		IMG_UINT32 uLabel
		PCODEBLOCK psFuncBody
	}
}


// external function PC=<0x6a854;0x6a8c0>
IMG_PVOID PVRUniFlexCreateContext(
	USC_ALLOCFN pfnAlloc
	USC_FREEFN pfnFree
	USC_PRINTFN pfnPrint
	USC_PDUMPFN pfnPDump
	IMG_PVOID pvPDumpFnDrvParam
	USC_STARTFN pfnStart
	USC_FINISHFN pfnFinish
	IMG_PVOID pvMetricsFnDrvParam
	)
{
	PINTERMEDIATE_STATE psState
}


// external function PC=<0x6a8c0;0x6a8c4>
void PVRUniFlexDestroyUspBin(
	IMG_PVOID pvContext
	PUSP_PC_SHADER psPCShader
	)
{
	PINTERMEDIATE_STATE psState
}


// external function
void UscAbort(
	IMG_PVOID pvState
	IMG_UINT32 uError
	IMG_PCHAR pcErrorStr
	IMG_PCHAR pszFile
	IMG_UINT32 uLine
	)
{
	const PINTERMEDIATE_STATE psState
}


// external function
void UscAbort(
	IMG_PVOID pvState
	IMG_UINT32 uError
	IMG_PCHAR pcErrorStr
	IMG_PCHAR pszFile
	IMG_UINT32 uLine
	)
{
	const PINTERMEDIATE_STATE psState
}


// external function
IMG_UINT32 CompOpToTest(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uCompOp
	)
{
	IMG_UINT32 uTest
}


// external function
IMG_UINT32 CompOpToTest(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uCompOp
	)
{
	IMG_UINT32 uTest
}


// external function
void InsertInstBefore(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psCodeBlock
	PINST psInstToInsert
	PINST psInstToInsertBefore
	)
{
}


// external function
void InsertInstBefore(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psCodeBlock
	PINST psInstToInsert
	PINST psInstToInsertBefore
	)
{
}


// external function
IMG_PVOID UscAlloc(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uSize
	)
{
	IMG_PVOID pvBlock
	PUSC_ALLOC_HEADER psHeader
}


// external function
IMG_PVOID UscAlloc(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uSize
	)
{
	IMG_PVOID pvBlock
	PUSC_ALLOC_HEADER psHeader
}


// external function PC=<0x6aaa8;0x6ac24>
IMG_BOOL CanUseSrc(
	PINTERMEDIATE_STATE psState
	PINST psInst
	IMG_UINT32 uArg
	IMG_UINT32 uType
	IMG_UINT32 uIndex
	)
{
	IMG_BOOL bSrc0
	{
		IMG_BOOL bValidInternalBank
	}
}


// external function PC=<0x6ac24;0x6aca0>
IMG_BOOL HasF16F32SelectInst(
	PINST psInst
	)
{
}


// function
IMG_BOOL GetInputConst(
	PINTERMEDIATE_STATE psState
	UF_REGISTER* psReg
	IMG_UINT32 uSrcChan
	IMG_PFLOAT pfValue
	)
{
	IMG_UINT32 uSwiz
	IMG_UINT32 uMod
	IMG_UINT32 eRelativeIndex
	IMG_UINT32 uChan
	IMG_FLOAT fResult
	IMG_BOOL bDefined
	{
		IMG_UINT32 uConstOffset
		{
		}
	}
	{
	}
	{
	}
	const IMG_FLOAT[4] afConsts
	const IMG_FLOAT[4] afSwizConsts
}


// function PC=<0x6aca0;0x6afec>
IMG_BOOL UFConstComp(
	PINTERMEDIATE_STATE psState
	UF_REGISTER* psReg1
	UF_REGISTER* psReg2
	IMG_UINT32 uCompChan
	UFREG_COMPOP uCompOp
	IMG_PBOOL pbResult
	)
{
	IMG_BOOL bDefined
	IMG_BOOL bResult
	IMG_FLOAT fArg1
	IMG_FLOAT fArg2
	// inlined
	// function
	IMG_BOOL GetInputConst(
		PINTERMEDIATE_STATE psState
		UF_REGISTER* psReg
		IMG_UINT32 uSrcChan
		IMG_PFLOAT pfValue
		)
	{
		IMG_UINT32 uSwiz
		IMG_UINT32 uMod
		IMG_UINT32 eRelativeIndex
		IMG_UINT32 uChan
		IMG_FLOAT fResult
		IMG_BOOL bDefined
		{
			IMG_UINT32 uConstOffset
			{
			}
		}
		{
		}
		{
		}
		const IMG_FLOAT[4] afConsts
		const IMG_FLOAT[4] afSwizConsts
	}

	// inlined
	// function
	IMG_BOOL GetInputConst(
		PINTERMEDIATE_STATE psState
		UF_REGISTER* psReg
		IMG_UINT32 uSrcChan
		IMG_PFLOAT pfValue
		)
	{
		IMG_UINT32 uSwiz
		IMG_UINT32 uMod
		IMG_UINT32 eRelativeIndex
		IMG_UINT32 uChan
		IMG_FLOAT fResult
		IMG_BOOL bDefined
		{
			IMG_UINT32 uConstOffset
			{
			}
		}
		{
		}
		{
		}
		const IMG_FLOAT[4] afConsts
		const IMG_FLOAT[4] afSwizConsts
	}

}


// external function PC=<0x6afec;0x6b094>
IMG_UINT32 GetChannelsWrittenInArg(
	PINST psInst
	PARG psArg
	IMG_PUINT32* ppuLiveChansInDest
	)
{
	// inlined
	// external function
	IMG_UINT32 GetChannelsWrittenInRegister(
		PINST psInst
		IMG_UINT32 uRegisterType
		IMG_UINT32 uRegisterNumber
		IMG_PUINT32* ppuLiveChansInDest
		IMG_PUINT32 puDestOffset
		)
	{
		IMG_UINT32 uDestIdx
		{
			IMG_UINT32 uDestMask
		}
		{
			const IMG_UINT32* auArr
		}
	}

}


// external function
void InsertInst(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psCodeBlock
	PINST psInstToInsert
	)
{
	{
		PINST psInstToInsertBefore
		PINST psInstToInsert
		PCODEBLOCK psCodeBlock
		PINTERMEDIATE_STATE psState
	}
}


// external function
void InsertInst(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psCodeBlock
	PINST psInstToInsert
	)
{
	{
		PINST psInstToInsertBefore
		PINST psInstToInsert
		PCODEBLOCK psCodeBlock
		PINTERMEDIATE_STATE psState
	}
}


// function
void SetBit(
	IMG_UINT32* auArr
	IMG_UINT32 uBit
	IMG_UINT32 uBitData
	)
{
}


// external function PC=<0x6b0fc;0x6b1a0>
void GetPredicateInst(
	PINTERMEDIATE_STATE psState
	PINST psInst
	IMG_UINT32 uPredicate
	IMG_UINT32 uChan
	)
{
	IMG_BOOL bPredNegate
	// inlined
	// external function
	void GetPredicate(
		PINTERMEDIATE_STATE psState
		IMG_PUINT32 puPredSrc
		IMG_PBOOL pbPredNegate
		IMG_UINT32 uPredicate
		IMG_UINT32 uChan
		)
	{
		IMG_UINT32 uPredIdx
		IMG_UINT32 uScalarPredSrc
		{
			IMG_UINT32 uPredComp
		}
	}

	// inlined
	// function
	void SetBit(
		IMG_UINT32* auArr
		IMG_UINT32 uBit
		IMG_UINT32 uBitData
		)
	{
	}

}


// external function
PCODEBLOCK AllocateCodeBlock(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uType
	)
{
	PCODEBLOCK psNewBlock
	{
	}
	{
	}
}


// external function
PCODEBLOCK AddCodeBlockToTail(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psList
	IMG_UINT32 uType
	)
{
	PCODEBLOCK psNewBlock
	{
		IMG_UINT32 uType
		PINTERMEDIATE_STATE psState
		{
			PCODEBLOCK psNewBlock
			{
				PCODEBLOCK psBlock
				PCODEBLOCKLIST psList
			}
			{
				PCODEBLOCK psBlock
				PCODEBLOCKLIST psList
			}
		}
	}
}


// external function
PCODEBLOCK AddCodeBlockToTail(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psList
	IMG_UINT32 uType
	)
{
	PCODEBLOCK psNewBlock
	{
		IMG_UINT32 uType
		PINTERMEDIATE_STATE psState
		{
			PCODEBLOCK psNewBlock
			{
				PCODEBLOCK psBlock
				PCODEBLOCKLIST psList
			}
			{
				PCODEBLOCK psBlock
				PCODEBLOCKLIST psList
			}
		}
	}
}


// external function PC=<0x6b288;0x6b5f0>
void FreeInst(
	PINTERMEDIATE_STATE psState
	PINST psInst
	)
{
	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

}


// external function
void FreeCodeBlock(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psCodeBlock
	)
{
	{
		IMG_PVOID pvBlock
		PINTERMEDIATE_STATE psState
		{
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// external function
void FreeCodeBlock(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psCodeBlock
	)
{
	{
		IMG_PVOID pvBlock
		PINTERMEDIATE_STATE psState
		{
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// function
void RemoveBlockFromList(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psList
	PCODEBLOCK psBlock
	)
{
	PCODEBLOCK psPrev
	PCODEBLOCK psNext
}


// external function PC=<0x6b644;0x6bbe4>
void DropCodeBlock(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psParentList
	PCODEBLOCK psBlock
	IMG_BOOL bFreeInsts
	)
{
	// inlined
	// function
	void RemoveBlockFromList(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psList
		PCODEBLOCK psBlock
		)
	{
		PCODEBLOCK psPrev
		PCODEBLOCK psNext
	}

	{
		PINST psInst
		PINST psNextInst
	}
	{
		PCODEBLOCK psSubBlock
		PCODEBLOCK psNextSubBlock
		// inlined
		// function
		void RemoveBlockFromList(
			PINTERMEDIATE_STATE psState
			PCODEBLOCKLIST psList
			PCODEBLOCK psBlock
			)
		{
			PCODEBLOCK psPrev
			PCODEBLOCK psNext
		}

		{
			IMG_UINT32 uCase
			{
				PSWITCHCASE psCase
			}
		}
	}
	// inlined
	// external function
	void FreeCodeBlock(
		PINTERMEDIATE_STATE psState
		PCODEBLOCK psCodeBlock
		)
	{
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
	}

	{
		IMG_UINT32 uLabel
	}
	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	{
		PCODEBLOCK psCondNext
		PCODEBLOCK psCondPrev
	}
}


// external function
void MergePrevBasicBlocks(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psLastBlock
	PCODEBLOCKLIST psParentsBlockList
	)
{
	PCODEBLOCK psPrevBlock
}


// external function
void MergePrevBasicBlocks(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psLastBlock
	PCODEBLOCKLIST psParentsBlockList
	)
{
	PCODEBLOCK psPrevBlock
}


// function
void MergeBasicBlocks(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psBlockList
	)
{
	PCODEBLOCK psBlock
	{
		PCODEBLOCK psLastBlock
		{
			{
				PCODEBLOCK psPrevBlock
			}
		}
	}
	{
		{
			PCODEBLOCK psBlock
			{
				PCODEBLOCK psLastBlock
			}
		}
	}
}


// function
void MergeBasicBlocks(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psBlockList
	)
{
	PCODEBLOCK psBlock
	{
		PCODEBLOCK psLastBlock
		{
			{
				PCODEBLOCK psPrevBlock
			}
		}
	}
	{
		{
			PCODEBLOCK psBlock
			{
				PCODEBLOCK psLastBlock
			}
		}
	}
}


// function
void BaseFreeChunk(
	PINTERMEDIATE_STATE psState
	USC_PCHUNK psChunk
	)
{
}


// external function
void PurgeChunkMem(
	PINTERMEDIATE_STATE psState
	)
{
	USC_PCHUNK psCurr
	USC_PCHUNK psNext
	{
		USC_PCHUNK psChunk
		PINTERMEDIATE_STATE psState
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
	}
	{
		USC_PCHUNK psChunk
		PINTERMEDIATE_STATE psState
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
	}
}


// external function
void PurgeChunkMem(
	PINTERMEDIATE_STATE psState
	)
{
	USC_PCHUNK psCurr
	USC_PCHUNK psNext
	{
		USC_PCHUNK psChunk
		PINTERMEDIATE_STATE psState
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
	}
	{
		USC_PCHUNK psChunk
		PINTERMEDIATE_STATE psState
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
	}
}


// function PC=<0x6c490;0x6c574>
void FreeChunk(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uSize
	USC_PCHUNK* ppsChunk
	)
{
	USC_PCHUNK psChunk
	// inlined
	// function
	void BaseFreeChunk(
		PINTERMEDIATE_STATE psState
		USC_PCHUNK psChunk
		)
	{
	}

	// inlined
	// function
	void BaseFreeChunk(
		PINTERMEDIATE_STATE psState
		USC_PCHUNK psChunk
		)
	{
	}

}


// external function
void ClearVector(
	PINTERMEDIATE_STATE psState
	USC_PVECTOR psVector
	)
{
	USC_PCHUNK psCurr
	USC_PCHUNK psNext
	{
		IMG_UINT32 uSize
		IMG_UINT32 uNum
	}
}


// external function
void ClearVector(
	PINTERMEDIATE_STATE psState
	USC_PVECTOR psVector
	)
{
	USC_PCHUNK psCurr
	USC_PCHUNK psNext
	{
		IMG_UINT32 uSize
		IMG_UINT32 uNum
	}
}


// external function
void ClearArray(
	PINTERMEDIATE_STATE psState
	USC_PARRAY psArray
	USC_STATE_FREEFN fnFree
	)
{
	USC_PCHUNK psCurr
	USC_PCHUNK psNext
	{
		IMG_UINT32 uIdx
		{
			IMG_PVOID* ppvElem
			{
				IMG_UINT32 uIdx
				IMG_UINT32 uSize
				IMG_PVOID* pvArray
			}
		}
	}
	{
		IMG_UINT32 uSize
		IMG_UINT32 uNum
	}
}


// external function
void ClearArray(
	PINTERMEDIATE_STATE psState
	USC_PARRAY psArray
	USC_STATE_FREEFN fnFree
	)
{
	USC_PCHUNK psCurr
	USC_PCHUNK psNext
	{
		IMG_UINT32 uIdx
		{
			IMG_PVOID* ppvElem
			{
				IMG_UINT32 uIdx
				IMG_UINT32 uSize
				IMG_PVOID* pvArray
			}
		}
	}
	{
		IMG_UINT32 uSize
		IMG_UINT32 uNum
	}
}


// external function
void FreeVector(
	PINTERMEDIATE_STATE psState
	USC_PVECTOR* ppsVector
	)
{
	USC_PVECTOR psVector
	{
		USC_PVECTOR psVector
		PINTERMEDIATE_STATE psState
		{
			USC_PCHUNK psCurr
			USC_PCHUNK psNext
			{
				IMG_UINT32 uSize
				IMG_UINT32 uNum
			}
		}
	}
	{
		IMG_PVOID pvBlock
		PINTERMEDIATE_STATE psState
		{
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// external function
void FreeVector(
	PINTERMEDIATE_STATE psState
	USC_PVECTOR* ppsVector
	)
{
	USC_PVECTOR psVector
	{
		USC_PVECTOR psVector
		PINTERMEDIATE_STATE psState
		{
			USC_PCHUNK psCurr
			USC_PCHUNK psNext
			{
				IMG_UINT32 uSize
				IMG_UINT32 uNum
			}
		}
	}
	{
		IMG_PVOID pvBlock
		PINTERMEDIATE_STATE psState
		{
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// external function
void FreeArray(
	PINTERMEDIATE_STATE psState
	USC_PARRAY* ppsArray
	)
{
	USC_PARRAY psArray
	{
		USC_STATE_FREEFN fnFree
		USC_PARRAY psArray
		PINTERMEDIATE_STATE psState
		{
			USC_PCHUNK psCurr
			USC_PCHUNK psNext
			{
				IMG_UINT32 uIdx
				{
					IMG_PVOID* ppvElem
					{
						IMG_UINT32 uIdx
						IMG_UINT32 uSize
						IMG_PVOID* pvArray
					}
				}
			}
			{
				IMG_UINT32 uSize
				IMG_UINT32 uNum
			}
		}
	}
	{
		IMG_PVOID pvBlock
		PINTERMEDIATE_STATE psState
		{
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// external function
void FreeArray(
	PINTERMEDIATE_STATE psState
	USC_PARRAY* ppsArray
	)
{
	USC_PARRAY psArray
	{
		USC_STATE_FREEFN fnFree
		USC_PARRAY psArray
		PINTERMEDIATE_STATE psState
		{
			USC_PCHUNK psCurr
			USC_PCHUNK psNext
			{
				IMG_UINT32 uIdx
				{
					IMG_PVOID* ppvElem
					{
						IMG_UINT32 uIdx
						IMG_UINT32 uSize
						IMG_PVOID* pvArray
					}
				}
			}
			{
				IMG_UINT32 uSize
				IMG_UINT32 uNum
			}
		}
	}
	{
		IMG_PVOID pvBlock
		PINTERMEDIATE_STATE psState
		{
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// function
void FreeIntermediateCode(
	PINTERMEDIATE_STATE psState
	)
{
	PCODEBLOCK psBlock
	{
		PINST psInst
		PINST psInstNext
		{
			PINST psGroupNext
		}
	}
}


// external function PC=<0x6c818;0x6cf78>
void ReleaseState(
	PINTERMEDIATE_STATE psState
	)
{
	IMG_UINT32 uLabel
	IMG_UINT32 uIdx
	IMG_UINT32 uNumOfConstsBuffsAvailable
	// inlined
	// function
	void FreeIntermediateCode(
		PINTERMEDIATE_STATE psState
		)
	{
		PCODEBLOCK psBlock
		{
			PINST psInst
			PINST psInstNext
			{
				PINST psGroupNext
			}
		}
	}

	// inlined
	// external function
	void FreeCodeBlock(
		PINTERMEDIATE_STATE psState
		PCODEBLOCK psCodeBlock
		)
	{
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
	}

	// inlined
	// external function
	void FreeArray(
		PINTERMEDIATE_STATE psState
		USC_PARRAY* ppsArray
		)
	{
		USC_PARRAY psArray
		{
			USC_STATE_FREEFN fnFree
			USC_PARRAY psArray
			PINTERMEDIATE_STATE psState
			{
				USC_PCHUNK psCurr
				USC_PCHUNK psNext
				{
					IMG_UINT32 uIdx
					{
						IMG_PVOID* ppvElem
						{
							IMG_UINT32 uIdx
							IMG_UINT32 uSize
							IMG_PVOID* pvArray
						}
					}
				}
				{
					IMG_UINT32 uSize
					IMG_UINT32 uNum
				}
			}
		}
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
	}

	// inlined
	// external function
	void FreeArray(
		PINTERMEDIATE_STATE psState
		USC_PARRAY* ppsArray
		)
	{
		USC_PARRAY psArray
		{
			USC_STATE_FREEFN fnFree
			USC_PARRAY psArray
			PINTERMEDIATE_STATE psState
			{
				USC_PCHUNK psCurr
				USC_PCHUNK psNext
				{
					IMG_UINT32 uIdx
					{
						IMG_PVOID* ppvElem
						{
							IMG_UINT32 uIdx
							IMG_UINT32 uSize
							IMG_PVOID* pvArray
						}
					}
				}
				{
					IMG_UINT32 uSize
					IMG_UINT32 uNum
				}
			}
		}
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	{
		const IMG_UINT32 uSize
		// inlined
		// external function
		void _UscFree(
			PINTERMEDIATE_STATE psState
			IMG_PVOID pvBlock
			)
		{
			PUSC_ALLOC_HEADER psHeader
		}

		// inlined
		// external function
		void _UscFree(
			PINTERMEDIATE_STATE psState
			IMG_PVOID pvBlock
			)
		{
			PUSC_ALLOC_HEADER psHeader
		}

		// inlined
		// external function
		void _UscFree(
			PINTERMEDIATE_STATE psState
			IMG_PVOID pvBlock
			)
		{
			PUSC_ALLOC_HEADER psHeader
		}

		// inlined
		// external function
		void _UscFree(
			PINTERMEDIATE_STATE psState
			IMG_PVOID pvBlock
			)
		{
			PUSC_ALLOC_HEADER psHeader
		}

	}
	{
		PFIXED_TEMPORARY_GROUP psFixedGroup
		// inlined
		// external function
		void _UscFree(
			PINTERMEDIATE_STATE psState
			IMG_PVOID pvBlock
			)
		{
			PUSC_ALLOC_HEADER psHeader
		}

		// inlined
		// external function
		void _UscFree(
			PINTERMEDIATE_STATE psState
			IMG_PVOID pvBlock
			)
		{
			PUSC_ALLOC_HEADER psHeader
		}

	}
	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void PurgeChunkMem(
		PINTERMEDIATE_STATE psState
		)
	{
		USC_PCHUNK psCurr
		USC_PCHUNK psNext
		{
			USC_PCHUNK psChunk
			PINTERMEDIATE_STATE psState
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}
		{
			USC_PCHUNK psChunk
			PINTERMEDIATE_STATE psState
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}
	}

}


// external function
void ClearGraph(
	PINTERMEDIATE_STATE psState
	USC_PGRAPH psGraph
	)
{
	USC_PARRAY psArray
	{
		USC_STATE_FREEFN fnFree
		USC_PARRAY psArray
		PINTERMEDIATE_STATE psState
		{
			USC_PCHUNK psCurr
			USC_PCHUNK psNext
			{
				IMG_UINT32 uIdx
				{
					IMG_PVOID* ppvElem
					{
						IMG_UINT32 uIdx
						IMG_UINT32 uSize
						IMG_PVOID* pvArray
					}
				}
			}
			{
				IMG_UINT32 uSize
				IMG_UINT32 uNum
			}
		}
	}
	{
		USC_PARRAY* ppsArray
		PINTERMEDIATE_STATE psState
		{
			USC_PARRAY psArray
			{
				USC_STATE_FREEFN fnFree
				USC_PARRAY psArray
				PINTERMEDIATE_STATE psState
				{
					USC_PCHUNK psCurr
					USC_PCHUNK psNext
					{
						IMG_UINT32 uIdx
						{
							IMG_PVOID* ppvElem
							{
								IMG_UINT32 uIdx
								IMG_UINT32 uSize
								IMG_PVOID* pvArray
							}
						}
					}
					{
						IMG_UINT32 uSize
						IMG_UINT32 uNum
					}
				}
			}
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}
	}
}


// external function
void ClearGraph(
	PINTERMEDIATE_STATE psState
	USC_PGRAPH psGraph
	)
{
	USC_PARRAY psArray
	{
		USC_STATE_FREEFN fnFree
		USC_PARRAY psArray
		PINTERMEDIATE_STATE psState
		{
			USC_PCHUNK psCurr
			USC_PCHUNK psNext
			{
				IMG_UINT32 uIdx
				{
					IMG_PVOID* ppvElem
					{
						IMG_UINT32 uIdx
						IMG_UINT32 uSize
						IMG_PVOID* pvArray
					}
				}
			}
			{
				IMG_UINT32 uSize
				IMG_UINT32 uNum
			}
		}
	}
	{
		USC_PARRAY* ppsArray
		PINTERMEDIATE_STATE psState
		{
			USC_PARRAY psArray
			{
				USC_STATE_FREEFN fnFree
				USC_PARRAY psArray
				PINTERMEDIATE_STATE psState
				{
					USC_PCHUNK psCurr
					USC_PCHUNK psNext
					{
						IMG_UINT32 uIdx
						{
							IMG_PVOID* ppvElem
							{
								IMG_UINT32 uIdx
								IMG_UINT32 uSize
								IMG_PVOID* pvArray
							}
						}
					}
					{
						IMG_UINT32 uSize
						IMG_UINT32 uNum
					}
				}
			}
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}
	}
}


// external function
PCODEBLOCK AddBasicBlockToTail(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psList
	)
{
	{
		PCODEBLOCK psBasicBlock
		{
			IMG_UINT32 uType
			PCODEBLOCKLIST psList
			PINTERMEDIATE_STATE psState
			{
				PCODEBLOCK psNewBlock
				{
					IMG_UINT32 uType
					PINTERMEDIATE_STATE psState
					{
						PCODEBLOCK psNewBlock
						{
							PCODEBLOCK psBlock
							PCODEBLOCKLIST psList
						}
						{
							PCODEBLOCK psBlock
							PCODEBLOCKLIST psList
						}
					}
				}
			}
		}
	}
}


// external function
PCODEBLOCK AddBasicBlockToTail(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psList
	)
{
	{
		PCODEBLOCK psBasicBlock
		{
			IMG_UINT32 uType
			PCODEBLOCKLIST psList
			PINTERMEDIATE_STATE psState
			{
				PCODEBLOCK psNewBlock
				{
					IMG_UINT32 uType
					PINTERMEDIATE_STATE psState
					{
						PCODEBLOCK psNewBlock
						{
							PCODEBLOCK psBlock
							PCODEBLOCKLIST psList
						}
						{
							PCODEBLOCK psBlock
							PCODEBLOCKLIST psList
						}
					}
				}
			}
		}
	}
}


// external function
void ClearMatrix(
	PINTERMEDIATE_STATE psState
	USC_PMATRIX psMatrix
	)
{
	USC_PARRAY psRow
	{
		USC_STATE_FREEFN fnFree
		USC_PARRAY psArray
		PINTERMEDIATE_STATE psState
		{
			USC_PCHUNK psCurr
			USC_PCHUNK psNext
			{
				IMG_UINT32 uIdx
				{
					IMG_PVOID* ppvElem
					{
						IMG_UINT32 uIdx
						IMG_UINT32 uSize
						IMG_PVOID* pvArray
					}
				}
			}
			{
				IMG_UINT32 uSize
				IMG_UINT32 uNum
			}
		}
	}
	{
		USC_PARRAY* ppsArray
		PINTERMEDIATE_STATE psState
		{
			USC_PARRAY psArray
			{
				USC_STATE_FREEFN fnFree
				USC_PARRAY psArray
				PINTERMEDIATE_STATE psState
				{
					USC_PCHUNK psCurr
					USC_PCHUNK psNext
					{
						IMG_UINT32 uIdx
						{
							IMG_PVOID* ppvElem
							{
								IMG_UINT32 uIdx
								IMG_UINT32 uSize
								IMG_PVOID* pvArray
							}
						}
					}
					{
						IMG_UINT32 uSize
						IMG_UINT32 uNum
					}
				}
			}
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}
	}
}


// external function
void ClearMatrix(
	PINTERMEDIATE_STATE psState
	USC_PMATRIX psMatrix
	)
{
	USC_PARRAY psRow
	{
		USC_STATE_FREEFN fnFree
		USC_PARRAY psArray
		PINTERMEDIATE_STATE psState
		{
			USC_PCHUNK psCurr
			USC_PCHUNK psNext
			{
				IMG_UINT32 uIdx
				{
					IMG_PVOID* ppvElem
					{
						IMG_UINT32 uIdx
						IMG_UINT32 uSize
						IMG_PVOID* pvArray
					}
				}
			}
			{
				IMG_UINT32 uSize
				IMG_UINT32 uNum
			}
		}
	}
	{
		USC_PARRAY* ppsArray
		PINTERMEDIATE_STATE psState
		{
			USC_PARRAY psArray
			{
				USC_STATE_FREEFN fnFree
				USC_PARRAY psArray
				PINTERMEDIATE_STATE psState
				{
					USC_PCHUNK psCurr
					USC_PCHUNK psNext
					{
						IMG_UINT32 uIdx
						{
							IMG_PVOID* ppvElem
							{
								IMG_UINT32 uIdx
								IMG_UINT32 uSize
								IMG_PVOID* pvArray
							}
						}
					}
					{
						IMG_UINT32 uSize
						IMG_UINT32 uNum
					}
				}
			}
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}
	}
}


// external function PC=<0x6d2cc;0x6d470>
void FreeGraph(
	PINTERMEDIATE_STATE psState
	USC_PGRAPH* ppsGraph
	)
{
	USC_PGRAPH psGraph
	// inlined
	// external function
	void ClearGraph(
		PINTERMEDIATE_STATE psState
		USC_PGRAPH psGraph
		)
	{
		USC_PARRAY psArray
		{
			USC_STATE_FREEFN fnFree
			USC_PARRAY psArray
			PINTERMEDIATE_STATE psState
			{
				USC_PCHUNK psCurr
				USC_PCHUNK psNext
				{
					IMG_UINT32 uIdx
					{
						IMG_PVOID* ppvElem
						{
							IMG_UINT32 uIdx
							IMG_UINT32 uSize
							IMG_PVOID* pvArray
						}
					}
				}
				{
					IMG_UINT32 uSize
					IMG_UINT32 uNum
				}
			}
		}
		{
			USC_PARRAY* ppsArray
			PINTERMEDIATE_STATE psState
			{
				USC_PARRAY psArray
				{
					USC_STATE_FREEFN fnFree
					USC_PARRAY psArray
					PINTERMEDIATE_STATE psState
					{
						USC_PCHUNK psCurr
						USC_PCHUNK psNext
						{
							IMG_UINT32 uIdx
							{
								IMG_PVOID* ppvElem
								{
									IMG_UINT32 uIdx
									IMG_UINT32 uSize
									IMG_PVOID* pvArray
								}
							}
						}
						{
							IMG_UINT32 uSize
							IMG_UINT32 uNum
						}
					}
				}
				{
					IMG_PVOID pvBlock
					PINTERMEDIATE_STATE psState
					{
						PUSC_ALLOC_HEADER psHeader
					}
				}
			}
		}
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

}


// external function PC=<0x6d470;0x6d614>
void FreeMatrix(
	PINTERMEDIATE_STATE psState
	USC_PMATRIX* ppsMatrix
	)
{
	USC_PMATRIX psMatrix
	// inlined
	// external function
	void ClearMatrix(
		PINTERMEDIATE_STATE psState
		USC_PMATRIX psMatrix
		)
	{
		USC_PARRAY psRow
		{
			USC_STATE_FREEFN fnFree
			USC_PARRAY psArray
			PINTERMEDIATE_STATE psState
			{
				USC_PCHUNK psCurr
				USC_PCHUNK psNext
				{
					IMG_UINT32 uIdx
					{
						IMG_PVOID* ppvElem
						{
							IMG_UINT32 uIdx
							IMG_UINT32 uSize
							IMG_PVOID* pvArray
						}
					}
				}
				{
					IMG_UINT32 uSize
					IMG_UINT32 uNum
				}
			}
		}
		{
			USC_PARRAY* ppsArray
			PINTERMEDIATE_STATE psState
			{
				USC_PARRAY psArray
				{
					USC_STATE_FREEFN fnFree
					USC_PARRAY psArray
					PINTERMEDIATE_STATE psState
					{
						USC_PCHUNK psCurr
						USC_PCHUNK psNext
						{
							IMG_UINT32 uIdx
							{
								IMG_PVOID* ppvElem
								{
									IMG_UINT32 uIdx
									IMG_UINT32 uSize
									IMG_PVOID* pvArray
								}
							}
						}
						{
							IMG_UINT32 uSize
							IMG_UINT32 uNum
						}
					}
				}
				{
					IMG_PVOID pvBlock
					PINTERMEDIATE_STATE psState
					{
						PUSC_ALLOC_HEADER psHeader
					}
				}
			}
		}
	}

	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

}


// external function
PCODEBLOCK AddLoopBlock(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psList
	)
{
	PCODEBLOCK psCodeBlock
	{
		IMG_UINT32 uType
		PCODEBLOCKLIST psList
		PINTERMEDIATE_STATE psState
		{
			PCODEBLOCK psNewBlock
			{
				IMG_UINT32 uType
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
				}
			}
		}
	}
}


// external function
PCODEBLOCK AddLoopBlock(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psList
	)
{
	PCODEBLOCK psCodeBlock
	{
		IMG_UINT32 uType
		PCODEBLOCKLIST psList
		PINTERMEDIATE_STATE psState
		{
			PCODEBLOCK psNewBlock
			{
				IMG_UINT32 uType
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
				}
			}
		}
	}
}


// external function
PCODEBLOCK InsertConditionalBlock(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psList
	IMG_UINT32 uCondPredSrc
	IMG_BOOL bCondPredNegate
	IMG_BOOL bStatic
	)
{
	PCODEBLOCK psCodeBlock
	{
		IMG_UINT32 uType
		PCODEBLOCKLIST psList
		PINTERMEDIATE_STATE psState
		{
			PCODEBLOCK psNewBlock
			{
				IMG_UINT32 uType
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
				}
			}
		}
	}
}


// external function
PCODEBLOCK InsertConditionalBlock(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psList
	IMG_UINT32 uCondPredSrc
	IMG_BOOL bCondPredNegate
	IMG_BOOL bStatic
	)
{
	PCODEBLOCK psCodeBlock
	{
		IMG_UINT32 uType
		PCODEBLOCKLIST psList
		PINTERMEDIATE_STATE psState
		{
			PCODEBLOCK psNewBlock
			{
				IMG_UINT32 uType
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
				}
			}
		}
	}
}


// external function PC=<0x6d7c0;0x6d874>
USC_PGRAPH NewGraph(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uChunk
	IMG_PVOID pvDefault
	USC_GRAPH_TYPE eType
	)
{
	USC_PGRAPH psGraph
	// inlined
	// external function
	IMG_PVOID UscAlloc(
		PINTERMEDIATE_STATE psState
		IMG_UINT32 uSize
		)
	{
		IMG_PVOID pvBlock
		PUSC_ALLOC_HEADER psHeader
	}

}


// external function
IMG_BOOL ResizeArray(
	PINTERMEDIATE_STATE psState
	IMG_PVOID psArray
	IMG_UINT32 uOldSize
	IMG_UINT32 uNewSize
	IMG_PVOID* ppsNew
	)
{
	IMG_PVOID psNew
	{
		IMG_UINT32 uSize
		PINTERMEDIATE_STATE psState
		{
			IMG_PVOID pvBlock
			PUSC_ALLOC_HEADER psHeader
		}
	}
	{
		IMG_PVOID pvBlock
		PINTERMEDIATE_STATE psState
		{
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// external function
IMG_BOOL ResizeArray(
	PINTERMEDIATE_STATE psState
	IMG_PVOID psArray
	IMG_UINT32 uOldSize
	IMG_UINT32 uNewSize
	IMG_PVOID* ppsNew
	)
{
	IMG_PVOID psNew
	{
		IMG_UINT32 uSize
		PINTERMEDIATE_STATE psState
		{
			IMG_PVOID pvBlock
			PUSC_ALLOC_HEADER psHeader
		}
	}
	{
		IMG_PVOID pvBlock
		PINTERMEDIATE_STATE psState
		{
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// external function
USC_PARRAY NewArray(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uChunk
	IMG_PVOID pvDefault
	IMG_UINT32 uSize
	)
{
	USC_PARRAY psArray
	{
		IMG_UINT32 uSize
		IMG_PVOID pvDefault
		IMG_UINT32 uChunk
		USC_PARRAY psArray
		{
			IMG_UINT32 uSize
			IMG_UINT32 uNum
		}
	}
	{
		IMG_UINT32 uSize
		PINTERMEDIATE_STATE psState
		{
			IMG_PVOID pvBlock
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// external function
USC_PARRAY NewArray(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uChunk
	IMG_PVOID pvDefault
	IMG_UINT32 uSize
	)
{
	USC_PARRAY psArray
	{
		IMG_UINT32 uSize
		IMG_PVOID pvDefault
		IMG_UINT32 uChunk
		USC_PARRAY psArray
		{
			IMG_UINT32 uSize
			IMG_UINT32 uNum
		}
	}
	{
		IMG_UINT32 uSize
		PINTERMEDIATE_STATE psState
		{
			IMG_PVOID pvBlock
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// external function
PCODEBLOCK AllocateCodeBlock(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uType
	)
{
	PCODEBLOCK psNewBlock
	{
	}
	{
	}
}


// external function
USC_PVECTOR NewVector(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uChunk
	IMG_BOOL bDefault
	)
{
	USC_PVECTOR psVector
	{
		IMG_BOOL bDefault
		IMG_UINT32 uChunk
		USC_PVECTOR psVector
		{
			IMG_UINT32 uSize
			IMG_UINT32 uNum
		}
		{
			IMG_BOOL uFlag
			USC_VECTOR_PROP eProp
			IMG_UINT32 uNum
		}
	}
	{
		IMG_UINT32 uSize
		PINTERMEDIATE_STATE psState
		{
			IMG_PVOID pvBlock
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// external function
USC_PVECTOR NewVector(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uChunk
	IMG_BOOL bDefault
	)
{
	USC_PVECTOR psVector
	{
		IMG_BOOL bDefault
		IMG_UINT32 uChunk
		USC_PVECTOR psVector
		{
			IMG_UINT32 uSize
			IMG_UINT32 uNum
		}
		{
			IMG_BOOL uFlag
			USC_VECTOR_PROP eProp
			IMG_UINT32 uNum
		}
	}
	{
		IMG_UINT32 uSize
		PINTERMEDIATE_STATE psState
		{
			IMG_PVOID pvBlock
			PUSC_ALLOC_HEADER psHeader
		}
	}
}


// external function PC=<0x6dc10;0x6ddec>
PINST AllocateInst(
	PINTERMEDIATE_STATE psState
	)
{
	PINST psInstruction
	IMG_UINT32 uDestIdx
	// inlined
	// external function
	IMG_PVOID UscAlloc(
		PINTERMEDIATE_STATE psState
		IMG_UINT32 uSize
		)
	{
		IMG_PVOID pvBlock
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	void InitInstArg(
		PARG psArg
		)
	{
	}

	// inlined
	// function
	void SetBit(
		IMG_UINT32* auArr
		IMG_UINT32 uBit
		IMG_UINT32 uBitData
		)
	{
	}

}


// function PC=<0x6ddec;0x6df98>
USC_PCHUNK NewChunk(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uSize
	IMG_PVOID pvDefault
	)
{
	USC_PCHUNK psChunk
	// inlined
	// external function
	IMG_PVOID UscAlloc(
		PINTERMEDIATE_STATE psState
		IMG_UINT32 uSize
		)
	{
		IMG_PVOID pvBlock
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	IMG_PVOID UscAlloc(
		PINTERMEDIATE_STATE psState
		IMG_UINT32 uSize
		)
	{
		IMG_PVOID pvBlock
		PUSC_ALLOC_HEADER psHeader
	}

	{
		IMG_UINT32 uCtr
		const IMG_UINT32 uNum
	}
	{
		IMG_UINT32 uVal
	}
}


// external function PC=<0x6df98;0x6e0b8>
USC_PVECTOR VectorCopy(
	PINTERMEDIATE_STATE psState
	USC_PVECTOR psSrc
	USC_PVECTOR psDest
	)
{
	USC_PCHUNK psFirst
	IMG_UINT32 uDestSize
	{
		USC_PCHUNK psCurr
		USC_PCHUNK psNew
		USC_PCHUNK* ppsPrev
		USC_PCHUNK psPrev
		const IMG_UINT32 uSize
		const IMG_UINT32 uChunk
		const IMG_UINT32 uDefault
	}
}


// function PC=<0x6e0b8;0x6ea9c>
USC_PVECTOR VectorOpWorker(
	PINTERMEDIATE_STATE psState
	USC_VECTOR_OP eOp
	USC_PVECTOR psDest
	USC_PVECTOR psVec1
	USC_PVECTOR psVec2
	)
{
	USC_PCHUNK* ppsPrev
	IMG_UINT32 uChunkIdx
	USC_PCHUNK psNew
	USC_PCHUNK psNext
	USC_PCHUNK psPrev
	IMG_UINT32 uSize
	IMG_UINT32 uChunk
	IMG_UINT32 uDefault
	IMG_UINT32 uNumArgs
	USC_PCHUNK[2] apsCurr
	IMG_UINT32[2] auChunkIdx
	IMG_UINT32[2] auDefault
	IMG_UINT32[2] auSize
	IMG_BOOL bCompare
	// inlined
	// function
	IMG_UINT32 GetVectorSize(
		IMG_UINT32 uNum
		)
	{
	}

	// inlined
	// function
	IMG_UINT32 CalcVecOp(
		USC_VECTOR_OP eOp
		IMG_UINT32 uSrc1
		IMG_UINT32 uSrc2
		)
	{
	}

	{
		IMG_UINT32 uCtr
		IMG_BOOL[2] abValid
		USC_PCHUNK psSrc1
		USC_PCHUNK psSrc2
		IMG_BOOL bDropChunk
		{
			IMG_UINT32[2] auVal
			IMG_UINT32 uVal
			{
				const IMG_PVOID* ppvElem
			}
			// inlined
			// function
			IMG_UINT32 CalcVecOp(
				USC_VECTOR_OP eOp
				IMG_UINT32 uSrc1
				IMG_UINT32 uSrc2
				)
			{
			}

			{
				const IMG_PVOID* ppvElem
			}
			{
				const IMG_PVOID* ppvElem
			}
		}
	}
	{
		USC_PCHUNK psCurr
	}
}


// external function
USC_PVECTOR VectorOp(
	PINTERMEDIATE_STATE psState
	USC_VECTOR_OP eOp
	USC_PVECTOR psDest
	USC_PVECTOR psSrc1
	USC_PVECTOR psSrc2
	)
{
	USC_PVECTOR psRet
	IMG_UINT32 uChunk
	USC_VECTOR sVector
	{
		IMG_UINT32 uSize
		IMG_UINT32 uNum
	}
}


// external function
USC_PVECTOR VectorOp(
	PINTERMEDIATE_STATE psState
	USC_VECTOR_OP eOp
	USC_PVECTOR psDest
	USC_PVECTOR psSrc1
	USC_PVECTOR psSrc2
	)
{
	USC_PVECTOR psRet
	IMG_UINT32 uChunk
	USC_VECTOR sVector
	{
		IMG_UINT32 uSize
		IMG_UINT32 uNum
	}
}


// function PC=<0x6eb3c;0x6ed4c>
USC_PCHUNK ArrayChunkGet(
	PINTERMEDIATE_STATE psState
	USC_PMEMO psMemo
	USC_PCHUNK* ppsFirst
	IMG_UINT32 uIdx
	IMG_UINT32 uIdxInc
	IMG_UINT32 uChunkSize
	IMG_PVOID pvDefault
	IMG_BOOL bExtend
	)
{
	USC_PCHUNK psCurr
	USC_PCHUNK psStart
	USC_PCHUNK psChunk
	USC_PCHUNK psLast
	USC_PCHUNK psNextLink
	USC_PCHUNK psNext
	USC_PCHUNK psPrev
	IMG_UINT32 uChunkIdx
	IMG_UINT32 uNextIdx
	IMG_BOOL bBack
	USC_PCHUNK psFirst
}


// function
void SetRange(
	PINTERMEDIATE_STATE psState
	IMG_UINT32* auArr
	const IMG_UINT32 uTop
	const IMG_UINT32 uBottom
	const IMG_UINT32 uBitData
	)
{
	const IMG_UINT32 uTopLong
	const IMG_UINT32 uBottomLong
	const IMG_UINT32 uBottomShift
	const IMG_UINT32 uRange
	const IMG_UINT32 uDataMask
	{
		const IMG_UINT32 uTopShift
	}
}


// external function PC=<0x6ed4c;0x6f13c>
USC_PVECTOR VectorSetRange(
	PINTERMEDIATE_STATE psState
	USC_PVECTOR psVector
	IMG_UINT32 uEndIdx
	IMG_UINT32 uStartIdx
	IMG_UINT32 uData
	)
{
	const IMG_UINT32 uBitsPerChunk
	const IMG_UINT32 uSize
	USC_PCHUNK[2] apsChunk
	IMG_UINT32[2] auChunkIdx
	IMG_UINT32 uNewNum
	IMG_UINT32 uDefault
	IMG_UINT32[2] auBitIdx
	IMG_UINT32[2] auBitArr
	IMG_PVOID*[2] appvElem
	IMG_UINT32[2] auWordIdx
	IMG_BOOL bExtend
	IMG_UINT32 uCtr
	// inlined
	// function
	IMG_PVOID* ChunkElem(
		IMG_PVOID* pvArray
		IMG_UINT32 uSize
		IMG_UINT32 uIdx
		)
	{
	}

	{
		IMG_UINT32 uFirst
		IMG_UINT32 uLast
		// inlined
		// function
		void SetRange(
			PINTERMEDIATE_STATE psState
			IMG_UINT32* auArr
			const IMG_UINT32 uTop
			const IMG_UINT32 uBottom
			const IMG_UINT32 uBitData
			)
		{
			const IMG_UINT32 uTopLong
			const IMG_UINT32 uBottomLong
			const IMG_UINT32 uBottomShift
			const IMG_UINT32 uRange
			const IMG_UINT32 uDataMask
			{
				const IMG_UINT32 uTopShift
			}
		}

	}
	{
		IMG_UINT32 uNewVal
	}
}


// function
IMG_UINT32 GetRange(
	PINTERMEDIATE_STATE psState
	IMG_UINT32* auArr
	const IMG_UINT32 uTop
	const IMG_UINT32 uBottom
	)
{
	long unsigned int uBitData
	const IMG_UINT32 uTopLong
	const IMG_UINT32 uBottomLong
	const IMG_UINT32 uBottomShift
	const IMG_UINT32 uRange
	const IMG_UINT32 uDataMask
}


// external function PC=<0x6f13c;0x6f3fc>
IMG_UINT32 VectorGetRange(
	PINTERMEDIATE_STATE psState
	USC_PVECTOR psVector
	IMG_UINT32 uEndIdx
	IMG_UINT32 uStartIdx
	)
{
	const IMG_UINT32 uBitsPerChunk
	const IMG_UINT32 uSize
	USC_PCHUNK[2] apsChunk
	IMG_UINT32[2] auChunkIdx
	IMG_UINT32 uDefault
	IMG_UINT32[2] auBitIdx
	IMG_UINT32[2] auBitArr
	IMG_UINT32[2] auWordIdx
	IMG_UINT32 uCtr
	{
		IMG_UINT32 uFirst
		IMG_UINT32 uLast
		// inlined
		// function
		IMG_UINT32 GetRange(
			PINTERMEDIATE_STATE psState
			IMG_UINT32* auArr
			const IMG_UINT32 uTop
			const IMG_UINT32 uBottom
			)
		{
			long unsigned int uBitData
			const IMG_UINT32 uTopLong
			const IMG_UINT32 uBottomLong
			const IMG_UINT32 uBottomShift
			const IMG_UINT32 uRange
			const IMG_UINT32 uDataMask
		}

	}
}


// external function PC=<0x6f3fc;0x6f560>
USC_PVECTOR VectorSet(
	PINTERMEDIATE_STATE psState
	USC_PVECTOR psVector
	IMG_UINT32 uBitIdx
	IMG_UINT32 uData
	)
{
	const IMG_UINT32 uBitsPerInt
	IMG_UINT32 uBitsPerChunk
	IMG_UINT32 uChunkIdx
	USC_PCHUNK psCurr
	IMG_UINT32 uNewNum
	IMG_UINT32 uDefault
	GetElement: \\ label @0x6f468
	{
		const IMG_PVOID* ppvElem
		// inlined
		// function
		void SetBit(
			IMG_UINT32* auArr
			IMG_UINT32 uBit
			IMG_UINT32 uBitData
			)
		{
		}

	}
}


// external function PC=<0x6f560;0x6f5dc>
void GraphClearRow(
	PINTERMEDIATE_STATE psState
	USC_PGRAPH psGraph
	IMG_UINT32 uRow
	)
{
	{
		const IMG_UINT32 uChunk
		const IMG_UINT32 uSize
		USC_PCHUNK psCurr
		{
			IMG_UINT32 uCtr
			USC_PVECTOR psCol
		}
	}
}


// external function
IMG_UINT32 VectorGet(
	PINTERMEDIATE_STATE psState
	USC_PVECTOR psVector
	IMG_UINT32 uBitIdx
	)
{
	const IMG_UINT32 uBitsPerInt
	USC_PCHUNK psCurr
	IMG_UINT32 uDefault
	GetElement: \\ label
	{
		const IMG_UINT32 uBitsPerChunk
		IMG_UINT32 uBitsPerVector
		{
			IMG_UINT32 uNum
		}
	}
	{
		IMG_PVOID* ppvElem
		IMG_UINT32 uChunkIdx
		{
			IMG_UINT32 uIdx
			IMG_UINT32 uSize
			IMG_PVOID* pvArray
		}
		{
			const IMG_UINT32 uPos
			const IMG_UINT32* auArr
		}
	}
	{
		USC_VECTOR_PROP eProp
		IMG_UINT32 uNum
	}
}


// external function
IMG_UINT32 VectorGet(
	PINTERMEDIATE_STATE psState
	USC_PVECTOR psVector
	IMG_UINT32 uBitIdx
	)
{
	const IMG_UINT32 uBitsPerInt
	USC_PCHUNK psCurr
	IMG_UINT32 uDefault
	GetElement: \\ label
	{
		const IMG_UINT32 uBitsPerChunk
		IMG_UINT32 uBitsPerVector
		{
			IMG_UINT32 uNum
		}
	}
	{
		IMG_PVOID* ppvElem
		IMG_UINT32 uChunkIdx
		{
			IMG_UINT32 uIdx
			IMG_UINT32 uSize
			IMG_PVOID* pvArray
		}
		{
			const IMG_UINT32 uPos
			const IMG_UINT32* auArr
		}
	}
	{
		USC_VECTOR_PROP eProp
		IMG_UINT32 uNum
	}
}


// function PC=<0x6f6a8;0x6f7b0>
IMG_PVOID* BaseArraySet(
	PINTERMEDIATE_STATE psState
	USC_PARRAY psArray
	IMG_UINT32 uIdx
	IMG_BOOL bExtend
	)
{
	IMG_UINT32 uNewNum
	IMG_PVOID* psRet
	USC_PCHUNK psCurr
	IMG_UINT32 uChunkIdx
	GetElement: \\ label
	// inlined
	// function
	IMG_PVOID* ChunkElem(
		IMG_PVOID* pvArray
		IMG_UINT32 uSize
		IMG_UINT32 uIdx
		)
	{
	}

}


// external function PC=<0x6f7b0;0x6f89c>
USC_PARRAY ArrayElemOp(
	PINTERMEDIATE_STATE psState
	USC_PARRAY psArray
	USC_VECTOR_OP eOp
	IMG_UINT32 uIdx
	IMG_UINT32 uArg
	)
{
	IMG_PVOID* psElem
	IMG_UINT32 uVal
	// inlined
	// function
	IMG_UINT32 CalcVecOp(
		USC_VECTOR_OP eOp
		IMG_UINT32 uSrc1
		IMG_UINT32 uSrc2
		)
	{
	}

}


// external function
USC_PARRAY ArraySet(
	PINTERMEDIATE_STATE psState
	USC_PARRAY psArray
	IMG_UINT32 uIdx
	IMG_PVOID pvData
	)
{
	IMG_PVOID* psElem
	IMG_BOOL bExtend
}


// external function
USC_PARRAY ArraySet(
	PINTERMEDIATE_STATE psState
	USC_PARRAY psArray
	IMG_UINT32 uIdx
	IMG_PVOID pvData
	)
{
	IMG_PVOID* psElem
	IMG_BOOL bExtend
}


// function
IMG_PVOID* BaseArrayGet(
	PINTERMEDIATE_STATE psState
	USC_PARRAY psArray
	IMG_UINT32 uIdx
	)
{
	USC_PCHUNK psCurr
	IMG_PVOID* psRet
	IMG_UINT32 uChunkIdx
	GetElement: \\ label
	{
	}
	{
	}
}


// external function PC=<0x6f8e0;0x6fa48>
void GraphClearCol(
	PINTERMEDIATE_STATE psState
	USC_PGRAPH psGraph
	IMG_UINT32 uCol
	)
{
	{
		USC_PVECTOR* ppsElem
		// inlined
		// external function
		void FreeVector(
			PINTERMEDIATE_STATE psState
			USC_PVECTOR* ppsVector
			)
		{
			USC_PVECTOR psVector
			{
				USC_PVECTOR psVector
				PINTERMEDIATE_STATE psState
				{
					USC_PCHUNK psCurr
					USC_PCHUNK psNext
					{
						IMG_UINT32 uSize
						IMG_UINT32 uNum
					}
				}
			}
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}

		// inlined
		// function
		IMG_PVOID* BaseArrayGet(
			PINTERMEDIATE_STATE psState
			USC_PARRAY psArray
			IMG_UINT32 uIdx
			)
		{
			USC_PCHUNK psCurr
			IMG_PVOID* psRet
			IMG_UINT32 uChunkIdx
			GetElement: \\ label
			{
			}
			{
			}
		}

	}
}


// external function PC=<0x6fa48;0x6fba0>
void ClearMatrixCol(
	PINTERMEDIATE_STATE psState
	USC_PMATRIX psMatrix
	IMG_UINT32 uCol
	)
{
	USC_PARRAY psArray
	{
		USC_PARRAY* ppsCol
		USC_PARRAY psCol
		// inlined
		// external function
		void FreeArray(
			PINTERMEDIATE_STATE psState
			USC_PARRAY* ppsArray
			)
		{
			USC_PARRAY psArray
			{
				USC_STATE_FREEFN fnFree
				USC_PARRAY psArray
				PINTERMEDIATE_STATE psState
				{
					USC_PCHUNK psCurr
					USC_PCHUNK psNext
					{
						IMG_UINT32 uIdx
						{
							IMG_PVOID* ppvElem
							{
								IMG_UINT32 uIdx
								IMG_UINT32 uSize
								IMG_PVOID* pvArray
							}
						}
					}
					{
						IMG_UINT32 uSize
						IMG_UINT32 uNum
					}
				}
			}
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}

		// inlined
		// function
		IMG_PVOID* BaseArrayGet(
			PINTERMEDIATE_STATE psState
			USC_PARRAY psArray
			IMG_UINT32 uIdx
			)
		{
			USC_PCHUNK psCurr
			IMG_PVOID* psRet
			IMG_UINT32 uChunkIdx
			GetElement: \\ label
			{
			}
			{
			}
		}

	}
}


// external function
IMG_PVOID ArrayGet(
	PINTERMEDIATE_STATE psState
	USC_PARRAY psArray
	IMG_UINT32 uIdx
	)
{
	IMG_PVOID* ppsElem
	{
		IMG_UINT32 uIdx
		USC_PARRAY psArray
		PINTERMEDIATE_STATE psState
		{
			USC_PCHUNK psCurr
			IMG_PVOID* psRet
			IMG_UINT32 uChunkIdx
			undefined: \\ label
			{
				IMG_UINT32 uNum
			}
			{
				IMG_UINT32 uIdx
				IMG_UINT32 uSize
				IMG_PVOID* pvArray
			}
		}
	}
}


// external function
IMG_PVOID ArrayGet(
	PINTERMEDIATE_STATE psState
	USC_PARRAY psArray
	IMG_UINT32 uIdx
	)
{
	IMG_PVOID* ppsElem
	{
		IMG_UINT32 uIdx
		USC_PARRAY psArray
		PINTERMEDIATE_STATE psState
		{
			USC_PCHUNK psCurr
			IMG_PVOID* psRet
			IMG_UINT32 uChunkIdx
			undefined: \\ label
			{
				IMG_UINT32 uNum
			}
			{
				IMG_UINT32 uIdx
				IMG_UINT32 uSize
				IMG_PVOID* pvArray
			}
		}
	}
}


// external function PC=<0x6fc64;0x6fe28>
IMG_BOOL GraphGet(
	PINTERMEDIATE_STATE psState
	USC_PGRAPH psGraph
	IMG_UINT32 uReg1
	IMG_UINT32 uReg2
	)
{
	IMG_UINT32 uLarge
	IMG_UINT32 uSmall
	{
		USC_PVECTOR* ppsElem
		USC_PVECTOR psVector
		// inlined
		// external function
		IMG_UINT32 VectorGet(
			PINTERMEDIATE_STATE psState
			USC_PVECTOR psVector
			IMG_UINT32 uBitIdx
			)
		{
			const IMG_UINT32 uBitsPerInt
			USC_PCHUNK psCurr
			IMG_UINT32 uDefault
			GetElement: \\ label
			{
				const IMG_UINT32 uBitsPerChunk
				IMG_UINT32 uBitsPerVector
				{
					IMG_UINT32 uNum
				}
			}
			{
				IMG_PVOID* ppvElem
				IMG_UINT32 uChunkIdx
				{
					IMG_UINT32 uIdx
					IMG_UINT32 uSize
					IMG_PVOID* pvArray
				}
				{
					const IMG_UINT32 uPos
					const IMG_UINT32* auArr
				}
			}
			{
				USC_VECTOR_PROP eProp
				IMG_UINT32 uNum
			}
		}

		// inlined
		// function
		IMG_PVOID* BaseArrayGet(
			PINTERMEDIATE_STATE psState
			USC_PARRAY psArray
			IMG_UINT32 uIdx
			)
		{
			USC_PCHUNK psCurr
			IMG_PVOID* psRet
			IMG_UINT32 uChunkIdx
			GetElement: \\ label
			{
			}
			{
			}
		}

	}
}


// external function PC=<0x6fe28;0x6ffd4>
IMG_PVOID MatrixGet(
	PINTERMEDIATE_STATE psState
	USC_PMATRIX psMatrix
	IMG_UINT32 uReg1
	IMG_UINT32 uReg2
	)
{
	IMG_UINT32 uLarge
	IMG_UINT32 uSmall
	{
		USC_PARRAY psCol
		// inlined
		// external function
		IMG_PVOID ArrayGet(
			PINTERMEDIATE_STATE psState
			USC_PARRAY psArray
			IMG_UINT32 uIdx
			)
		{
			IMG_PVOID* ppsElem
			{
				IMG_UINT32 uIdx
				USC_PARRAY psArray
				PINTERMEDIATE_STATE psState
				{
					USC_PCHUNK psCurr
					IMG_PVOID* psRet
					IMG_UINT32 uChunkIdx
					undefined: \\ label
					{
						IMG_UINT32 uNum
					}
					{
						IMG_UINT32 uIdx
						IMG_UINT32 uSize
						IMG_PVOID* pvArray
					}
				}
			}
		}

		// inlined
		// external function
		IMG_PVOID ArrayGet(
			PINTERMEDIATE_STATE psState
			USC_PARRAY psArray
			IMG_UINT32 uIdx
			)
		{
			IMG_PVOID* ppsElem
			{
				IMG_UINT32 uIdx
				USC_PARRAY psArray
				PINTERMEDIATE_STATE psState
				{
					USC_PCHUNK psCurr
					IMG_PVOID* psRet
					IMG_UINT32 uChunkIdx
					undefined: \\ label
					{
						IMG_UINT32 uNum
					}
					{
						IMG_UINT32 uIdx
						IMG_UINT32 uSize
						IMG_PVOID* pvArray
					}
				}
			}
		}

	}
}


// external function PC=<0x6ffd4;0x700a0>
void GraphColRef(
	PINTERMEDIATE_STATE psState
	USC_PGRAPH psGraph
	IMG_UINT32 uCol
	USC_PVECTOR* ppsVector
	)
{
	USC_PVECTOR psCol
	// inlined
	// external function
	IMG_PVOID ArrayGet(
		PINTERMEDIATE_STATE psState
		USC_PARRAY psArray
		IMG_UINT32 uIdx
		)
	{
		IMG_PVOID* ppsElem
		{
			IMG_UINT32 uIdx
			USC_PARRAY psArray
			PINTERMEDIATE_STATE psState
			{
				USC_PCHUNK psCurr
				IMG_PVOID* psRet
				IMG_UINT32 uChunkIdx
				undefined: \\ label
				{
					IMG_UINT32 uNum
				}
				{
					IMG_UINT32 uIdx
					IMG_UINT32 uSize
					IMG_PVOID* pvArray
				}
			}
		}
	}

}


// external function PC=<0x700a0;0x70154>
USC_PMATRIX NewMatrix(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uChunk
	IMG_PVOID pvDefault
	USC_MATRIX_TYPE eType
	)
{
	USC_PMATRIX psMatrix
	// inlined
	// external function
	IMG_PVOID UscAlloc(
		PINTERMEDIATE_STATE psState
		IMG_UINT32 uSize
		)
	{
		IMG_PVOID pvBlock
		PUSC_ALLOC_HEADER psHeader
	}

}


// external function PC=<0x70154;0x703f4>
void MatrixSet(
	PINTERMEDIATE_STATE psState
	USC_PMATRIX psMatrix
	IMG_UINT32 uReg1
	IMG_UINT32 uReg2
	IMG_PVOID psData
	)
{
	IMG_UINT32 uLarge
	IMG_UINT32 uSmall
	{
		USC_PARRAY psCol
		IMG_UINT32 uChunkSize
		// inlined
		// external function
		USC_PARRAY ArraySet(
			PINTERMEDIATE_STATE psState
			USC_PARRAY psArray
			IMG_UINT32 uIdx
			IMG_PVOID pvData
			)
		{
			IMG_PVOID* psElem
			IMG_BOOL bExtend
		}

		// inlined
		// external function
		IMG_PVOID ArrayGet(
			PINTERMEDIATE_STATE psState
			USC_PARRAY psArray
			IMG_UINT32 uIdx
			)
		{
			IMG_PVOID* ppsElem
			{
				IMG_UINT32 uIdx
				USC_PARRAY psArray
				PINTERMEDIATE_STATE psState
				{
					USC_PCHUNK psCurr
					IMG_PVOID* psRet
					IMG_UINT32 uChunkIdx
					undefined: \\ label
					{
						IMG_UINT32 uNum
					}
					{
						IMG_UINT32 uIdx
						IMG_UINT32 uSize
						IMG_PVOID* pvArray
					}
				}
			}
		}

		// inlined
		// external function
		USC_PARRAY NewArray(
			PINTERMEDIATE_STATE psState
			IMG_UINT32 uChunk
			IMG_PVOID pvDefault
			IMG_UINT32 uSize
			)
		{
			USC_PARRAY psArray
			{
				IMG_UINT32 uSize
				IMG_PVOID pvDefault
				IMG_UINT32 uChunk
				USC_PARRAY psArray
				{
					IMG_UINT32 uSize
					IMG_UINT32 uNum
				}
			}
			{
				IMG_UINT32 uSize
				PINTERMEDIATE_STATE psState
				{
					IMG_PVOID pvBlock
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}

		// inlined
		// external function
		USC_PARRAY ArraySet(
			PINTERMEDIATE_STATE psState
			USC_PARRAY psArray
			IMG_UINT32 uIdx
			IMG_PVOID pvData
			)
		{
			IMG_PVOID* psElem
			IMG_BOOL bExtend
		}

		// inlined
		// external function
		USC_PARRAY NewArray(
			PINTERMEDIATE_STATE psState
			IMG_UINT32 uChunk
			IMG_PVOID pvDefault
			IMG_UINT32 uSize
			)
		{
			USC_PARRAY psArray
			{
				IMG_UINT32 uSize
				IMG_PVOID pvDefault
				IMG_UINT32 uChunk
				USC_PARRAY psArray
				{
					IMG_UINT32 uSize
					IMG_UINT32 uNum
				}
			}
			{
				IMG_UINT32 uSize
				PINTERMEDIATE_STATE psState
				{
					IMG_PVOID pvBlock
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}

	}
}


// external function PC=<0x703f4;0x70600>
void GraphSet(
	PINTERMEDIATE_STATE psState
	USC_PGRAPH psGraph
	IMG_UINT32 uReg1
	IMG_UINT32 uReg2
	IMG_BOOL bSet
	)
{
	IMG_UINT32 uLarge
	IMG_UINT32 uSmall
	{
		USC_PVECTOR* ppsElem
		USC_PVECTOR psVector
		{
			IMG_UINT32 uChunkSize
			// inlined
			// external function
			USC_PARRAY NewArray(
				PINTERMEDIATE_STATE psState
				IMG_UINT32 uChunk
				IMG_PVOID pvDefault
				IMG_UINT32 uSize
				)
			{
				USC_PARRAY psArray
				{
					IMG_UINT32 uSize
					IMG_PVOID pvDefault
					IMG_UINT32 uChunk
					USC_PARRAY psArray
					{
						IMG_UINT32 uSize
						IMG_UINT32 uNum
					}
				}
				{
					IMG_UINT32 uSize
					PINTERMEDIATE_STATE psState
					{
						IMG_PVOID pvBlock
						PUSC_ALLOC_HEADER psHeader
					}
				}
			}

		}
		// inlined
		// external function
		USC_PVECTOR NewVector(
			PINTERMEDIATE_STATE psState
			IMG_UINT32 uChunk
			IMG_BOOL bDefault
			)
		{
			USC_PVECTOR psVector
			{
				IMG_BOOL bDefault
				IMG_UINT32 uChunk
				USC_PVECTOR psVector
				{
					IMG_UINT32 uSize
					IMG_UINT32 uNum
				}
				{
					IMG_BOOL uFlag
					USC_VECTOR_PROP eProp
					IMG_UINT32 uNum
				}
			}
			{
				IMG_UINT32 uSize
				PINTERMEDIATE_STATE psState
				{
					IMG_PVOID pvBlock
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}

	}
}


// external function PC=<0x70600;0x70868>
void GraphCopy(
	PINTERMEDIATE_STATE psState
	USC_PGRAPH psSrc
	USC_PGRAPH psDst
	)
{
	{
		const IMG_UINT32 uChunk
		const IMG_UINT32 uSize
		const IMG_PVOID pvDefault
		USC_PCHUNK psCurr
		USC_PCHUNK psNew
		USC_PCHUNK* ppsPrev
		USC_PCHUNK psPrev
		{
			USC_PVECTOR psCol
			IMG_UINT32 uCtr
			{
				USC_PVECTOR psNewCol
				IMG_PVOID* ppvElem
				{
					IMG_PVOID* ppvNewElem
					// inlined
					// external function
					USC_PVECTOR NewVector(
						PINTERMEDIATE_STATE psState
						IMG_UINT32 uChunk
						IMG_BOOL bDefault
						)
					{
						USC_PVECTOR psVector
						{
							IMG_BOOL bDefault
							IMG_UINT32 uChunk
							USC_PVECTOR psVector
							{
								IMG_UINT32 uSize
								IMG_UINT32 uNum
							}
							{
								IMG_BOOL uFlag
								USC_VECTOR_PROP eProp
								IMG_UINT32 uNum
							}
						}
						{
							IMG_UINT32 uSize
							PINTERMEDIATE_STATE psState
							{
								IMG_PVOID pvBlock
								PUSC_ALLOC_HEADER psHeader
							}
						}
					}

				}
			}
		}
		// inlined
		// external function
		USC_PARRAY NewArray(
			PINTERMEDIATE_STATE psState
			IMG_UINT32 uChunk
			IMG_PVOID pvDefault
			IMG_UINT32 uSize
			)
		{
			USC_PARRAY psArray
			{
				IMG_UINT32 uSize
				IMG_PVOID pvDefault
				IMG_UINT32 uChunk
				USC_PARRAY psArray
				{
					IMG_UINT32 uSize
					IMG_UINT32 uNum
				}
			}
			{
				IMG_UINT32 uSize
				PINTERMEDIATE_STATE psState
				{
					IMG_PVOID pvBlock
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}

	}
}


// external function PC=<0x70868;0x70b24>
void GraphOrCol(
	PINTERMEDIATE_STATE psState
	USC_PGRAPH psGraph
	IMG_UINT32 uCol
	USC_PVECTOR psVector
	)
{
	{
		USC_PVECTOR* ppsElem
		USC_PVECTOR psCol
		// inlined
		// external function
		USC_PARRAY ArraySet(
			PINTERMEDIATE_STATE psState
			USC_PARRAY psArray
			IMG_UINT32 uIdx
			IMG_PVOID pvData
			)
		{
			IMG_PVOID* psElem
			IMG_BOOL bExtend
		}

		// inlined
		// external function
		USC_PVECTOR NewVector(
			PINTERMEDIATE_STATE psState
			IMG_UINT32 uChunk
			IMG_BOOL bDefault
			)
		{
			USC_PVECTOR psVector
			{
				IMG_BOOL bDefault
				IMG_UINT32 uChunk
				USC_PVECTOR psVector
				{
					IMG_UINT32 uSize
					IMG_UINT32 uNum
				}
				{
					IMG_BOOL uFlag
					USC_VECTOR_PROP eProp
					IMG_UINT32 uNum
				}
			}
			{
				IMG_UINT32 uSize
				PINTERMEDIATE_STATE psState
				{
					IMG_PVOID pvBlock
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}

		// inlined
		// function
		IMG_PVOID* BaseArrayGet(
			PINTERMEDIATE_STATE psState
			USC_PARRAY psArray
			IMG_UINT32 uIdx
			)
		{
			USC_PCHUNK psCurr
			IMG_PVOID* psRet
			IMG_UINT32 uChunkIdx
			GetElement: \\ label
			{
			}
			{
			}
		}

		{
			IMG_BOOL bEmptyCol
			{
				USC_PVECTOR psNewCol
				// inlined
				// external function
				USC_PVECTOR VectorOp(
					PINTERMEDIATE_STATE psState
					USC_VECTOR_OP eOp
					USC_PVECTOR psDest
					USC_PVECTOR psSrc1
					USC_PVECTOR psSrc2
					)
				{
					USC_PVECTOR psRet
					IMG_UINT32 uChunk
					USC_VECTOR sVector
					{
						IMG_UINT32 uSize
						IMG_UINT32 uNum
					}
				}

			}
			// inlined
			// external function
			USC_PVECTOR NewVector(
				PINTERMEDIATE_STATE psState
				IMG_UINT32 uChunk
				IMG_BOOL bDefault
				)
			{
				USC_PVECTOR psVector
				{
					IMG_BOOL bDefault
					IMG_UINT32 uChunk
					USC_PVECTOR psVector
					{
						IMG_UINT32 uSize
						IMG_UINT32 uNum
					}
					{
						IMG_BOOL uFlag
						USC_VECTOR_PROP eProp
						IMG_UINT32 uNum
					}
				}
				{
					IMG_UINT32 uSize
					PINTERMEDIATE_STATE psState
					{
						IMG_PVOID pvBlock
						PUSC_ALLOC_HEADER psHeader
					}
				}
			}

		}
	}
}


// external function PC=<0x70b24;0x70f28>
void GraphDupCol(
	PINTERMEDIATE_STATE psState
	USC_PGRAPH psGraph
	IMG_UINT32 uSrc
	IMG_UINT32 uDst
	)
{
	USC_PVECTOR psSrc
	USC_PVECTOR psDst
	USC_PVECTOR* ppsDst
	// inlined
	// external function
	IMG_PVOID ArrayGet(
		PINTERMEDIATE_STATE psState
		USC_PARRAY psArray
		IMG_UINT32 uIdx
		)
	{
		IMG_PVOID* ppsElem
		{
			IMG_UINT32 uIdx
			USC_PARRAY psArray
			PINTERMEDIATE_STATE psState
			{
				USC_PCHUNK psCurr
				IMG_PVOID* psRet
				IMG_UINT32 uChunkIdx
				undefined: \\ label
				{
					IMG_UINT32 uNum
				}
				{
					IMG_UINT32 uIdx
					IMG_UINT32 uSize
					IMG_PVOID* pvArray
				}
			}
		}
	}

	// inlined
	// function
	IMG_PVOID* BaseArrayGet(
		PINTERMEDIATE_STATE psState
		USC_PARRAY psArray
		IMG_UINT32 uIdx
		)
	{
		USC_PCHUNK psCurr
		IMG_PVOID* psRet
		IMG_UINT32 uChunkIdx
		GetElement: \\ label
		{
		}
		{
		}
	}

	// inlined
	// external function
	void ClearVector(
		PINTERMEDIATE_STATE psState
		USC_PVECTOR psVector
		)
	{
		USC_PCHUNK psCurr
		USC_PCHUNK psNext
		{
			IMG_UINT32 uSize
			IMG_UINT32 uNum
		}
	}

	// inlined
	// external function
	void FreeVector(
		PINTERMEDIATE_STATE psState
		USC_PVECTOR* ppsVector
		)
	{
		USC_PVECTOR psVector
		{
			USC_PVECTOR psVector
			PINTERMEDIATE_STATE psState
			{
				USC_PCHUNK psCurr
				USC_PCHUNK psNext
				{
					IMG_UINT32 uSize
					IMG_UINT32 uNum
				}
			}
		}
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
	}

	// inlined
	// external function
	USC_PARRAY ArraySet(
		PINTERMEDIATE_STATE psState
		USC_PARRAY psArray
		IMG_UINT32 uIdx
		IMG_PVOID pvData
		)
	{
		IMG_PVOID* psElem
		IMG_BOOL bExtend
	}

	// inlined
	// external function
	USC_PVECTOR NewVector(
		PINTERMEDIATE_STATE psState
		IMG_UINT32 uChunk
		IMG_BOOL bDefault
		)
	{
		USC_PVECTOR psVector
		{
			IMG_BOOL bDefault
			IMG_UINT32 uChunk
			USC_PVECTOR psVector
			{
				IMG_UINT32 uSize
				IMG_UINT32 uNum
			}
			{
				IMG_BOOL uFlag
				USC_VECTOR_PROP eProp
				IMG_UINT32 uNum
			}
		}
		{
			IMG_UINT32 uSize
			PINTERMEDIATE_STATE psState
			{
				IMG_PVOID pvBlock
				PUSC_ALLOC_HEADER psHeader
			}
		}
	}

}


// function
void InitInst(
	PINTERMEDIATE_STATE psState
	PINST psInst
	)
{
}


// external function PC=<0x70f28;0x7175c>
void SetOpcode(
	PINTERMEDIATE_STATE psState
	PINST psInst
	IOPCODE eOpcode
	)
{
	IOPCODE eOldOpcode
	IMG_UINT32 uOldArgCount
	IMG_UINT32 uArgCount
	{
		IMG_UINT32 uFirst
		IMG_UINT32 i
		// inlined
		// external function
		IMG_PVOID UscAlloc(
			PINTERMEDIATE_STATE psState
			IMG_UINT32 uSize
			)
		{
			IMG_PVOID pvBlock
			PUSC_ALLOC_HEADER psHeader
		}

		// inlined
		// external function
		void _UscFree(
			PINTERMEDIATE_STATE psState
			IMG_PVOID pvBlock
			)
		{
			PUSC_ALLOC_HEADER psHeader
		}

		{
			IMG_PVOID psTemp
			// inlined
			// external function
			IMG_BOOL ResizeArray(
				PINTERMEDIATE_STATE psState
				IMG_PVOID psArray
				IMG_UINT32 uOldSize
				IMG_UINT32 uNewSize
				IMG_PVOID* ppsNew
				)
			{
				IMG_PVOID psNew
				{
					IMG_UINT32 uSize
					PINTERMEDIATE_STATE psState
					{
						IMG_PVOID pvBlock
						PUSC_ALLOC_HEADER psHeader
					}
				}
				{
					IMG_PVOID pvBlock
					PINTERMEDIATE_STATE psState
					{
						PUSC_ALLOC_HEADER psHeader
					}
				}
			}

		}
		// inlined
		// external function
		void InitInstArg(
			PARG psArg
			)
		{
		}

	}
	// inlined
	// function
	void InitInst(
		PINTERMEDIATE_STATE psState
		PINST psInst
		)
	{
	}

}


// function PC=<0x7175c;0x71ef4>
void DoFlowControlTest(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psList
	PUNIFLEX_INST psFirstInst
	IMG_PUINT32 puPredSrc
	IMG_PBOOL pbPredNegate
	)
{
	PCODEBLOCK psBasicBlock
	// inlined
	// external function
	PCODEBLOCK AddBasicBlockToTail(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psList
		)
	{
		{
			PCODEBLOCK psBasicBlock
			{
				IMG_UINT32 uType
				PCODEBLOCKLIST psList
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						IMG_UINT32 uType
						PINTERMEDIATE_STATE psState
						{
							PCODEBLOCK psNewBlock
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
						}
					}
				}
			}
		}
	}

	{
		IMG_UINT32 uArg
		{
			PINST psInst
			// inlined
			// external function
			void InsertInst(
				PINTERMEDIATE_STATE psState
				PCODEBLOCK psCodeBlock
				PINST psInstToInsert
				)
			{
				{
					PINST psInstToInsertBefore
					PINST psInstToInsert
					PCODEBLOCK psCodeBlock
					PINTERMEDIATE_STATE psState
				}
			}

			// inlined
			// function
			void SetBit(
				IMG_UINT32* auArr
				IMG_UINT32 uBit
				IMG_UINT32 uBitData
				)
			{
			}

			// inlined
			// function
			void SetBit(
				IMG_UINT32* auArr
				IMG_UINT32 uBit
				IMG_UINT32 uBitData
				)
			{
			}

		}
		{
			PINST psInst
			IMG_UINT32 uBoolConst
			// inlined
			// function
			void SetBit(
				IMG_UINT32* auArr
				IMG_UINT32 uBit
				IMG_UINT32 uBitData
				)
			{
			}

			// inlined
			// external function
			void InsertInst(
				PINTERMEDIATE_STATE psState
				PCODEBLOCK psCodeBlock
				PINST psInstToInsert
				)
			{
				{
					PINST psInstToInsertBefore
					PINST psInstToInsert
					PCODEBLOCK psCodeBlock
					PINTERMEDIATE_STATE psState
				}
			}

		}
	}
	{
		IMG_UINT32 uSwiz
		IMG_UINT32 uPredicate
		IMG_UINT32 uArg
		// inlined
		// external function
		void GetPredicate(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puPredSrc
			IMG_PBOOL pbPredNegate
			IMG_UINT32 uPredicate
			IMG_UINT32 uChan
			)
		{
			IMG_UINT32 uPredIdx
			IMG_UINT32 uScalarPredSrc
			{
				IMG_UINT32 uPredComp
			}
		}

	}
	// inlined
	// external function
	UF_REGFORMAT GetRegisterFormat(
		PINTERMEDIATE_STATE psState
		PUF_REGISTER psSrc
		)
	{
	}

	{
		PINST psInst
		IMG_UINT32 uArg
		// inlined
		// external function
		void InsertInst(
			PINTERMEDIATE_STATE psState
			PCODEBLOCK psCodeBlock
			PINST psInstToInsert
			)
		{
			{
				PINST psInstToInsertBefore
				PINST psInstToInsert
				PCODEBLOCK psCodeBlock
				PINTERMEDIATE_STATE psState
			}
		}

		// inlined
		// function
		void SetBit(
			IMG_UINT32* auArr
			IMG_UINT32 uBit
			IMG_UINT32 uBitData
			)
		{
		}

		// inlined
		// function
		void SetBit(
			IMG_UINT32* auArr
			IMG_UINT32 uBit
			IMG_UINT32 uBitData
			)
		{
		}

		// inlined
		// external function
		UF_REGFORMAT GetRegisterFormat(
			PINTERMEDIATE_STATE psState
			PUF_REGISTER psSrc
			)
		{
		}

	}
	{
		ARG sSrc1
		ARG sSrc2
		IMG_UINT32 uCompChannel
		IMG_UINT32 uSrc0Chan
		IMG_UINT32 uSrc2Chan
	}
}


// function
PUNIFLEX_INST AllocInputInst(
	PINTERMEDIATE_STATE psState
	PINPUT_PROGRAM psProg
	)
{
	PUNIFLEX_INST psNewInst
}


// function PC=<0x71ef4;0x74214>
void ExpandMacro(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psOrigInst
	PINPUT_PROGRAM psProg
	)
{
	IMG_UINT32 i
	PUNIFLEX_INST psInst
	{
		UF_REGTYPE eOpCode
		IMG_UINT32 uLimit
		// inlined
		// function
		PUNIFLEX_INST AllocInputInst(
			PINTERMEDIATE_STATE psState
			PINPUT_PROGRAM psProg
			)
		{
			PUNIFLEX_INST psNewInst
		}

	}
	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	void CopyInputInst(
		PUNIFLEX_INST psDest
		PUNIFLEX_INST psSrc
		)
	{
		IMG_UINT32 uSrc
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	void CopyInputInst(
		PUNIFLEX_INST psDest
		PUNIFLEX_INST psSrc
		)
	{
		IMG_UINT32 uSrc
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// external function
	UF_REGFORMAT GetRegisterFormat(
		PINTERMEDIATE_STATE psState
		PUF_REGISTER psSrc
		)
	{
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	void CopyInputInst(
		PUNIFLEX_INST psDest
		PUNIFLEX_INST psSrc
		)
	{
		IMG_UINT32 uSrc
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	void CopyInputInst(
		PUNIFLEX_INST psDest
		PUNIFLEX_INST psSrc
		)
	{
		IMG_UINT32 uSrc
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	{
		IMG_UINT32 uChan
		IMG_UINT32 uTempMask
		{
			IMG_BOOL bTempDest
			IMG_UINT32 uSrc
			// inlined
			// function
			PUNIFLEX_INST AllocInputInst(
				PINTERMEDIATE_STATE psState
				PINPUT_PROGRAM psProg
				)
			{
				PUNIFLEX_INST psNewInst
			}

			{
				IMG_UINT32 uNextChan
			}
		}
		// inlined
		// function
		PUNIFLEX_INST AllocInputInst(
			PINTERMEDIATE_STATE psState
			PINPUT_PROGRAM psProg
			)
		{
			PUNIFLEX_INST psNewInst
		}

	}
	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	{
		IMG_UINT32 uTemp2
		// inlined
		// function
		PUNIFLEX_INST AllocInputInst(
			PINTERMEDIATE_STATE psState
			PINPUT_PROGRAM psProg
			)
		{
			PUNIFLEX_INST psNewInst
		}

		// inlined
		// function
		PUNIFLEX_INST AllocInputInst(
			PINTERMEDIATE_STATE psState
			PINPUT_PROGRAM psProg
			)
		{
			PUNIFLEX_INST psNewInst
		}

		// inlined
		// function
		PUNIFLEX_INST AllocInputInst(
			PINTERMEDIATE_STATE psState
			PINPUT_PROGRAM psProg
			)
		{
			PUNIFLEX_INST psNewInst
		}

	}
	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	void ApplyAbsoluteModifier(
		PUF_REGISTER psSrc
		)
	{
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	void ApplyAbsoluteModifier(
		PUF_REGISTER psSrc
		)
	{
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	void CopyInputInst(
		PUNIFLEX_INST psDest
		PUNIFLEX_INST psSrc
		)
	{
		IMG_UINT32 uSrc
	}

	// inlined
	// function
	PUNIFLEX_INST AllocInputInst(
		PINTERMEDIATE_STATE psState
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psNewInst
	}

	// inlined
	// function
	void CopyInputInst(
		PUNIFLEX_INST psDest
		PUNIFLEX_INST psSrc
		)
	{
		IMG_UINT32 uSrc
	}

	const IMG_UINT8[4] abyMask
}


// external function PC=<0x74214;0x7423c>
void USCFailure(
	PINTERMEDIATE_STATE psState
	)
{
	// inlined
	// external function
	void UscAbort(
		IMG_PVOID pvState
		IMG_UINT32 uError
		IMG_PCHAR pcErrorStr
		IMG_PCHAR pszFile
		IMG_UINT32 uLine
		)
	{
		const PINTERMEDIATE_STATE psState
	}

}


// external function PC=<0x7423c;0x7436c>
void InsertCodeBlock(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psList
	PCODEBLOCK psStart
	PCODEBLOCK psEnd
	PCODEBLOCK psInsertBefore
	)
{
	PCODEBLOCK psBlock
	// inlined
	// external function
	void UscAbort(
		IMG_PVOID pvState
		IMG_UINT32 uError
		IMG_PCHAR pcErrorStr
		IMG_PCHAR pszFile
		IMG_UINT32 uLine
		)
	{
		const PINTERMEDIATE_STATE psState
	}

}


// function
PUNIFLEX_INST ConvertSwitch(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psProg
	PUNIFLEX_INST psFirstInst
	PCODEBLOCKLIST psList
	PCALLDATA psCallData
	)
{
	IMG_UINT32 uCaseCount
	PUNIFLEX_INST psEndSwitchInst
	PCODEBLOCK psCodeBlock
	ARG sSwitchArg
	PCODEBLOCK psBasicBlock
	IMG_BOOL bSavedInConditional
	PINPUT_SWITCH_CASE psInCases
	IMG_UINT32 uDefaultCase
	IMG_UINT32 uCase
	{
		PCODEBLOCK psTestBasicBlock
		PSWITCHCASE psOutCase
	}
}


// function
PUNIFLEX_INST ScanSwitch(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psSwitchInst
	IMG_PUINT32 puCaseCount
	PINPUT_SWITCH_CASE* ppsCases
	IMG_PUINT32 puDefaultCase
	)
{
	PUNIFLEX_INST psInst
	IMG_UINT32 uBlockCount
	IMG_UINT32 uCaseCount
	{
		IMG_UINT32 uGuardCount
		PINPUT_SWITCH_CASE psCase
		PUNIFLEX_INST psCaseInst
	}
	{
	}
}


// function
void GenerateSwitchTest(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psBasicBlock
	PARG psSwitchArg
	PINPUT_SWITCH_CASE psCase
	IMG_PUINT32 puPredSrc
	IMG_PBOOL pbPredNegate
	)
{
	IMG_UINT32 uGuard
	{
		PINST psXorInst
		IMG_UINT32 uImm
		{
			PINST psLimmInst
		}
	}
}


// function
PUNIFLEX_INST ConvertCall(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psProg
	PUNIFLEX_INST psFirstInst
	PCODEBLOCKLIST psList
	PCALLDATA psCallData
	)
{
	IMG_UINT32 uInputLabel
	IMG_UINT32 uLabel
	PCODEBLOCK psCodeBlock
	IMG_UINT32 uCallPredSrc
	IMG_BOOL bCallPredNegate
	{
		PCODEBLOCK psDefnBlock
		CALLDATA sSavedCallData
		PUNIFLEX_INST psInst
		{
			PINST psInst
			PCODEBLOCK psPrologBlock
			PCODEBLOCK psEpilogBlock
			IMG_UINT32 uLinkSaveTemp
		}
		{
		}
	}
	{
		{
			IMG_UINT32 uCtr
			{
				IMG_UINT32 uRet
			}
		}
	}
}


// function
void ConvertInstToIntermediate(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psCodeBlockList
	PUNIFLEX_INST psSrc
	IMG_BOOL bConditional
	IMG_BOOL bStaticCond
	)
{
	UF_REGFORMAT eFmt
	PCODEBLOCK psCodeBlock
	{
		IMG_UINT32 uNumDests
		{
		}
		{
		}
		{
		}
	}
	{
	}
	{
	}
	{
	}
}


// function PC=<0x7436c;0x75cb0>
PUNIFLEX_INST ConvertToBlock(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psProg
	PUNIFLEX_INST psFirstInst
	PCODEBLOCKLIST psList
	PCALLDATA psCallData
	IMG_BOOL bConditional
	IMG_BOOL bStaticCond
	BREAKTYPE eBreakType
	UF_OPCODE eTerminate0
	UF_OPCODE eTerminate1
	UF_OPCODE eTerminate2
	)
{
	PUNIFLEX_INST psInst
	{
		PCODEBLOCK psBreakBlock
		IMG_UINT32 uBreakPredSrc
		IMG_BOOL bBreakPredNegate
		// inlined
		// external function
		void UscAbort(
			IMG_PVOID pvState
			IMG_UINT32 uError
			IMG_PCHAR pcErrorStr
			IMG_PCHAR pszFile
			IMG_UINT32 uLine
			)
		{
			const PINTERMEDIATE_STATE psState
		}

		{
			UF_REGISTER* psReg1
			UF_REGISTER* psReg2
			IMG_BOOL bConstTest
			// inlined
			// function
			IMG_BOOL UFRegIsConst(
				UF_REGISTER* psReg
				)
			{
			}

			// inlined
			// function
			IMG_BOOL UFRegIsConst(
				UF_REGISTER* psReg
				)
			{
			}

		}
		// inlined
		// external function
		PCODEBLOCK AddCodeBlockToTail(
			PINTERMEDIATE_STATE psState
			PCODEBLOCKLIST psList
			IMG_UINT32 uType
			)
		{
			PCODEBLOCK psNewBlock
			{
				IMG_UINT32 uType
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
				}
			}
		}

	}
	// inlined
	// external function
	PCODEBLOCK AddBasicBlockToTail(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psList
		)
	{
		{
			PCODEBLOCK psBasicBlock
			{
				IMG_UINT32 uType
				PCODEBLOCKLIST psList
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						IMG_UINT32 uType
						PINTERMEDIATE_STATE psState
						{
							PCODEBLOCK psNewBlock
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
						}
					}
				}
			}
		}
	}

	// inlined
	// function
	void ConvertInstToIntermediate(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psCodeBlockList
		PUNIFLEX_INST psSrc
		IMG_BOOL bConditional
		IMG_BOOL bStaticCond
		)
	{
		UF_REGFORMAT eFmt
		PCODEBLOCK psCodeBlock
		{
			IMG_UINT32 uNumDests
			{
			}
			{
			}
			{
			}
		}
		{
		}
		{
		}
		{
		}
	}

	// inlined
	// function
	PUNIFLEX_INST ConvertSwitch(
		PINTERMEDIATE_STATE psState
		PUNIFLEX_INST psProg
		PUNIFLEX_INST psFirstInst
		PCODEBLOCKLIST psList
		PCALLDATA psCallData
		)
	{
		IMG_UINT32 uCaseCount
		PUNIFLEX_INST psEndSwitchInst
		PCODEBLOCK psCodeBlock
		ARG sSwitchArg
		PCODEBLOCK psBasicBlock
		IMG_BOOL bSavedInConditional
		PINPUT_SWITCH_CASE psInCases
		IMG_UINT32 uDefaultCase
		IMG_UINT32 uCase
		{
			PCODEBLOCK psTestBasicBlock
			PSWITCHCASE psOutCase
		}
	}

	{
		PCODEBLOCK psContinueBlock
		IMG_UINT32 uContinuePredSrc
		IMG_BOOL bContinuePredNegate
		// inlined
		// external function
		PCODEBLOCK AddCodeBlockToTail(
			PINTERMEDIATE_STATE psState
			PCODEBLOCKLIST psList
			IMG_UINT32 uType
			)
		{
			PCODEBLOCK psNewBlock
			{
				IMG_UINT32 uType
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
				}
			}
		}

		// inlined
		// external function
		void GetPredicate(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puPredSrc
			IMG_PBOOL pbPredNegate
			IMG_UINT32 uPredicate
			IMG_UINT32 uChan
			)
		{
			IMG_UINT32 uPredIdx
			IMG_UINT32 uScalarPredSrc
			{
				IMG_UINT32 uPredComp
			}
		}

	}
	{
		IMG_BOOL bSavedData
	}
	{
		PCODEBLOCK psRetBlock
		IMG_BOOL bConditional
		IMG_UINT32 uRetPredSrc
		IMG_BOOL bRetPredNegate
		// inlined
		// external function
		PCODEBLOCK AddCodeBlockToTail(
			PINTERMEDIATE_STATE psState
			PCODEBLOCKLIST psList
			IMG_UINT32 uType
			)
		{
			PCODEBLOCK psNewBlock
			{
				IMG_UINT32 uType
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
					{
						PCODEBLOCK psBlock
						PCODEBLOCKLIST psList
					}
				}
			}
		}

		// inlined
		// external function
		PCODEBLOCK AddBasicBlockToTail(
			PINTERMEDIATE_STATE psState
			PCODEBLOCKLIST psList
			)
		{
			{
				PCODEBLOCK psBasicBlock
				{
					IMG_UINT32 uType
					PCODEBLOCKLIST psList
					PINTERMEDIATE_STATE psState
					{
						PCODEBLOCK psNewBlock
						{
							IMG_UINT32 uType
							PINTERMEDIATE_STATE psState
							{
								PCODEBLOCK psNewBlock
								{
									PCODEBLOCK psBlock
									PCODEBLOCKLIST psList
								}
								{
									PCODEBLOCK psBlock
									PCODEBLOCKLIST psList
								}
							}
						}
					}
				}
			}
		}

	}
	// inlined
	// function
	PUNIFLEX_INST ConvertCall(
		PINTERMEDIATE_STATE psState
		PUNIFLEX_INST psProg
		PUNIFLEX_INST psFirstInst
		PCODEBLOCKLIST psList
		PCALLDATA psCallData
		)
	{
		IMG_UINT32 uInputLabel
		IMG_UINT32 uLabel
		PCODEBLOCK psCodeBlock
		IMG_UINT32 uCallPredSrc
		IMG_BOOL bCallPredNegate
		{
			PCODEBLOCK psDefnBlock
			CALLDATA sSavedCallData
			PUNIFLEX_INST psInst
			{
				PINST psInst
				PCODEBLOCK psPrologBlock
				PCODEBLOCK psEpilogBlock
				IMG_UINT32 uLinkSaveTemp
			}
			{
			}
		}
		{
			{
				IMG_UINT32 uCtr
				{
					IMG_UINT32 uRet
				}
			}
		}
	}

	// inlined
	// external function
	PUNIFLEX_INST SkipInstBlock(
		PUNIFLEX_INST psFirstInst
		UF_REGTYPE eTerminate0
		UF_REGTYPE eTerminate1
		UF_REGTYPE eTerminate2
		)
	{
		IMG_UINT32 uNesting
		PUNIFLEX_INST psCurr
		{
			UF_REGTYPE eInstType
		}
		{
			UF_REGTYPE eInstType
		}
	}

}


// function
IMG_BOOL SetupIterations(
	PINTERMEDIATE_STATE psState
	)
{
	IMG_UINT32 i
}


// function
void GetMaximumInputRegisterNumber(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psProg
	)
{
	IMG_UINT32 uInputTempRegisterCount
	PUNIFLEX_INST psInst
	{
		IMG_UINT32 uDest
		IMG_UINT32 uArg
		{
			PUF_REGISTER psDest
		}
		{
			IMG_UINT32 uLimit
		}
	}
}


// function
void ExpandRelativeIndexAndMacro(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psOrigInst
	PINPUT_PROGRAM psProg
	)
{
	PUNIFLEX_INST psInstCopy
	IMG_UINT32 uExpandedInstrsCount
	PUNIFLEX_INST[5] ppSExpandedInstrs
	IMG_UINT32[4] puLoadedIndxReg
	IMG_BYTE[4] pbyLoadedIndxRegChan
	IMG_UINT32 uReg
	IMG_UINT32 uNumDests
	{
		PUF_REGISTER psReg
		IMG_UINT32 uAddrRegChan
		{
			PUNIFLEX_INST psMovInst
			{
				{
					IMG_UINT32 uSrc
				}
			}
		}
		{
			{
				IMG_UINT32 uI
			}
		}
	}
	{
		IMG_UINT32 uInstrNum
	}
	const IMG_UINT16[4] REPLICATE_SWIZ
	const UFREG_RELATIVEINDEX[4] RELATIVEINDEX_BY_CHAN
}


// function
void InlineFunction(
	PINTERMEDIATE_STATE psState
	PCODEBLOCKLIST psCallList
	PCODEBLOCK psCall
	PCODEBLOCK psFunc
	)
{
	PCODEBLOCK psStart
	PCODEBLOCK psEnd
	IMG_BOOL bHasEarlyExit
	{
		PCODEBLOCK psPreCall
		{
			PINST psHead
			PINST psTail
			IMG_UINT32 uInstCount
		}
	}
}


// function PC=<0x75cb0;0x77194>
IMG_UINT32 ConvertToIntermediate(
	const PUNIFLEX_INST psOrigProg
	PINTERMEDIATE_STATE psState
	)
{
	PUNIFLEX_INST psOrigInst
	IMG_UINT32 i
	IMG_UINT32 j
	PCALLDATA psCallData
	INPUT_PROGRAM sProg
	// inlined
	// external function
	PCODEBLOCK AllocateCodeBlock(
		PINTERMEDIATE_STATE psState
		IMG_UINT32 uType
		)
	{
		PCODEBLOCK psNewBlock
		{
		}
		{
		}
	}

	// inlined
	// function
	IMG_BOOL SetupIterations(
		PINTERMEDIATE_STATE psState
		)
	{
		IMG_UINT32 i
	}

	// inlined
	// function
	void GetMaximumInputRegisterNumber(
		PINTERMEDIATE_STATE psState
		PUNIFLEX_INST psProg
		)
	{
		IMG_UINT32 uInputTempRegisterCount
		PUNIFLEX_INST psInst
		{
			IMG_UINT32 uDest
			IMG_UINT32 uArg
			{
				PUF_REGISTER psDest
			}
			{
				IMG_UINT32 uLimit
			}
		}
	}

	// inlined
	// function
	void ExpandRelativeIndexAndMacro(
		PINTERMEDIATE_STATE psState
		PUNIFLEX_INST psOrigInst
		PINPUT_PROGRAM psProg
		)
	{
		PUNIFLEX_INST psInstCopy
		IMG_UINT32 uExpandedInstrsCount
		PUNIFLEX_INST[5] ppSExpandedInstrs
		IMG_UINT32[4] puLoadedIndxReg
		IMG_BYTE[4] pbyLoadedIndxRegChan
		IMG_UINT32 uReg
		IMG_UINT32 uNumDests
		{
			PUF_REGISTER psReg
			IMG_UINT32 uAddrRegChan
			{
				PUNIFLEX_INST psMovInst
				{
					{
						IMG_UINT32 uSrc
					}
				}
			}
			{
				{
					IMG_UINT32 uI
				}
			}
		}
		{
			IMG_UINT32 uInstrNum
		}
		const IMG_UINT16[4] REPLICATE_SWIZ
		const UFREG_RELATIVEINDEX[4] RELATIVEINDEX_BY_CHAN
	}

	// inlined
	// external function
	IMG_PVOID UscAlloc(
		PINTERMEDIATE_STATE psState
		IMG_UINT32 uSize
		)
	{
		IMG_PVOID pvBlock
		PUSC_ALLOC_HEADER psHeader
	}

	// inlined
	// external function
	IMG_PVOID UscAlloc(
		PINTERMEDIATE_STATE psState
		IMG_UINT32 uSize
		)
	{
		IMG_PVOID pvBlock
		PUSC_ALLOC_HEADER psHeader
	}

	{
		PINST psInst
		UF_REGISTER sSrc
		// inlined
		// external function
		void UscAbort(
			IMG_PVOID pvState
			IMG_UINT32 uError
			IMG_PCHAR pcErrorStr
			IMG_PCHAR pszFile
			IMG_UINT32 uLine
			)
		{
			const PINTERMEDIATE_STATE psState
		}

		// inlined
		// external function
		void InsertInstBefore(
			PINTERMEDIATE_STATE psState
			PCODEBLOCK psCodeBlock
			PINST psInstToInsert
			PINST psInstToInsertBefore
			)
		{
		}

	}
	{
		IMG_UINT32 uLabel
		// inlined
		// external function
		IMG_PVOID UscAlloc(
			PINTERMEDIATE_STATE psState
			IMG_UINT32 uSize
			)
		{
			IMG_PVOID pvBlock
			PUSC_ALLOC_HEADER psHeader
		}

	}
	// inlined
	// external function
	IMG_BOOL ResizeArray(
		PINTERMEDIATE_STATE psState
		IMG_PVOID psArray
		IMG_UINT32 uOldSize
		IMG_UINT32 uNewSize
		IMG_PVOID* ppsNew
		)
	{
		IMG_PVOID psNew
		{
			IMG_UINT32 uSize
			PINTERMEDIATE_STATE psState
			{
				IMG_PVOID pvBlock
				PUSC_ALLOC_HEADER psHeader
			}
		}
		{
			IMG_PVOID pvBlock
			PINTERMEDIATE_STATE psState
			{
				PUSC_ALLOC_HEADER psHeader
			}
		}
	}

	{
		PUNIFLEX_INST psCurr
		PUNIFLEX_INST psNext
		// inlined
		// external function
		void _UscFree(
			PINTERMEDIATE_STATE psState
			IMG_PVOID pvBlock
			)
		{
			PUSC_ALLOC_HEADER psHeader
		}

	}
	{
		const IMG_UINT32 uNumLabels
		{
			PCODEBLOCK psFunc
			PCODEBLOCK psCall
			PCODEBLOCKLIST psCallList
			// inlined
			// function
			void InlineFunction(
				PINTERMEDIATE_STATE psState
				PCODEBLOCKLIST psCallList
				PCODEBLOCK psCall
				PCODEBLOCK psFunc
				)
			{
				PCODEBLOCK psStart
				PCODEBLOCK psEnd
				IMG_BOOL bHasEarlyExit
				{
					PCODEBLOCK psPreCall
					{
						PINST psHead
						PINST psTail
						IMG_UINT32 uInstCount
					}
				}
			}

		}
	}
	// inlined
	// external function
	PCODEBLOCK AddBasicBlockToTail(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psList
		)
	{
		{
			PCODEBLOCK psBasicBlock
			{
				IMG_UINT32 uType
				PCODEBLOCKLIST psList
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						IMG_UINT32 uType
						PINTERMEDIATE_STATE psState
						{
							PCODEBLOCK psNewBlock
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
						}
					}
				}
			}
		}
	}

	{
		PCODEBLOCK psLastBlock
		{
			PINST psEmitInst
			// inlined
			// external function
			void InsertInst(
				PINTERMEDIATE_STATE psState
				PCODEBLOCK psCodeBlock
				PINST psInstToInsert
				)
			{
				{
					PINST psInstToInsertBefore
					PINST psInstToInsert
					PCODEBLOCK psCodeBlock
					PINTERMEDIATE_STATE psState
				}
			}

		}
		{
			PINST psEmitInst
			// inlined
			// external function
			void InsertInst(
				PINTERMEDIATE_STATE psState
				PCODEBLOCK psCodeBlock
				PINST psInstToInsert
				)
			{
				{
					PINST psInstToInsertBefore
					PINST psInstToInsert
					PCODEBLOCK psCodeBlock
					PINTERMEDIATE_STATE psState
				}
			}

			// inlined
			// function
			void SetBit(
				IMG_UINT32* auArr
				IMG_UINT32 uBit
				IMG_UINT32 uBitData
				)
			{
			}

		}
	}
	{
		IMG_UINT32 uOutput
		IMG_UINT32 uChan
		PCODEBLOCK psLastBlock
		{
			IMG_UINT32 uSat
			{
				ARG sDest
			}
		}
		// inlined
		// external function
		void UscAbort(
			IMG_PVOID pvState
			IMG_UINT32 uError
			IMG_PCHAR pcErrorStr
			IMG_PCHAR pszFile
			IMG_UINT32 uLine
			)
		{
			const PINTERMEDIATE_STATE psState
		}

	}
	// inlined
	// function
	void MergeBasicBlocks(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psBlockList
		)
	{
		PCODEBLOCK psBlock
		{
			PCODEBLOCK psLastBlock
			{
				{
					PCODEBLOCK psPrevBlock
				}
			}
		}
		{
			{
				PCODEBLOCK psBlock
				{
					PCODEBLOCK psLastBlock
				}
			}
		}
	}

	{
		IMG_UINT32 uReg
		PCODEBLOCK psLastBlock
		// inlined
		// external function
		void UscAbort(
			IMG_PVOID pvState
			IMG_UINT32 uError
			IMG_PCHAR pcErrorStr
			IMG_PCHAR pszFile
			IMG_UINT32 uLine
			)
		{
			const PINTERMEDIATE_STATE psState
		}

		{
			PINST psMoveInst
			// inlined
			// external function
			void InsertInst(
				PINTERMEDIATE_STATE psState
				PCODEBLOCK psCodeBlock
				PINST psInstToInsert
				)
			{
				{
					PINST psInstToInsertBefore
					PINST psInstToInsert
					PCODEBLOCK psCodeBlock
					PINTERMEDIATE_STATE psState
				}
			}

		}
	}
	{
		PINST psInst
		// inlined
		// function
		void SetBit(
			IMG_UINT32* auArr
			IMG_UINT32 uBit
			IMG_UINT32 uBitData
			)
		{
		}

		// inlined
		// external function
		void InsertInstBefore(
			PINTERMEDIATE_STATE psState
			PCODEBLOCK psCodeBlock
			PINST psInstToInsert
			PINST psInstToInsertBefore
			)
		{
		}

	}
	{
		IMG_UINT32 uSurf
		IMG_UINT32 uChan
	}
	// inlined
	// external function
	void _UscFree(
		PINTERMEDIATE_STATE psState
		IMG_PVOID pvBlock
		)
	{
		PUSC_ALLOC_HEADER psHeader
	}

}


// function
void InitialiseIndexableTemps(
	PINTERMEDIATE_STATE psState
	)
{
	const IMG_UINT32 uNumTempArrays
}


// function
void OptimizeIntegerBlock(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psBlock
	)
{
	IMG_BOOL bChanges
	{
		IMG_BOOL bEliminateMoves
	}
}


// function
void AddFixForBRN21752(
	PINTERMEDIATE_STATE psState
	)
{
	PCODEBLOCK psBlock
	{
		PINST psInst
		{
			IMG_UINT32 uTempRegNum
			UF_REGFORMAT eSrcRegFmt
			PINST psPackInst
			{
				ARG sTemp
			}
			{
				ARG sTemp
			}
			{
			}
		}
	}
}


// function
void CalculateNesting(
	PINTERMEDIATE_STATE psState
	)
{
}


// function PC=<0x77194;0x77fa8>
IMG_UINT32 CompileShader(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psSWProc
	)
{
	PCODEBLOCK psBlock
	IMG_UINT32 uErr
	{
		PUSC_ALLOC_HEADER psBlock
	}
	// inlined
	// function
	void InitialiseIndexableTemps(
		PINTERMEDIATE_STATE psState
		)
	{
		const IMG_UINT32 uNumTempArrays
	}

	{
		IMG_UINT32 uErr
	}
	// inlined
	// function
	void MergeBasicBlocks(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psBlockList
		)
	{
		PCODEBLOCK psBlock
		{
			PCODEBLOCK psLastBlock
			{
				{
					PCODEBLOCK psPrevBlock
				}
			}
		}
		{
			{
				PCODEBLOCK psBlock
				{
					PCODEBLOCK psLastBlock
				}
			}
		}
	}

	// inlined
	// function
	void OptimizeIntegerBlock(
		PINTERMEDIATE_STATE psState
		PCODEBLOCK psBlock
		)
	{
		IMG_BOOL bChanges
		{
			IMG_BOOL bEliminateMoves
		}
	}

	// inlined
	// function
	void MergeBasicBlocks(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psBlockList
		)
	{
		PCODEBLOCK psBlock
		{
			PCODEBLOCK psLastBlock
			{
				{
					PCODEBLOCK psPrevBlock
				}
			}
		}
		{
			{
				PCODEBLOCK psBlock
				{
					PCODEBLOCK psLastBlock
				}
			}
		}
	}

	{
		IMG_BOOL bTrySplit
	}
	// inlined
	// function
	void AddFixForBRN21752(
		PINTERMEDIATE_STATE psState
		)
	{
		PCODEBLOCK psBlock
		{
			PINST psInst
			{
				IMG_UINT32 uTempRegNum
				UF_REGFORMAT eSrcRegFmt
				PINST psPackInst
				{
					ARG sTemp
				}
				{
					ARG sTemp
				}
				{
				}
			}
		}
	}

	// inlined
	// external function
	void PurgeChunkMem(
		PINTERMEDIATE_STATE psState
		)
	{
		USC_PCHUNK psCurr
		USC_PCHUNK psNext
		{
			USC_PCHUNK psChunk
			PINTERMEDIATE_STATE psState
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}
		{
			USC_PCHUNK psChunk
			PINTERMEDIATE_STATE psState
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
			{
				IMG_PVOID pvBlock
				PINTERMEDIATE_STATE psState
				{
					PUSC_ALLOC_HEADER psHeader
				}
			}
		}
	}

	// inlined
	// function
	void CalculateNesting(
		PINTERMEDIATE_STATE psState
		)
	{
	}

	// inlined
	// function
	void OptimizeIntegerBlock(
		PINTERMEDIATE_STATE psState
		PCODEBLOCK psBlock
		)
	{
		IMG_BOOL bChanges
		{
			IMG_BOOL bEliminateMoves
		}
	}

}


// function
void InitState(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uFlags
	IMG_PUINT32 puTextureDimensions
	PUNIFLEX_CONSTDEF psConstants
	PUNIFLEX_PROGRAM_PARAMETERS psSAOffsets
	IMG_UINT32 uProjectedCoordinateMask
	PUNIFLEX_TEXFORM psTextures
	IMG_UINT32 uGammaStages
	IMG_UINT32 uPreambleCount
	IMG_UINT32 uNonDrTextureReadLimit
	)
{
	IMG_UINT32 uSamplerIdx
	IMG_UINT32 uI
}


// external function PC=<0x77fa8;0x78334>
IMG_UINT32 PVRUniFlexCompileToUspBin(
	IMG_PVOID pvContext
	IMG_UINT32 uFlags
	PUNIFLEX_INST psSWProc
	IMG_PUINT32 puTextureDimensions
	PUNIFLEX_CONSTDEF psConstants
	PUNIFLEX_PROGRAM_PARAMETERS psSAOffsets
	IMG_UINT32 uProjectedCoordinateMask
	PUNIFLEX_TEXFORM psTextures
	IMG_UINT32 uGammaStages
	IMG_UINT32 uPreambleCount
	IMG_UINT32 uNonDrTextureReadLimit
	PUSP_PC_SHADER* ppsPCShader
	)
{
	PINTERMEDIATE_STATE psState
	PUSP_PC_SHADER psPCShader
	IMG_UINT32 uErr
	PVRUniFlexCompileToUspBinExit: \\ label @0x782d8
	// inlined
	// function
	void InitState(
		PINTERMEDIATE_STATE psState
		IMG_UINT32 uFlags
		IMG_PUINT32 puTextureDimensions
		PUNIFLEX_CONSTDEF psConstants
		PUNIFLEX_PROGRAM_PARAMETERS psSAOffsets
		IMG_UINT32 uProjectedCoordinateMask
		PUNIFLEX_TEXFORM psTextures
		IMG_UINT32 uGammaStages
		IMG_UINT32 uPreambleCount
		IMG_UINT32 uNonDrTextureReadLimit
		)
	{
		IMG_UINT32 uSamplerIdx
		IMG_UINT32 uI
	}

	// inlined
	// external function
	void UscAbort(
		IMG_PVOID pvState
		IMG_UINT32 uError
		IMG_PCHAR pcErrorStr
		IMG_PCHAR pszFile
		IMG_UINT32 uLine
		)
	{
		const PINTERMEDIATE_STATE psState
	}

}


// function
void CheckConditional(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psFirstInst
	IMG_PBOOL pbConstTest
	IMG_PBOOL pbCompileTimeTest
	IMG_PBOOL pbTestResult
	)
{
	{
		UFREG_COMPOP eCompOp
		UF_REGISTER* psReg1
		UF_REGISTER* psReg2
		{
		}
		{
		}
	}
	{
		PUNIFLEX_INST psPrevInst
		IMG_UINT32 uPredChan
		{
			UFREG_COMPOP eCompOp
			UF_REGISTER* psReg1
			UF_REGISTER* psReg2
			{
			}
			{
			}
		}
		{
		}
	}
}


// function
PUNIFLEX_INST SkipIf(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psInst
	IMG_PBOOL pbKillInst
	IMG_PBOOL pbDepthInst
	)
{
	IMG_UINT32 uEndIfCount
	{
	}
}


// function PC=<0x78334;0x78b98>
PUNIFLEX_INST ConvertConditional(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psProg
	PUNIFLEX_INST psFirstInst
	PCODEBLOCKLIST psList
	PCALLDATA psCallData
	IMG_BOOL bConditional
	IMG_BOOL bStaticCond
	BREAKTYPE eBreakType
	)
{
	PUNIFLEX_INST psInst
	PCODEBLOCK psCodeBlock
	IMG_BOOL bConstTest
	IMG_BOOL bCompileTimeTest
	IMG_BOOL bTestResult
	IMG_BOOL bSavedData
	IMG_UINT32 uCondPredSrc
	IMG_BOOL bCondPredNegate
	IMG_BOOL bStatic
	// inlined
	// function
	void CheckConditional(
		PINTERMEDIATE_STATE psState
		PUNIFLEX_INST psFirstInst
		IMG_PBOOL pbConstTest
		IMG_PBOOL pbCompileTimeTest
		IMG_PBOOL pbTestResult
		)
	{
		{
			UFREG_COMPOP eCompOp
			UF_REGISTER* psReg1
			UF_REGISTER* psReg2
			{
			}
			{
			}
		}
		{
			PUNIFLEX_INST psPrevInst
			IMG_UINT32 uPredChan
			{
				UFREG_COMPOP eCompOp
				UF_REGISTER* psReg1
				UF_REGISTER* psReg2
				{
				}
				{
				}
			}
			{
			}
		}
	}

	{
		IMG_BOOL bKillInSkippedCode
		IMG_BOOL bDepthWriteInSkippedCode
		// inlined
		// function
		PUNIFLEX_INST SkipIf(
			PINTERMEDIATE_STATE psState
			PUNIFLEX_INST psInst
			IMG_PBOOL pbKillInst
			IMG_PBOOL pbDepthInst
			)
		{
			IMG_UINT32 uEndIfCount
			{
			}
		}

		// inlined
		// function
		PUNIFLEX_INST SkipIf(
			PINTERMEDIATE_STATE psState
			PUNIFLEX_INST psInst
			IMG_PBOOL pbKillInst
			IMG_PBOOL pbDepthInst
			)
		{
			IMG_UINT32 uEndIfCount
			{
			}
		}

	}
	// inlined
	// external function
	PCODEBLOCK InsertConditionalBlock(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psList
		IMG_UINT32 uCondPredSrc
		IMG_BOOL bCondPredNegate
		IMG_BOOL bStatic
		)
	{
		PCODEBLOCK psCodeBlock
		{
			IMG_UINT32 uType
			PCODEBLOCKLIST psList
			PINTERMEDIATE_STATE psState
			{
				PCODEBLOCK psNewBlock
				{
					IMG_UINT32 uType
					PINTERMEDIATE_STATE psState
					{
						PCODEBLOCK psNewBlock
						{
							PCODEBLOCK psBlock
							PCODEBLOCKLIST psList
						}
						{
							PCODEBLOCK psBlock
							PCODEBLOCKLIST psList
						}
					}
				}
			}
		}
	}

	// inlined
	// external function
	PCODEBLOCK AddBasicBlockToTail(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psList
		)
	{
		{
			PCODEBLOCK psBasicBlock
			{
				IMG_UINT32 uType
				PCODEBLOCKLIST psList
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						IMG_UINT32 uType
						PINTERMEDIATE_STATE psState
						{
							PCODEBLOCK psNewBlock
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
						}
					}
				}
			}
		}
	}

	{
		PCODEBLOCK psTail
	}
	// inlined
	// external function
	PCODEBLOCK AddBasicBlockToTail(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psList
		)
	{
		{
			PCODEBLOCK psBasicBlock
			{
				IMG_UINT32 uType
				PCODEBLOCKLIST psList
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						IMG_UINT32 uType
						PINTERMEDIATE_STATE psState
						{
							PCODEBLOCK psNewBlock
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
						}
					}
				}
			}
		}
	}

}


// function
void AddD3DLoopProlog(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psFirstInst
	PCODEBLOCKLIST psList
	IMG_PUINT32 puLoopCounter
	IMG_PUINT32 puSavedMemIndex
	IMG_PUINT32 puSavedRegIndex
	)
{
	PCODEBLOCK psBasicBlock
	PINST psUseInst
	IMG_UINT32 uArg
	{
		ARG sLoopAddrStart
		{
		}
	}
}


// function
void AddD3DLoopEpilog(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psFirstInst
	PCODEBLOCKLIST psLoopList
	IMG_UINT32 uLoopCounter
	IMG_UINT32 uSavedMemIndex
	IMG_UINT32 uSavedRegIndex
	)
{
	PCODEBLOCK psBasicBlock
	PINST psUseInst
	IMG_UINT32 uArg
}


// function PC=<0x78b98;0x79614>
PUNIFLEX_INST ConvertLoopBlock(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_INST psProg
	PUNIFLEX_INST psFirstInst
	PCODEBLOCKLIST psList
	PCALLDATA psCallData
	)
{
	PUNIFLEX_INST psInst
	UF_OPCODE eTerm1
	UF_OPCODE eTerm2
	PCODEBLOCK psCodeBlock
	IMG_BOOL bD3DLoop
	IMG_BOOL bStaticLoopCond
	IMG_UINT32 uD3DLoopCounter
	IMG_UINT32 uSavedD3DRegIndex
	IMG_UINT32 uSavedD3DMemIndex
	// inlined
	// function
	void AddD3DLoopProlog(
		PINTERMEDIATE_STATE psState
		PUNIFLEX_INST psFirstInst
		PCODEBLOCKLIST psList
		IMG_PUINT32 puLoopCounter
		IMG_PUINT32 puSavedMemIndex
		IMG_PUINT32 puSavedRegIndex
		)
	{
		PCODEBLOCK psBasicBlock
		PINST psUseInst
		IMG_UINT32 uArg
		{
			ARG sLoopAddrStart
			{
			}
		}
	}

	// inlined
	// external function
	PCODEBLOCK AddBasicBlockToTail(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psList
		)
	{
		{
			PCODEBLOCK psBasicBlock
			{
				IMG_UINT32 uType
				PCODEBLOCKLIST psList
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						IMG_UINT32 uType
						PINTERMEDIATE_STATE psState
						{
							PCODEBLOCK psNewBlock
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
						}
					}
				}
			}
		}
	}

	// inlined
	// external function
	PCODEBLOCK AddLoopBlock(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psList
		)
	{
		PCODEBLOCK psCodeBlock
		{
			IMG_UINT32 uType
			PCODEBLOCKLIST psList
			PINTERMEDIATE_STATE psState
			{
				PCODEBLOCK psNewBlock
				{
					IMG_UINT32 uType
					PINTERMEDIATE_STATE psState
					{
						PCODEBLOCK psNewBlock
						{
							PCODEBLOCK psBlock
							PCODEBLOCKLIST psList
						}
						{
							PCODEBLOCK psBlock
							PCODEBLOCKLIST psList
						}
					}
				}
			}
		}
	}

	// inlined
	// external function
	void GetPredicate(
		PINTERMEDIATE_STATE psState
		IMG_PUINT32 puPredSrc
		IMG_PBOOL pbPredNegate
		IMG_UINT32 uPredicate
		IMG_UINT32 uChan
		)
	{
		IMG_UINT32 uPredIdx
		IMG_UINT32 uScalarPredSrc
		{
			IMG_UINT32 uPredComp
		}
	}

	// inlined
	// external function
	PCODEBLOCK AddBasicBlockToTail(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psList
		)
	{
		{
			PCODEBLOCK psBasicBlock
			{
				IMG_UINT32 uType
				PCODEBLOCKLIST psList
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						IMG_UINT32 uType
						PINTERMEDIATE_STATE psState
						{
							PCODEBLOCK psNewBlock
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
						}
					}
				}
			}
		}
	}

	// inlined
	// external function
	void GetPredicate(
		PINTERMEDIATE_STATE psState
		IMG_PUINT32 puPredSrc
		IMG_PBOOL pbPredNegate
		IMG_UINT32 uPredicate
		IMG_UINT32 uChan
		)
	{
		IMG_UINT32 uPredIdx
		IMG_UINT32 uScalarPredSrc
		{
			IMG_UINT32 uPredComp
		}
	}

	// inlined
	// function
	void AddD3DLoopEpilog(
		PINTERMEDIATE_STATE psState
		PUNIFLEX_INST psFirstInst
		PCODEBLOCKLIST psLoopList
		IMG_UINT32 uLoopCounter
		IMG_UINT32 uSavedMemIndex
		IMG_UINT32 uSavedRegIndex
		)
	{
		PCODEBLOCK psBasicBlock
		PINST psUseInst
		IMG_UINT32 uArg
	}

	// inlined
	// external function
	PCODEBLOCK AddBasicBlockToTail(
		PINTERMEDIATE_STATE psState
		PCODEBLOCKLIST psList
		)
	{
		{
			PCODEBLOCK psBasicBlock
			{
				IMG_UINT32 uType
				PCODEBLOCKLIST psList
				PINTERMEDIATE_STATE psState
				{
					PCODEBLOCK psNewBlock
					{
						IMG_UINT32 uType
						PINTERMEDIATE_STATE psState
						{
							PCODEBLOCK psNewBlock
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
							{
								PCODEBLOCK psBlock
								PCODEBLOCKLIST psList
							}
						}
					}
				}
			}
		}
	}

}


struct _IO_FILE* stdin

struct _IO_FILE* stdout

const INPUT_INST_DESC[107] g_asInputInstDesc

const INST_DESC[126] g_psInstDesc

const IMG_UINT32[16] g_auSetBitCount

const IMG_BOOL[16] g_abSingleBitSet

const IMG_UINT32[8] g_puSwapRedAndBlueChan

const IMG_UINT32[16] g_puSwapRedAndBlueMask

const IMG_UINT32[7] g_puInvertCompOp

const IMG_UINT32[7] g_puNegateCompOp

