/*
 |            file: hw.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: <0x0;0x2b78>
 */
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 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_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

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 USE_INST

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 USEASM_CONTEXT

typedef struct _USEASM_CONTEXT* PUSEASM_CONTEXT

typedef void* IMG_PVOID

void

void

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

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 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 _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 UNIFLEX_TEXTURE_LOAD

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

struct tagUNIFLEX_CONST_LOAD {
		union {
			struct {
		IMG_UINT16 uSrcIdx // @0
		IMG_UINT16 uDestShift // @2
		IMG_UINT32 uConstsBuffNum // @4
	} s
		IMG_UINT32 uValue
	} u // @0
	IMG_UINT16 uDestIdx // @8
	UNIFLEX_CONST_FORMAT eFormat // @c
}

typedef struct tagUNIFLEX_CONST_LOAD* PUNIFLEX_CONST_LOAD

struct _UNIFLEX_HW {
	IMG_UINT32 uFlags // @0
	IMG_UINT32 uInstructionCount // @4
	IMG_UINT32 uMaximumInstructionCount // @8
	IMG_PUINT32 puInstructions // @c
	IMG_UINT32 uProgramStart // @10
	IMG_UINT32 uSAProgInstructionCount // @14
	IMG_UINT32 uSAProgMaximumInstructionCount // @18
	IMG_PUINT32 puSAProgInstructions // @1c
	IMG_UINT32 uPrimaryAttributeCount // @20
	IMG_UINT32 uTemporaryRegisterCount // @24
	IMG_UINT32 uOutputRegisterCount // @28
	IMG_UINT32 uNrNonDependentTextureLoads // @2c
	UNIFLEX_TEXTURE_LOAD[31] psNonDependentTextureLoads // @30
		struct {
		IMG_UINT32 uMaximumConstCount // @0
		IMG_UINT32 uConstCount // @4
		PUNIFLEX_CONST_LOAD psConstMap // @8
	}[18] psMemRemappingForConstsBuff // @410
	IMG_UINT32 uMaximumInRegisterConstCount // @4e8
	IMG_UINT32 uInRegisterConstCount // @4ec
	PUNIFLEX_CONST_LOAD psInRegisterConstMap // @4f0
	IMG_UINT32 uIndexableTempTotalSize // @4f4
	IMG_INT32 iSAAddressAdjust // @4f8
	IMG_UINT32 uFeedbackPhase0End // @4fc
	IMG_UINT32 uFeedbackPhase1Start // @500
	PUNIFLEX_PROGRAM_PARAMETERS psProgramParameters // @504
	IMG_UINT32 uPAOutputRegNum // @508
	IMG_UINT32 uNonAnisoTextureStages // @50c
	IMG_UINT32 uSpillAreaSize // @510
	IMG_UINT32 uConstSecAttrCount // @514
	IMG_UINT32 uTextureStateSize // @518
	IMG_UINT32[4] auVSInputsUsed // @51c
	UNIFLEX_TEXTURE_UNPACK[16] asTextureUnpackFormat // @52c
}

typedef struct _UNIFLEX_HW* PUNIFLEX_HW

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

struct _USC_MEMO_ {
	IMG_PVOID pvData // @0
}

typedef struct _USC_MEMO_ USC_MEMO

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_ARRAY

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

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_PGRAPH

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

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 _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

// function
void AddC10Constant(
	PUNIFLEX_CONST_LOAD psConstLoad
	IMG_UINT32 uSrcBuf
	IMG_UINT32 uSrcIdx
	IMG_UINT32 uChan
	IMG_UINT32 uConstDestIdx
	)
{
}


// function PC=<0x0;0xc>
IMG_UINT32 UseAssemblerGetLabelAddress(
	IMG_PVOID pvContext
	IMG_UINT32 uLabel
	)
{
	PINTERMEDIATE_STATE psState
}


// function PC=<0xc;0x18>
void UseAssemblerSetLabelAddress(
	IMG_PVOID pvContext
	IMG_UINT32 uLabel
	IMG_UINT32 uAddress
	)
{
	PINTERMEDIATE_STATE psState
}


// function PC=<0x18;0x20>
IMG_PCHAR UseAssemblerGetLabelName(
	IMG_PVOID pvContext
	IMG_UINT32 uLabel
	)
{
}


// function PC=<0x20;0x1b0>
PUNIFLEX_CONST_LOAD CopyConstantTableEntry(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uConstDestIdx
	IMG_UINT32 uSrcBuffer
	IMG_UINT32 uSrcIdx
	UNIFLEX_CONST_FORMAT eSrcFormat
	PUNIFLEX_CONST_LOAD psConstLoad
	)
{
	{
		IMG_UINT32 uSrcConst
		IMG_UINT32 uSrcChan
		// inlined
		// function
		void AddC10Constant(
			PUNIFLEX_CONST_LOAD psConstLoad
			IMG_UINT32 uSrcBuf
			IMG_UINT32 uSrcIdx
			IMG_UINT32 uChan
			IMG_UINT32 uConstDestIdx
			)
		{
		}

		{
			IMG_UINT32 uChan
			// inlined
			// function
			void AddC10Constant(
				PUNIFLEX_CONST_LOAD psConstLoad
				IMG_UINT32 uSrcBuf
				IMG_UINT32 uSrcIdx
				IMG_UINT32 uChan
				IMG_UINT32 uConstDestIdx
				)
			{
			}

		}
	}
	{
		IMG_UINT32 uHalf
	}
}


// function PC=<0x1b0;0x1d8>
void UseAssemblerError(
	IMG_PVOID pvContext
	PUSE_INST psInst
	IMG_CHAR* pszFmt
	 //variable arguments
	)
{
	PINTERMEDIATE_STATE psState
}


// function PC=<0x1d8;0x260>
IMG_PVOID UseAssemblerRealloc(
	IMG_PVOID pvContext
	IMG_PVOID pvOldBuf
	IMG_UINT32 uNewSize
	IMG_UINT32 uOldSize
	)
{
	IMG_PVOID pvNewBuf
	PINTERMEDIATE_STATE psState
}


// function
IMG_PUINT32 AlignNextInst(
	PINTERMEDIATE_STATE psState
	IMG_PUINT32 puInst
	IOPCODE* peLastOpcode
	)
{
}


// function PC=<0x260;0x4f4>
IMG_PUINT32 CompileBranch(
	PINTERMEDIATE_STATE psState
	IMG_PUINT32 puInst
	IOPCODE eOpcode
	IMG_UINT32 uDestLabel
	IMG_UINT32 uPredSrc
	IMG_BOOL bPredNegate
	IMG_BOOL bAlwaysSkipped
	IMG_BOOL bSyncEnd
	IOPCODE* peLastOpcode
	)
{
	IMG_UINT32 uTempJumpDest
	IMG_UINT32 uOutSize
	// inlined
	// function
	IMG_PUINT32 AlignNextInst(
		PINTERMEDIATE_STATE psState
		IMG_PUINT32 puInst
		IOPCODE* peLastOpcode
		)
	{
	}

	// inlined
	// function
	IMG_PUINT32 AlignNextInst(
		PINTERMEDIATE_STATE psState
		IMG_PUINT32 puInst
		IOPCODE* peLastOpcode
		)
	{
	}

}


// function
IMG_PUINT32 CompileLabel(
	PINTERMEDIATE_STATE psState
	IMG_PUINT32 puInst
	IMG_UINT32 uLabelID
	IMG_BOOL bSyncEnd
	IOPCODE* peLastOpcode
	)
{
	IMG_UINT32 uOutSize
}


// function PC=<0x4f4;0x1ca8>
IMG_PUINT32 CompileBlock(
	PINTERMEDIATE_STATE psState
	PCODEBLOCK psBlock
	IMG_PUINT32 puInst
	IMG_UINT32 uBreakLabel
	IMG_UINT32 uContinueLabel
	IMG_UINT32 uFuncExitLabel
	IMG_BOOL bFunction
	IMG_BOOL bConditional
	PCODEBLOCK psLoop
	IMG_PUINT32 puSyncEndJumpDest
	IMG_PBOOL pbHadPredBreak
	IMG_PBOOL pbHadPredCont
	IOPCODE* peLastOpcode
	PUNIFLEX_HW psHw
	)
{
	{
		IMG_UINT32 uCase
		IMG_UINT32 uCaseBodyDestStart
		IMG_UINT32 uSwitchEndDest
		IMG_UINT32 uDefaultLabel
		{
			PSWITCHCASE psCase
			// inlined
			// function
			IMG_PUINT32 CompileLabel(
				PINTERMEDIATE_STATE psState
				IMG_PUINT32 puInst
				IMG_UINT32 uLabelID
				IMG_BOOL bSyncEnd
				IOPCODE* peLastOpcode
				)
			{
				IMG_UINT32 uOutSize
			}

		}
		{
			PSWITCHCASE psCase
		}
		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

	}
	{
		IMG_UINT32 uEpilogLabel
		IMG_BOOL bHasEpilog
		IMG_BOOL bHasReset
		IMG_BOOL bHasEarlyExit
		IMG_BOOL bInlined
		IMG_BOOL bInFunction
		IMG_BOOL bInConditional
		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

	}
	{
		IMG_UINT32 uDestLabel
	}
	{
		IMG_UINT32 uSkipLabel
		IMG_UINT32 uRestartLabel
		IMG_UINT32 uContinueLabel
		IMG_UINT32 uSyncEndJumpDest
		IMG_BOOL bHadPredBreak
		IMG_BOOL bHadPredCont
		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

		{
			IMG_BOOL bAtLeastOneLoop
		}
		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

		{
			IMG_BOOL bHadPredBreakTail
			// inlined
			// function
			IMG_PUINT32 CompileLabel(
				PINTERMEDIATE_STATE psState
				IMG_PUINT32 puInst
				IMG_UINT32 uLabelID
				IMG_BOOL bSyncEnd
				IOPCODE* peLastOpcode
				)
			{
				IMG_UINT32 uOutSize
			}

		}
		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

	}
	{
		IMG_UINT32 uDestLabel
	}
	{
		PINST psInst
		{
			USE_INST[2] asOut
		}
	}
	{
		IMG_UINT32 uDestLabel
		PCODEBLOCK psFuncBody
		{
			IMG_UINT32 uCallSkipLabel
			// inlined
			// function
			IMG_PUINT32 CompileLabel(
				PINTERMEDIATE_STATE psState
				IMG_PUINT32 puInst
				IMG_UINT32 uLabelID
				IMG_BOOL bSyncEnd
				IOPCODE* peLastOpcode
				)
			{
				IMG_UINT32 uOutSize
			}

			// inlined
			// function
			IMG_PUINT32 CompileLabel(
				PINTERMEDIATE_STATE psState
				IMG_PUINT32 puInst
				IMG_UINT32 uLabelID
				IMG_BOOL bSyncEnd
				IOPCODE* peLastOpcode
				)
			{
				IMG_UINT32 uOutSize
			}

		}
	}
	{
		IMG_UINT32 uMainJumpDest
		IMG_UINT32 uElseJumpDest
		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

	}
}


// function
void CleanupUniflexHw(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_HW psHw
	)
{
	IMG_UINT32 uConstsBuffNum
}


// function
IMG_UINT32 CopyConstantTable(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uConstCount
	USC_ARRAY* psMap
	USC_ARRAY* psFormat
	PUNIFLEX_CONST_LOAD* ppsConstLoadTable
	IMG_PUINT32 puConstCount
	IMG_PUINT32 puMaximumConstCount
	)
{
	IMG_UINT32 uConstDestIdx
	IMG_UINT32 i
	PUNIFLEX_CONST_LOAD psConstLoadTable
	PUNIFLEX_CONST_LOAD psConstLoadEntry
	{
		UNIFLEX_CONST_FORMAT eSrcFormat
		IMG_UINT32 uSrcIdx
	}
}


// function
IMG_UINT32 GetConstantTableSize(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uConstCount
	USC_ARRAY* psMap
	USC_ARRAY* psFormat
	)
{
	IMG_UINT32 i
	IMG_UINT32 uOutIdx
	{
		UNIFLEX_CONST_FORMAT eSrcFormat
		IMG_UINT32 uSrcIdx
	}
}


// function
IMG_UINT32 GetConstantTableEntrySize(
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uSrcIdx
	UNIFLEX_CONST_FORMAT eSrcFormat
	)
{
	{
		IMG_UINT32 uSrcChan
	}
}


// function
IMG_UINT32 CopySAMappedConstantsTable(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_CONST_LOAD* ppsConstLoadTable
	IMG_PUINT32 puConstCount
	IMG_PUINT32 puMaximumConstCount
	)
{
	IMG_UINT32 uConstDestIdx
	IMG_UINT32 i
	PUNIFLEX_CONST_LOAD psConstLoadTable
	PUNIFLEX_CONST_LOAD psConstLoadEntry
	{
		PINREGISTER_CONST psConst
	}
}


// function
IMG_UINT32 GetConstantTableSizeForSAMappedConsts(
	PINTERMEDIATE_STATE psState
	)
{
	IMG_UINT32 i
	IMG_UINT32 uOutIdx
	{
		PINREGISTER_CONST psConst
	}
}


// external function PC=<0x1ca8;0x2b78>
IMG_UINT32 CompileToHw(
	PINTERMEDIATE_STATE psState
	PUNIFLEX_HW psHw
	)
{
	IMG_PUINT32 puUSSEInst
	IMG_PUINT32 puSAInstructions
	IMG_UINT32 i
	IMG_UINT32 uExitLabel
	IOPCODE eLastOpcode
	IMG_UINT32 uErrCode
	USEASM_CONTEXT sUseasmContext
	IMG_UINT32 uConstsBuffNum
	// inlined
	// function
	void CleanupUniflexHw(
		PINTERMEDIATE_STATE psState
		PUNIFLEX_HW psHw
		)
	{
		IMG_UINT32 uConstsBuffNum
	}

	{
		IMG_PUINT32 puHWInsts
	}
	{
		IMG_PUINT32 puHWInsts
	}
	{
		IMG_UINT32 uLabel
		PCODEBLOCK psFuncBody
		// inlined
		// function
		IMG_PUINT32 CompileLabel(
			PINTERMEDIATE_STATE psState
			IMG_PUINT32 puInst
			IMG_UINT32 uLabelID
			IMG_BOOL bSyncEnd
			IOPCODE* peLastOpcode
			)
		{
			IMG_UINT32 uOutSize
		}

	}
	// inlined
	// function
	IMG_UINT32 CopyConstantTable(
		PINTERMEDIATE_STATE psState
		IMG_UINT32 uConstCount
		USC_ARRAY* psMap
		USC_ARRAY* psFormat
		PUNIFLEX_CONST_LOAD* ppsConstLoadTable
		IMG_PUINT32 puConstCount
		IMG_PUINT32 puMaximumConstCount
		)
	{
		IMG_UINT32 uConstDestIdx
		IMG_UINT32 i
		PUNIFLEX_CONST_LOAD psConstLoadTable
		PUNIFLEX_CONST_LOAD psConstLoadEntry
		{
			UNIFLEX_CONST_FORMAT eSrcFormat
			IMG_UINT32 uSrcIdx
		}
	}

	// inlined
	// function
	IMG_UINT32 CopySAMappedConstantsTable(
		PINTERMEDIATE_STATE psState
		PUNIFLEX_CONST_LOAD* ppsConstLoadTable
		IMG_PUINT32 puConstCount
		IMG_PUINT32 puMaximumConstCount
		)
	{
		IMG_UINT32 uConstDestIdx
		IMG_UINT32 i
		PUNIFLEX_CONST_LOAD psConstLoadTable
		PUNIFLEX_CONST_LOAD psConstLoadEntry
		{
			PINREGISTER_CONST psConst
		}
	}

	// inlined
	// function
	IMG_PUINT32 CompileLabel(
		PINTERMEDIATE_STATE psState
		IMG_PUINT32 puInst
		IMG_UINT32 uLabelID
		IMG_BOOL bSyncEnd
		IOPCODE* peLastOpcode
		)
	{
		IMG_UINT32 uOutSize
	}

}


struct _IO_FILE* stdin

struct _IO_FILE* stdout

const INST_DESC[NaN] g_psInstDesc

