/*
 |            file: dgraph.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: <0xc1d90;0xc3ed0>
 */
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 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 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

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

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

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

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 _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
IMG_UINT32 GetBit(
	const IMG_UINT32* auArr
	const IMG_UINT32 uPos
	)
{
}


// external function PC=<0xc1d90;0xc1e80>
IMG_UINT32 GetAvailableInstructions(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uLimit
	IMG_PUINT32 puInsts
	)
{
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uCount
	IMG_UINT32 i
	IMG_UINT32 uUnsatisfiedCount
	IMG_UINT32 uFirstS
	{
		IMG_UINT32 uDepCount
		IMG_UINT32 uSatDepCount
	}
}


// external function PC=<0xc1e80;0xc1fdc>
IMG_UINT32 GetNextAvailable(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uStart
	)
{
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uInst
	IMG_UINT32 uFirst
	IMG_UINT32 a
	{
		IMG_UINT32 uDepCount
		IMG_UINT32 uSatDepCount
	}
	IMG_UINT32 uCount
}


// external function PC=<0xc1fdc;0xc20a0>
IMG_UINT32 GetDependentInstructions(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uInst
	IMG_UINT32 uLimit
	IMG_PUINT32 puInsts
	)
{
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uCount
	IMG_UINT32 i
	{
		IMG_UINT32 uDepCount
		IMG_UINT32 uSatDepCount
	}
}


// external function PC=<0xc20a0;0xc21f4>
void RemoveInstruction(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uInst
	)
{
	PINTERMEDIATE_STATE psState
	IMG_UINT32 i
	{
		IMG_UINT32 uDepCount
		IMG_UINT32 uSatDepCount
	}
}


// function PC=<0xc21f4;0xc2314>
void AddDependency(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uFrom
	IMG_UINT32 uTo
	)
{
	PINTERMEDIATE_STATE psState
	const IMG_UINT32 uFromMainDep
}


// function PC=<0xc2314;0xc25e4>
void FindReaders(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uStartInst
	IMG_UINT32 uType
	IMG_UINT32 uNum
	IMG_BOOL bIncludeDest
	IMG_BOOL bIgnoreDifferentGroup
	PINST psWriterInst
	)
{
	PINTERMEDIATE_STATE psState
	IMG_INT32 iInst
	{
		PINST psInst
		IMG_UINT32 uArg
		{
			IMG_UINT32 uDestIdx
		}
	}
}


// external function PC=<0xc25e4;0xc26d0>
void UpdateClosedDependencyGraph(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uTo
	IMG_UINT32 uFrom
	)
{
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uDepInst
	USC_PVECTOR psSrcVec
}


// external function PC=<0xc26d0;0xc2888>
void ComputeClosedDependencyGraph(
	PDGRAPH_STATE psDepState
	IMG_BOOL bUnorderedDeps
	)
{
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uInst
	IMG_UINT32 uDepInst
	USC_PVECTOR psSrcVec
	{
		IMG_UINT32 uInst1
		IMG_UINT32 uInst2
		IMG_UINT32 uInst3
	}
}


// external function PC=<0xc2888;0xc2c3c>
void MergeInstructions(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uDestInst
	IMG_UINT32 uSrcInst
	IMG_BOOL bRemoveSrc
	)
{
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uInst
	USC_PVECTOR psSrcVec
}


// external function PC=<0xc2c3c;0xc2ccc>
IMG_UINT32 AddNewInstToDGraph(
	PDGRAPH_STATE psDepState
	PINST psNewInst
	)
{
	PINTERMEDIATE_STATE psState
	IMG_UINT32 uNewInst
}


// external function PC=<0xc2ccc;0xc2d80>
void FreeDGraphState(
	PINTERMEDIATE_STATE psState
	PDGRAPH_STATE* ppsDGraph
	)
{
	PDGRAPH_STATE psDGraph
	IMG_UINT32 uIdx
}


// external function PC=<0xc2d80;0xc2ed4>
PDGRAPH_STATE NewDGraphState(
	PINTERMEDIATE_STATE psState
	)
{
	PDGRAPH_STATE psDGraph
	IMG_UINT32 uIdx
}


// function
void AddIRegWriteDependencies(
	PINTERMEDIATE_STATE psState
	PDGRAPH_STATE psDepState
	IMG_UINT32 uInst
	IMG_UINT32 uIRegNum
	IMG_BOOL bForIMoveRemoval
	IMG_BOOL bIgnoreDesched
	PINST psInst
	)
{
	{
		PINST psPrevInst
		IMG_UINT32 uPrevInst
	}
}


// function
void FindIndexReaders(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uStartInst
	IMG_UINT32 uIndex
	)
{
	PINTERMEDIATE_STATE psState
	IMG_INT32 iInst
	{
		PINST psInst
		IMG_UINT32 uArg
	}
}


// function
void FindRegArrayReaders(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uStartInst
	IMG_UINT32 uIndex
	IMG_UINT32 uArrayNum
	IMG_UINT32 uArrayOffset
	)
{
	PINTERMEDIATE_STATE psState
	IMG_INT32 iInst
	{
		PINST psInst
		IMG_UINT32 uArg
		{
			IMG_UINT32 uDestIdx
		}
		{
		}
	}
}


// function PC=<0xc2ed4;0xc3500>
void AddDestDependencies(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uInst
	PARG psDest
	IMG_BOOL bForAlphaSplit
	IMG_BOOL bForIMoveRemoval
	IMG_BOOL bIgnoreDesched
	PINST psInst
	)
{
	PINTERMEDIATE_STATE psState
	{
		IMG_UINT32 uArrayNum
		// inlined
		// function
		void FindRegArrayReaders(
			PDGRAPH_STATE psDepState
			IMG_UINT32 uStartInst
			IMG_UINT32 uIndex
			IMG_UINT32 uArrayNum
			IMG_UINT32 uArrayOffset
			)
		{
			PINTERMEDIATE_STATE psState
			IMG_INT32 iInst
			{
				PINST psInst
				IMG_UINT32 uArg
				{
					IMG_UINT32 uDestIdx
				}
				{
				}
			}
		}

		{
			IMG_UINT32 uIdx
		}
	}
	// inlined
	// function
	void AddIRegWriteDependencies(
		PINTERMEDIATE_STATE psState
		PDGRAPH_STATE psDepState
		IMG_UINT32 uInst
		IMG_UINT32 uIRegNum
		IMG_BOOL bForIMoveRemoval
		IMG_BOOL bIgnoreDesched
		PINST psInst
		)
	{
		{
			PINST psPrevInst
			IMG_UINT32 uPrevInst
		}
	}

	// inlined
	// function
	void FindIndexReaders(
		PDGRAPH_STATE psDepState
		IMG_UINT32 uStartInst
		IMG_UINT32 uIndex
		)
	{
		PINTERMEDIATE_STATE psState
		IMG_INT32 iInst
		{
			PINST psInst
			IMG_UINT32 uArg
		}
	}

	// inlined
	// function
	void FindIndexReaders(
		PDGRAPH_STATE psDepState
		IMG_UINT32 uStartInst
		IMG_UINT32 uIndex
		)
	{
		PINTERMEDIATE_STATE psState
		IMG_INT32 iInst
		{
			PINST psInst
			IMG_UINT32 uArg
		}
	}

}


// function
void FindPredicateReaders(
	PDGRAPH_STATE psDepState
	IMG_UINT32 uStartInst
	IMG_UINT32 uNum
	)
{
	PINTERMEDIATE_STATE psState
	IMG_INT32 iInst
	{
		PINST psInst
		{
		}
	}
}


// external function PC=<0xc3500;0xc3ed0>
void ComputeDependencyGraph(
	PDGRAPH_STATE psDepState
	PCODEBLOCK psBlock
	IMG_BOOL bForAlphaSplit
	IMG_BOOL bForIMoveRemoval
	IMG_BOOL bIgnoreDesched
	)
{
	PINTERMEDIATE_STATE psState
	PINST psInst
	IMG_UINT32 uInst
	IMG_UINT32 uInstCount
	IMG_UINT32 uLastLocalLoadStore
	IMG_UINT32 uIdx
	{
		IMG_UINT32 uArg
		// inlined
		// function
		void FindPredicateReaders(
			PDGRAPH_STATE psDepState
			IMG_UINT32 uStartInst
			IMG_UINT32 uNum
			)
		{
			PINTERMEDIATE_STATE psState
			IMG_INT32 iInst
			{
				PINST psInst
				{
				}
			}
		}

		{
			IMG_UINT32 i
			{
				IMG_UINT32 uIndexReg
			}
		}
		{
			IMG_UINT32 uLastWriter
		}
		{
			IMG_UINT32 uNum
			{
				IMG_UINT32 uLastWriter
			}
			{
				IMG_UINT32 uLastWriter
			}
			{
				IMG_UINT32 uIndexReg
			}
			{
				IMG_UINT32 uLastWriter
			}
			{
				IMG_UINT32 uArrayNum
				IMG_UINT32 uArrayOffset
				USC_PARRAY psWriterArray
				{
					IMG_UINT32 uLastWriter
				}
				{
					IMG_UINT32 uLastWriter
				}
			}
			{
				IMG_UINT32 uLastWriter
			}
		}
		{
			IMG_UINT32 uIRegNum
		}
		{
			IMG_UINT32 uIRegNum
			IMG_UINT32 uLastWriter
		}
		{
			IMG_UINT32 uLastWriter
		}
		// inlined
		// function
		void AddIRegWriteDependencies(
			PINTERMEDIATE_STATE psState
			PDGRAPH_STATE psDepState
			IMG_UINT32 uInst
			IMG_UINT32 uIRegNum
			IMG_BOOL bForIMoveRemoval
			IMG_BOOL bIgnoreDesched
			PINST psInst
			)
		{
			{
				PINST psPrevInst
				IMG_UINT32 uPrevInst
			}
		}

		{
			IMG_UINT32 uLastWriter
		}
		// inlined
		// function
		void AddIRegWriteDependencies(
			PINTERMEDIATE_STATE psState
			PDGRAPH_STATE psDepState
			IMG_UINT32 uInst
			IMG_UINT32 uIRegNum
			IMG_BOOL bForIMoveRemoval
			IMG_BOOL bIgnoreDesched
			PINST psInst
			)
		{
			{
				PINST psPrevInst
				IMG_UINT32 uPrevInst
			}
		}

		// inlined
		// function
		void AddIRegWriteDependencies(
			PINTERMEDIATE_STATE psState
			PDGRAPH_STATE psDepState
			IMG_UINT32 uInst
			IMG_UINT32 uIRegNum
			IMG_BOOL bForIMoveRemoval
			IMG_BOOL bIgnoreDesched
			PINST psInst
			)
		{
			{
				PINST psPrevInst
				IMG_UINT32 uPrevInst
			}
		}

	}
}


struct _IO_FILE* stdin

struct _IO_FILE* stdout

const INST_DESC[NaN] g_psInstDesc

