/*
 |            file: inst.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/codegen/ffgen
 | program counter: <0x48758;0x4a6e0>
 */
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 unsigned int IMG_UINT

typedef unsigned char IMG_UINT8

typedef char IMG_CHAR

typedef char* IMG_PCHAR

typedef long unsigned int IMG_UINT32

typedef long int IMG_INT32

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

typedef enum tag_img_bool IMG_BOOL

typedef void IMG_VOID

typedef void* IMG_PVOID

typedef IMG_PVOID IMG_HANDLE

enum undefined {
	USEASM_OP_FMAD = 0; //0x0
	USEASM_OP_FADM = 1; //0x1
	USEASM_OP_FMSA = 2; //0x2
	USEASM_OP_FFRC = 3; //0x3
	USEASM_OP_FRCP = 4; //0x4
	USEASM_OP_FRSQ = 5; //0x5
	USEASM_OP_FLOG = 6; //0x6
	USEASM_OP_FEXP = 7; //0x7
	USEASM_OP_FSQRT = 8; //0x8
	USEASM_OP_FSIN = 9; //0x9
	USEASM_OP_FCOS = 10; //0xa
	USEASM_OP_FDP = 11; //0xb
	USEASM_OP_FMIN = 12; //0xc
	USEASM_OP_FMAX = 13; //0xd
	USEASM_OP_FDSX = 14; //0xe
	USEASM_OP_FDSY = 15; //0xf
	USEASM_OP_FMAD16 = 16; //0x10
	USEASM_OP_FMINMAX = 17; //0x11
	USEASM_OP_FMAXMIN = 18; //0x12
	USEASM_OP_EFO = 19; //0x13
	USEASM_OP_PCKF16F32 = 20; //0x14
	USEASM_OP_PCKF16F16 = 21; //0x15
	USEASM_OP_PCKF16U16 = 22; //0x16
	USEASM_OP_PCKF16S16 = 23; //0x17
	USEASM_OP_PCKU16F32 = 24; //0x18
	USEASM_OP_PCKU16F16 = 25; //0x19
	USEASM_OP_PCKU16U16 = 26; //0x1a
	USEASM_OP_PCKU16S16 = 27; //0x1b
	USEASM_OP_PCKS16F32 = 28; //0x1c
	USEASM_OP_PCKS16F16 = 29; //0x1d
	USEASM_OP_PCKS16U16 = 30; //0x1e
	USEASM_OP_PCKS16S16 = 31; //0x1f
	USEASM_OP_PCKU8F32 = 32; //0x20
	USEASM_OP_PCKU8F16 = 33; //0x21
	USEASM_OP_PCKU8U16 = 34; //0x22
	USEASM_OP_PCKU8S16 = 35; //0x23
	USEASM_OP_PCKS8F32 = 36; //0x24
	USEASM_OP_PCKS8F16 = 37; //0x25
	USEASM_OP_PCKS8U16 = 38; //0x26
	USEASM_OP_PCKS8S16 = 39; //0x27
	USEASM_OP_PCKO8F32 = 40; //0x28
	USEASM_OP_PCKO8F16 = 41; //0x29
	USEASM_OP_PCKO8U16 = 42; //0x2a
	USEASM_OP_PCKO8S16 = 43; //0x2b
	USEASM_OP_PCKC10U8 = 44; //0x2c
	USEASM_OP_PCKC10F32 = 45; //0x2d
	USEASM_OP_PCKC10F16 = 46; //0x2e
	USEASM_OP_PCKC10U16 = 47; //0x2f
	USEASM_OP_PCKC10S16 = 48; //0x30
	USEASM_OP_UNPCKF32F32 = 49; //0x31
	USEASM_OP_UNPCKF32F16 = 50; //0x32
	USEASM_OP_UNPCKF32U16 = 51; //0x33
	USEASM_OP_UNPCKF32S16 = 52; //0x34
	USEASM_OP_UNPCKF32U8 = 53; //0x35
	USEASM_OP_UNPCKF32S8 = 54; //0x36
	USEASM_OP_UNPCKF32O8 = 55; //0x37
	USEASM_OP_UNPCKF32C10 = 56; //0x38
	USEASM_OP_UNPCKF16F16 = 57; //0x39
	USEASM_OP_UNPCKF16U16 = 58; //0x3a
	USEASM_OP_UNPCKF16S16 = 59; //0x3b
	USEASM_OP_UNPCKF16U8 = 60; //0x3c
	USEASM_OP_UNPCKF16S8 = 61; //0x3d
	USEASM_OP_UNPCKF16O8 = 62; //0x3e
	USEASM_OP_UNPCKF16C10 = 63; //0x3f
	USEASM_OP_UNPCKU16F16 = 64; //0x40
	USEASM_OP_UNPCKU16U16 = 65; //0x41
	USEASM_OP_UNPCKU16S16 = 66; //0x42
	USEASM_OP_UNPCKU16U8 = 67; //0x43
	USEASM_OP_UNPCKU16S8 = 68; //0x44
	USEASM_OP_UNPCKU16O8 = 69; //0x45
	USEASM_OP_UNPCKU16C10 = 70; //0x46
	USEASM_OP_UNPCKS16F16 = 71; //0x47
	USEASM_OP_UNPCKS16U16 = 72; //0x48
	USEASM_OP_UNPCKS16S16 = 73; //0x49
	USEASM_OP_UNPCKS16U8 = 74; //0x4a
	USEASM_OP_UNPCKS16S8 = 75; //0x4b
	USEASM_OP_UNPCKS16O8 = 76; //0x4c
	USEASM_OP_UNPCKS16C10 = 77; //0x4d
	USEASM_OP_UNPCKU8U8 = 78; //0x4e
	USEASM_OP_UNPCKC10C10 = 79; //0x4f
	USEASM_OP_AND = 80; //0x50
	USEASM_OP_OR = 81; //0x51
	USEASM_OP_XOR = 82; //0x52
	USEASM_OP_SHL = 83; //0x53
	USEASM_OP_SHR = 84; //0x54
	USEASM_OP_ASR = 85; //0x55
	USEASM_OP_ROL = 86; //0x56
	USEASM_OP_RLP = 87; //0x57
	USEASM_OP_SOP2 = 88; //0x58
	USEASM_OP_SOP2WM = 89; //0x59
	USEASM_OP_SOP3 = 90; //0x5a
	USEASM_OP_U8DOT3 = 91; //0x5b
	USEASM_OP_U8DOT4 = 92; //0x5c
	USEASM_OP_U16DOT3 = 93; //0x5d
	USEASM_OP_U16DOT4 = 94; //0x5e
	USEASM_OP_U8DOT3OFF = 95; //0x5f
	USEASM_OP_U8DOT4OFF = 96; //0x60
	USEASM_OP_U16DOT3OFF = 97; //0x61
	USEASM_OP_U16DOT4OFF = 98; //0x62
	USEASM_OP_IMA8 = 99; //0x63
	USEASM_OP_IMA16 = 100; //0x64
	USEASM_OP_IMAE = 101; //0x65
	USEASM_OP_IMA32 = 102; //0x66
	USEASM_OP_IDIV = 103; //0x67
	USEASM_OP_ADIF = 104; //0x68
	USEASM_OP_ADIFSUM = 105; //0x69
	USEASM_OP_FIRV = 106; //0x6a
	USEASM_OP_FIRVH = 107; //0x6b
	USEASM_OP_BILIN = 108; //0x6c
	USEASM_OP_FIRH = 109; //0x6d
	USEASM_OP_FIRHH = 110; //0x6e
	USEASM_OP_SSUM16 = 111; //0x6f
	USEASM_OP_SMP1D = 112; //0x70
	USEASM_OP_SMP2D = 113; //0x71
	USEASM_OP_SMP3D = 114; //0x72
	USEASM_OP_SMP1DBIAS = 115; //0x73
	USEASM_OP_SMP2DBIAS = 116; //0x74
	USEASM_OP_SMP3DBIAS = 117; //0x75
	USEASM_OP_SMP1DREPLACE = 118; //0x76
	USEASM_OP_SMP2DREPLACE = 119; //0x77
	USEASM_OP_SMP3DREPLACE = 120; //0x78
	USEASM_OP_SMP1DGRAD = 121; //0x79
	USEASM_OP_SMP2DGRAD = 122; //0x7a
	USEASM_OP_SMP3DGRAD = 123; //0x7b
	USEASM_OP_LDAB = 124; //0x7c
	USEASM_OP_LDAW = 125; //0x7d
	USEASM_OP_LDAD = 126; //0x7e
	USEASM_OP_STAB = 127; //0x7f
	USEASM_OP_STAW = 128; //0x80
	USEASM_OP_STAD = 129; //0x81
	USEASM_OP_LDLB = 130; //0x82
	USEASM_OP_LDLW = 131; //0x83
	USEASM_OP_LDLD = 132; //0x84
	USEASM_OP_STLB = 133; //0x85
	USEASM_OP_STLW = 134; //0x86
	USEASM_OP_STLD = 135; //0x87
	USEASM_OP_LDTB = 136; //0x88
	USEASM_OP_LDTW = 137; //0x89
	USEASM_OP_LDTD = 138; //0x8a
	USEASM_OP_STTB = 139; //0x8b
	USEASM_OP_STTW = 140; //0x8c
	USEASM_OP_STTD = 141; //0x8d
	USEASM_OP_ELDD = 142; //0x8e
	USEASM_OP_ELDQ = 143; //0x8f
	USEASM_OP_BA = 144; //0x90
	USEASM_OP_BR = 145; //0x91
	USEASM_OP_LAPC = 146; //0x92
	USEASM_OP_IDF = 147; //0x93
	USEASM_OP_WDF = 148; //0x94
	USEASM_OP_EMITPIXEL1 = 149; //0x95
	USEASM_OP_EMITPIXEL2 = 150; //0x96
	USEASM_OP_EMITSTATE = 151; //0x97
	USEASM_OP_EMITVERTEX = 152; //0x98
	USEASM_OP_EMITPRIMITIVE = 153; //0x99
	USEASM_OP_EMITPDS = 154; //0x9a
	USEASM_OP_MOV = 155; //0x9b
	USEASM_OP_FMOV = 156; //0x9c
	USEASM_OP_FMUL = 157; //0x9d
	USEASM_OP_FADD = 158; //0x9e
	USEASM_OP_FSSQ = 159; //0x9f
	USEASM_OP_LABEL = 160; //0xa0
	USEASM_OP_FSUB = 161; //0xa1
	USEASM_OP_SETPGT = 162; //0xa2
	USEASM_OP_SETPGTE = 163; //0xa3
	USEASM_OP_SETPEQ = 164; //0xa4
	USEASM_OP_SETPLT = 165; //0xa5
	USEASM_OP_SETPLTE = 166; //0xa6
	USEASM_OP_SETPNEQ = 167; //0xa7
	USEASM_OP_SDM = 168; //0xa8
	USEASM_OP_SDA = 169; //0xa9
	USEASM_OP_AMM = 170; //0xaa
	USEASM_OP_SMM = 171; //0xab
	USEASM_OP_AMS = 172; //0xac
	USEASM_OP_SMS = 173; //0xad
	USEASM_OP_DMA = 174; //0xae
	USEASM_OP_NOP = 175; //0xaf
	USEASM_OP_FTZ = 176; //0xb0
	USEASM_OP_FTNZ = 177; //0xb1
	USEASM_OP_U16TZ = 178; //0xb2
	USEASM_OP_U16TNZ = 179; //0xb3
	USEASM_OP_SMOA = 180; //0xb4
	USEASM_OP_SMR = 181; //0xb5
	USEASM_OP_SMLSI = 182; //0xb6
	USEASM_OP_SMBO = 183; //0xb7
	USEASM_OP_IMO = 184; //0xb8
	USEASM_OP_SETFC = 185; //0xb9
	USEASM_OP_FDP3 = 186; //0xba
	USEASM_OP_FDP4 = 187; //0xbb
	USEASM_OP_FDPC = 188; //0xbc
	USEASM_OP_FDPC3 = 189; //0xbd
	USEASM_OP_FDPC4 = 190; //0xbe
	USEASM_OP_FDDP = 191; //0xbf
	USEASM_OP_FDDP3 = 192; //0xc0
	USEASM_OP_FDDP4 = 193; //0xc1
	USEASM_OP_FDDPC = 194; //0xc2
	USEASM_OP_FDDPC3 = 195; //0xc3
	USEASM_OP_FDDPC4 = 196; //0xc4
	USEASM_OP_LOCK = 197; //0xc5
	USEASM_OP_RELEASE = 198; //0xc6
	USEASM_OP_FSUBFLR = 199; //0xc7
	USEASM_OP_LDR = 200; //0xc8
	USEASM_OP_STR = 201; //0xc9
	USEASM_OP_PCOEFF = 202; //0xca
	USEASM_OP_PTOFF = 203; //0xcb
	USEASM_OP_ATST8 = 204; //0xcc
	USEASM_OP_DEPTHF = 205; //0xcd
	USEASM_OP_WOP = 206; //0xce
	USEASM_OP_SETM = 207; //0xcf
	USEASM_OP_PHAS = 208; //0xd0
	USEASM_OP_PHASIMM = 209; //0xd1
	USEASM_OP_AINTRP1 = 210; //0xd2
	USEASM_OP_AINTRP2 = 211; //0xd3
	USEASM_OP_AADD = 212; //0xd4
	USEASM_OP_ASUB = 213; //0xd5
	USEASM_OP_ASOP = 214; //0xd6
	USEASM_OP_ARSOP = 215; //0xd7
	USEASM_OP_ALRP = 216; //0xd8
	USEASM_OP_LRP1 = 217; //0xd9
	USEASM_OP_LRP2 = 218; //0xda
	USEASM_OP_ASOP2 = 219; //0xdb
	USEASM_OP_FPADD16 = 220; //0xdc
	USEASM_OP_FPSUB16 = 221; //0xdd
	USEASM_OP_FPMUL16 = 222; //0xde
	USEASM_OP_FPADDU16 = 223; //0xdf
	USEASM_OP_FPSUBU16 = 224; //0xe0
	USEASM_OP_FPMULU16 = 225; //0xe1
	USEASM_OP_IADD16 = 226; //0xe2
	USEASM_OP_ISUB16 = 227; //0xe3
	USEASM_OP_IMUL16 = 228; //0xe4
	USEASM_OP_IADDU16 = 229; //0xe5
	USEASM_OP_ISUBU16 = 230; //0xe6
	USEASM_OP_IMULU16 = 231; //0xe7
	USEASM_OP_IADD32 = 232; //0xe8
	USEASM_OP_IADD8 = 233; //0xe9
	USEASM_OP_ISUB8 = 234; //0xea
	USEASM_OP_IMUL8 = 235; //0xeb
	USEASM_OP_IMULU8 = 236; //0xec
	USEASM_OP_IMOV16 = 237; //0xed
	USEASM_OP_IADDU32 = 238; //0xee
	USEASM_OP_PADDING = 239; //0xef
	USEASM_OP_MOVC = 240; //0xf0
	USEASM_OP_MOVMSK = 241; //0xf1
	USEASM_OP_FPMA = 242; //0xf2
	USEASM_OP_IADDU8 = 243; //0xf3
	USEASM_OP_ISUBU8 = 244; //0xf4
	USEASM_OP_FPMUL8 = 245; //0xf5
	USEASM_OP_FPADD8 = 246; //0xf6
	USEASM_OP_FPSUB8 = 247; //0xf7
	USEASM_OP_FNRM32 = 248; //0xf8
	USEASM_OP_FNRM16 = 249; //0xf9
	USEASM_OP_MOEST = 250; //0xfa
	USEASM_OP_CF = 251; //0xfb
	USEASM_OP_CI = 252; //0xfc
	USEASM_OP_CFI = 253; //0xfd
	USEASM_OP_EMITMTEVERTEX = 254; //0xfe
	USEASM_OP_EMITMTESTATE = 255; //0xff
	USEASM_OP_EMITVCBVERTEX = 256; //0x100
	USEASM_OP_EMITVCBSTATE = 257; //0x101
	USEASM_OP_MAXIMUM = 258; //0x102
}

typedef enum undefined UseasmOpcode

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
}

typedef enum UseasmRegTypeTAG UseasmRegType

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

enum undefined {
	FFTNL_ENABLES1_VERTEXBLENDING = 1; //0x1
	FFTNL_ENABLES1_TRANSFORMNORMALS = 2; //0x2
	FFTNL_ENABLES1_MATRIXPALETTEBLENDING = 4; //0x4
	FFTNL_ENABLES1_STANDARDTRANSFORMATION = 8; //0x8
	FFTNL_ENABLES1_NORMALISENORMALS = 16; //0x10
	FFTNL_ENABLES1_FOGCOORD = 32; //0x20
	FFTNL_ENABLES1_FOGLINEAR = 64; //0x40
	FFTNL_ENABLES1_FOGEXP = 128; //0x80
	FFTNL_ENABLES1_FOGEXP2 = 256; //0x100
	FFTNL_ENABLES1_CLIPPING = 512; //0x200
	FFTNL_ENABLES1_EYEPOSITION = 1024; //0x400
	FFTNL_ENABLES1_VERTEXTOEYEVECTOR = 2048; //0x800
	FFTNL_ENABLES1_LIGHTINGENABLED = 4096; //0x1000
	FFTNL_ENABLES1_LIGHTINGTWOSIDED = 8192; //0x2000
	FFTNL_ENABLES1_LOCALVIEWER = 16384; //0x4000
	FFTNL_ENABLES1_SEPARATESPECULAR = 32768; //0x8000
	FFTNL_ENABLES1_TEXTURINGENABLED = 65536; //0x10000
	FFTNL_ENABLES1_TEXGENSPHEREMAP = 131072; //0x20000
	FFTNL_ENABLES1_REFLECTIONMAP = 262144; //0x40000
	FFTNL_ENABLES1_COLOURMATERIAL = 524288; //0x80000
	FFTNL_ENABLES1_POINTSIZEARRAY = 1048576; //0x100000
	FFTNL_ENABLES1_TEXGEN = 2097152; //0x200000
	FFTNL_ENABLES1_USEMVFORNORMALTRANSFORM = 4194304; //0x400000
	FFTNL_ENABLES1_POINTATTEN = 8388608; //0x800000
	FFTNL_ENABLES1_UNCLAMPEDCOLOURS = 16777216; //0x1000000
	FFTNL_ENABLES1_SECONDARYCOLOUR = 33554432; //0x2000000
	FFTNL_ENABLES1_FOGCOORDEYEPOS = 67108864; //0x4000000
	FFTNL_ENABLES1_VERTCOLOUREMISSIVE = 134217728; //0x8000000
	FFTNL_ENABLES1_VERTCOLOURAMBIENT = 268435456; //0x10000000
	FFTNL_ENABLES1_VERTCOLOURDIFFUSE = 536870912; //0x20000000
	FFTNL_ENABLES1_VERTCOLOURSPECULAR = 1073741824; //0x40000000
	FFTNL_ENABLES1_FORCEDWORD = 2147483647; //0x7fffffff
}

typedef enum undefined FFTNLEnables1

enum undefined {
	FFTNL_ENABLES2_POINTS = 1; //0x1
	FFTNL_ENABLES2_POINTSPRITES = 2; //0x2
	FFTNL_ENABLES2_FORCEDWORD = 2147483647; //0x7fffffff
}

typedef enum undefined FFTNLEnables2

enum FFCodeGenMethod_TAG {
	FFCGM_ONE_PASS = 0; //0x0
	FFCGM_TWO_PASS = 1; //0x1
}

typedef enum FFCodeGenMethod_TAG FFCodeGenMethod

enum FFCodeGenFlags_TAG {
	FFGENCGF_REDIRECT_OUTPUT_TO_INPUT = 1; //0x1
	FFGENCGF_INPUT_REG_SIZE_4 = 2; //0x2
}

typedef enum FFCodeGenFlags_TAG FFCodeGenFlags

struct FFTNLGenDesc_TAG {
	FFTNLEnables1 eFFTNLEnables1 // @0
	FFTNLEnables2 eFFTNLEnables2 // @4
	IMG_UINT32 uSecAttrConstBaseAddressReg // @8
	IMG_UINT32 uSecAttrStart // @c
	IMG_UINT32 uSecAttrEnd // @10
	IMG_UINT32 uSecAttrAllOther // @14
	FFCodeGenMethod eCodeGenMethod // @18
	FFCodeGenFlags eCodeGenFlags // @1c
	IMG_UINT32 uEnabledClipPlanes // @20
	IMG_UINT32 uNumBlendUnits // @24
	IMG_UINT32 uNumMatrixPaletteEntries // @28
	IMG_UINT32 uEnabledSpotLocalLights // @2c
	IMG_UINT32 uEnabledSpotInfiniteLights // @30
	IMG_UINT32 uEnabledPointLocalLights // @34
	IMG_UINT32 uEnabledPointInfiniteLights // @38
	IMG_UINT32 uLightHasSpecular // @3c
	IMG_UINT32 uEnabledPassthroughCoords // @40
	IMG_UINT8[16] aubPassthroughCoordMask // @44
	IMG_UINT32 uEnabledEyeLinearCoords // @54
	IMG_UINT8[16] aubEyeLinearCoordMask // @58
	IMG_UINT32 uEnabledObjLinearCoords // @68
	IMG_UINT8[16] aubObjLinearCoordMask // @6c
	IMG_UINT32 uEnabledSphereMapCoords // @7c
	IMG_UINT8[16] aubSphereMapCoordMask // @80
	IMG_UINT32 uEnabledNormalMapCoords // @90
	IMG_UINT8[16] aubNormalMapCoordMask // @94
	IMG_UINT32 uEnabledPositionMapCoords // @a4
	IMG_UINT8[16] aubPositionMapCoordMask // @a8
	IMG_UINT32 uEnabledReflectionMapCoords // @b8
	IMG_UINT8[16] aubReflectionMapCoordMask // @bc
	IMG_UINT32 uEnabledTextureMatrices // @cc
	IMG_UINT32 uEnabledVertexBlendUnits // @d0
}

typedef struct FFTNLGenDesc_TAG FFTNLGenDesc

enum FFGenRegDescTAG {
	FFGEN_INPUT_COLOR = 0; //0x0
	FFGEN_INPUT_SECONDARYCOLOR = 1; //0x1
	FFGEN_INPUT_NORMAL = 2; //0x2
	FFGEN_INPUT_VERTEX = 3; //0x3
	FFGEN_INPUT_MULTITEXCOORD0 = 4; //0x4
	FFGEN_INPUT_MULTITEXCOORD1 = 5; //0x5
	FFGEN_INPUT_MULTITEXCOORD2 = 6; //0x6
	FFGEN_INPUT_MULTITEXCOORD3 = 7; //0x7
	FFGEN_INPUT_MULTITEXCOORD4 = 8; //0x8
	FFGEN_INPUT_MULTITEXCOORD5 = 9; //0x9
	FFGEN_INPUT_MULTITEXCOORD6 = 10; //0xa
	FFGEN_INPUT_MULTITEXCOORD7 = 11; //0xb
	FFGEN_INPUT_FOGCOORD = 12; //0xc
	FFGEN_INPUT_VERTEXBLENDWEIGHT = 13; //0xd
	FFGEN_INPUT_VERTEXMATRIXINDEX = 14; //0xe
	FFGEN_INPUT_POINTSIZE = 15; //0xf
	FFGEN_OUTPUT_POSITION = 16; //0x10
	FFGEN_OUTPUT_POINTSIZE = 17; //0x11
	FFGEN_OUTPUT_CLIPVERTEX = 18; //0x12
	FFGEN_OUTPUT_FRONTCOLOR = 19; //0x13
	FFGEN_OUTPUT_BACKCOLOR = 20; //0x14
	FFGEN_OUTPUT_FRONTSECONDARYCOLOR = 21; //0x15
	FFGEN_OUTPUT_BACKSECONDARYCOLOR = 22; //0x16
	FFGEN_OUTPUT_TEXCOORD = 23; //0x17
	FFGEN_OUTPUT_FOGFRAGCOORD = 24; //0x18
	FFGEN_OUTPUT_POINTSPRITE = 25; //0x19
	FFGEN_STATE_MODELVIEWMATRIX = 26; //0x1a
	FFGEN_STATE_PROJECTMATRIX = 27; //0x1b
	FFGEN_STATE_MODELVIEWPROJECTIONMATRIX = 28; //0x1c
	FFGEN_STATE_TEXTUREMATRIX = 29; //0x1d
	FFGEN_STATE_MODELVIEWMATRIXINVERSETRANSPOSE = 30; //0x1e
	FFGEN_STATE_MATRIXPALETTEINDEXCLAMP = 31; //0x1f
	FFGEN_STATE_MODELVIEWMATRIXPALETTE = 32; //0x20
	FFGEN_STATE_MODELVIEWMATRIXINVERSETRANSPOSEPALETTE = 33; //0x21
	FFGEN_STATE_CLIPPLANE = 34; //0x22
	FFGEN_STATE_POINT = 35; //0x23
	FFGEN_STATE_FRONTMATERIAL = 36; //0x24
	FFGEN_STATE_BACKMATERIAL = 37; //0x25
	FFGEN_STATE_LIGHTSOURCE = 38; //0x26
	FFGEN_STATE_LIGHTSOURCE0 = 39; //0x27
	FFGEN_STATE_LIGHTSOURCE1 = 40; //0x28
	FFGEN_STATE_LIGHTSOURCE2 = 41; //0x29
	FFGEN_STATE_LIGHTSOURCE3 = 42; //0x2a
	FFGEN_STATE_LIGHTSOURCE4 = 43; //0x2b
	FFGEN_STATE_LIGHTSOURCE5 = 44; //0x2c
	FFGEN_STATE_LIGHTSOURCE6 = 45; //0x2d
	FFGEN_STATE_LIGHTSOURCE7 = 46; //0x2e
	FFGEN_STATE_LIGHTMODEL = 47; //0x2f
	FFGEN_STATE_FRONTLIGHTMODELPRODUCT = 48; //0x30
	FFGEN_STATE_BACKLIGHTMODELPRODUCT = 49; //0x31
	FFGEN_STATE_FRONTLIGHTPRODUCT = 50; //0x32
	FFGEN_STATE_BACKLIGHTPRODUCT = 51; //0x33
	FFGEN_STATE_EYEPLANES = 52; //0x34
	FFGEN_STATE_EYEPLANET = 53; //0x35
	FFGEN_STATE_EYEPLANER = 54; //0x36
	FFGEN_STATE_EYEPLANEQ = 55; //0x37
	FFGEN_STATE_OBJECTPLANES = 56; //0x38
	FFGEN_STATE_OBJECTPLANET = 57; //0x39
	FFGEN_STATE_OBJECTPLANER = 58; //0x3a
	FFGEN_STATE_OBJECTPLANEQ = 59; //0x3b
	FFGEN_STATE_PMXFOGPARAM = 60; //0x3c
	FFGEN_STATE_PMXPOINTSIZE = 61; //0x3d
	FFTNL_NUM_REGISTER_DESCRIPTIONS = 62; //0x3e
}

typedef enum FFGenRegDescTAG FFGenRegDesc

enum undefined {
	FFGEN_WDF_0 = 1; //0x1
	FFGEN_WDF_1 = 2; //0x2
	FFGEN_WDF_2 = 3; //0x3
	FFGEN_WDF_3 = 4; //0x4
}

typedef enum undefined FFGenWDFStatus

struct FFGenReg_TAG {
	UseasmRegType eType // @0
	IMG_UINT32 uOffset // @4
	IMG_UINT32 uSizeInDWords // @8
	FFGenRegDesc eBindingRegDesc // @c
	FFGenWDFStatus eWDFStatus // @10
	IMG_UINT32 uIndex // @14
}

typedef struct FFGenReg_TAG FFGenReg

struct FFGenRegList_TAG {
	FFGenReg* psReg // @0
	struct FFGenRegList_TAG* psNext // @4
	struct FFGenRegList_TAG* psPrev // @8
}

typedef struct FFGenRegList_TAG FFGenRegList

typedef struct {
	IMG_UINT32 bUSEPerInstanceMode // @0
	IMG_UINT32 ui32InstructionCount // @4
	IMG_UINT32* pui32Instructions // @8
	IMG_UINT32 ui32PrimaryAttributeCount // @c
	IMG_UINT32 ui32SecondaryAttributeCount // @10
	IMG_UINT32 ui32TemporaryRegisterCount // @14
	IMG_UINT32 ui32MemoryConstantCount // @18
} FFGEN_PROGRAM_DETAILS

struct FFGenProgram_TAG {
	FFGEN_PROGRAM_DETAILS* psFFGENProgramDetails // @0
	FFGenRegList* psConstantsList // @4
	FFGenRegList* psInputsList // @8
	FFGenRegList* psOutputsList // @c
	IMG_UINT32 uNumTexCoordUnits // @10
	IMG_UINT32[16] auOutputTexDimensions // @14
	IMG_UINT32 uMemoryConstantsSize // @54
	IMG_UINT32 uMemConstBaseAddrSAReg // @58
	IMG_UINT32 uSecAttribSize // @5c
	IMG_UINT32 uSecAttribStart // @60
	IMG_UINT32 uHashValue // @64
	IMG_UINT32 uRefCount // @68
	struct FFGenProgram_TAG* psNext // @6c
	struct FFGenProgram_TAG* psPrev // @70
}

typedef struct FFGenProgram_TAG FFGenProgram

typedef IMG_PVOID* FFGEN_MALLOCFN

typedef void* IMG_PVOID

typedef IMG_PVOID* FFGEN_CALLOCFN

typedef IMG_PVOID* FFGEN_REALLOCFN

typedef void* IMG_PVOID

typedef void* FFGEN_FREEFN

void

typedef void* FFGEN_PRINTFN

void

enum FFGenProgramTypeTAG {
	FFGENPT_TNL = 0; //0x0
	FFGENPT_GEO = 1; //0x1
}

typedef enum FFGenProgramTypeTAG FFGenProgramType

struct FFGenContext_TAG {
	IMG_HANDLE hClientHandle // @0
	FFGenProgram* psFFTNLProgramList // @4
	IMG_CHAR* pszDisassemblyFileName // @8
	FFGEN_MALLOCFN pfnMalloc // @c
	FFGEN_CALLOCFN pfnCalloc // @10
	FFGEN_REALLOCFN pfnRealloc // @14
	FFGEN_FREEFN pfnFree // @18
	FFGEN_PRINTFN pfnPrint // @1c
}

typedef struct FFGenContext_TAG FFGenContext

struct FFGenInstruction_TAG {
	UseasmOpcode eOpcode // @0
	IMG_UINT32 uFlags1 // @4
	IMG_UINT32 uFlags2 // @8
	IMG_UINT32 uTest // @c
	IMG_UINT32 uExtraInfo // @10
	FFGenReg*[11] ppsRegs // @14
	IMG_INT32[11] aiRegOffsets // @40
	IMG_UINT32[11] auRegFlags // @6c
	IMG_UINT32 uUseRegOffset // @98
	IMG_UINT32 uNumRegs // @9c
	IMG_BOOL bIndexPatch // @a0
	IMG_CHAR* pszComment // @a4
}

typedef struct FFGenInstruction_TAG FFGenInstruction

struct FFGenInstructionList_TAG {
	FFGenInstruction sInstruction // @0
	FFGenReg[11] asRegs // @a8
	IMG_UINT32 uLineNumber // @1b0
	IMG_UINT32 uInstructionNumber // @1b4
	struct FFGenInstructionList_TAG* psNext // @1b8
	struct FFGenInstructionList_TAG* psPrev // @1bc
}

typedef struct FFGenInstructionList_TAG FFGenInstructionList

struct UseInstructionList_TAG {
	USE_INST* psInstruction // @0
	IMG_UINT32 uInstructionNumber // @4
	struct UseInstructionList_TAG* psNext // @8
}

typedef struct UseInstructionList_TAG UseInstructionList

struct FFGenCode_TAG {
	FFGenProgramType eProgramType // @0
	FFTNLGenDesc* psFFTNLGenDesc // @4
	FFCodeGenMethod eCodeGenMethod // @8
	IMG_BOOL bSeondPass // @c
	FFCodeGenFlags eCodeGenFlags // @10
	FFGenInstruction sInstruction // @14
	FFGenInstructionList* psStoredInstructionList // @bc
	FFGenInstructionList* psCurrentInstructionEntry // @c0
	FFGenInstructionList* psIndexSetupInstructionList // @c4
	IMG_UINT32 uNumInstructionsStored // @c8
	FFGenRegList* psFreeTempList // @cc
	IMG_UINT32 uCurrentTempSize // @d0
	IMG_UINT32 uInputSize // @d4
	IMG_UINT32 uOutputSize // @d8
	IMG_UINT32 uTempSize // @dc
	IMG_UINT32 uSecAttribStart // @e0
	IMG_UINT32 uSecAttribSize // @e4
	IMG_UINT32 uMaxSecAttribSize // @e8
	IMG_UINT32 uHighSecAttribSize // @ec
	IMG_INT32 iSAConstBaseAddressAdjust // @f0
	IMG_UINT32 uMemoryConstantsSize // @f4
	IMG_UINT32 uMaxMemoryConstantsSize // @f8
	FFGenRegList* psConstantsList // @fc
	FFGenRegList* psInputsList // @100
	FFGenRegList* psOutputsList // @104
	FFGenRegList* psThrowAwayList // @108
	FFGenRegList* psIndexableSecondaryList // @10c
	IMG_UINT32 uNumOutputClipPlanes // @110
	IMG_UINT32 uNumConstantClipPlanes // @114
	IMG_UINT32[16] auInputTexDimensions // @118
	IMG_UINT32[16] auOutputTexDimensions // @158
	IMG_UINT32 uNumTexCoordUnits // @198
	FFGenReg sSAConstBaseAddress // @19c
	FFGenReg sImmediateIntReg // @1b4
	FFGenReg sImmediateIntReg2 // @1cc
	FFGenReg sImmediateFloatReg // @1e4
	FFGenReg sImmediateFloatReg2 // @1fc
	FFGenReg[4] asPredicateRegs // @214
	FFGenReg sDRCReg // @274
	FFGenReg sInternalReg // @28c
	FFGenReg sLabelReg // @2a4
	FFGenReg sRangeReg // @2bc
	FFGenReg sClipPlaneReg // @2d4
	FFGenReg sIndexLowReg // @2ec
	FFGenReg sIndexHighReg // @304
	FFGenReg sIndexLowHighReg // @31c
	FFGenReg sIntSrcSelReg // @334
	FFGenReg* psNormal // @34c
	FFGenReg* psEyePosition // @350
	FFGenReg* psVtxEyeVec // @354
	FFGenReg* psVtxEyeVecMag // @358
	FFGenReg* psRSQVtxEyeVecMag // @35c
	FFGenReg* psTexGenR // @360
	IMG_BOOL[2] abOutstandingDRC // @364
	IMG_UINT32 uLabelCount // @36c
	IMG_UINT32 uLabelListSize // @370
	IMG_CHAR** ppsLabelNames // @374
	IMG_UINT32 uConditionalDepth // @378
	IMG_UINT32[20] uConditionalLabelStack // @37c
	USE_INST* psUseInsts // @3cc
	USE_INST* psCurrentUseInst // @3d0
	IMG_UINT32 uNumUseArgs // @3d4
	IMG_UINT32 uNumInstructions // @3d8
	IMG_UINT32 uAlignedInstructionCount // @3dc
	IMG_UINT32 uNumHWInstructions // @3e0
	UseInstructionList* psIndexPatchUseInsts // @3e4
	IMG_UINT32* puHWCode // @3e8
	IMG_BOOL bUseRegisterDescriptions // @3ec
	IMG_UINT32 uEnabledSMBODestBaseOffset // @3f0
	FFGenContext* psFFGenContext // @3f4
}

typedef struct FFGenCode_TAG FFGenCode

// external function
void IssueWDFs(
	FFGenCode* psFFGenCode
	FFGenInstruction* psInstruction
	)
{
}


// external function
void COMMENT(
	FFGenCode* psFFGenCode
	const IMG_CHAR* pszFormat
	 //variable arguments
	)
{
}


// external function PC=<0x48758;0x48788>
void DestroyInstructionList(
	FFGenContext* psFFGenContext
	UseInstructionList* psList
	)
{
	{
		UseInstructionList* psNext
	}
}


// external function
void IssueWDFs(
	FFGenCode* psFFGenCode
	FFGenInstruction* psInstruction
	)
{
}


// external function PC=<0x4878c;0x487ec>
void DestroyLabelList(
	FFGenCode* psFFGenCode
	)
{
	IMG_UINT32 i
}


// external function
void COMMENT(
	FFGenCode* psFFGenCode
	const IMG_CHAR* pszFormat
	 //variable arguments
	)
{
}


// external function
void NEW_BLOCK(
	FFGenCode* psFFGenCode
	const IMG_CHAR* pszFormat
	 //variable arguments
	)
{
}


// external function
void NEW_BLOCK(
	FFGenCode* psFFGenCode
	const IMG_CHAR* pszFormat
	 //variable arguments
	)
{
}


// external function PC=<0x48804;0x488ec>
IMG_UINT32 GetLabel(
	FFGenCode* psFFGenCode
	IMG_CHAR* pszLabelName
	)
{
	IMG_CHAR* pszNewLabelName
	IMG_UINT32 uLabelID
}


// function
void CheckRegUsage(
	FFGenCode* psFFGenCode
	FFGenInstruction* psOrigInst
	FFGenReg** ppsRegToRelease
	)
{
	{
		FFGenReg* psSrcReg0
		FFGenReg* psSrcReg1
		{
			FFGenInstruction sInst
			FFGenInstruction* psInst
			IMG_UINT32 uDestBaseOffsetEnabled
			FFGenReg* psTemp
			IMG_UINT32 uRegSize
			{
				IMG_UINT32 i
			}
			{
				IMG_UINT32 i
			}
			{
				IMG_UINT32 i
			}
			{
			}
		}
	}
}


// function
void StoreInstruction(
	FFGenCode* psFFGenCode
	FFGenInstruction* psInstruction
	IMG_UINT32 uLineNumber
	)
{
	FFGenInstructionList* psNewInstructionEntry
	FFGenInstruction* psNewInstruction
	IMG_UINT32 i
	IMG_BOOL bCountInstruction
}


// function
USE_INST* GetUseInst(
	FFGenCode* psFFGenCode
	)
{
	USE_INST* psUseInst
}


// function
void EncodeReg(
	FFGenCode* psFFGenCode
	FFGenReg* psReg
	IMG_BOOL bUseRegOffset
	IMG_UINT32 uRegFlags
	IMG_INT32 iRegOffset
	)
{
	USE_INST* psUseInst
	USE_REGISTER* psUseReg
}


// function
UseInstructionList* AddInstToList(
	FFGenCode* psFFGenCode
	UseInstructionList* psInstructionList
	USE_INST* psInstructionToAdd
	IMG_UINT32 uLineNumber
	const IMG_CHAR* pszFileName
	)
{
	UseInstructionList* psNewEntry
	UseInstructionList* psList
}


// external function PC=<0x488ec;0x490f4>
void EncodeInstructionfn(
	FFGenCode* psFFGenCode
	FFGenInstruction* psInstruction
	IMG_UINT32 uLineNumber
	)
{
	IMG_UINT32 i
	USE_INST* psUseInst
	FFGenReg* psRegToRelease
	IMG_BOOL bComment
	StripInstruction: \\ label @0x48cd8
	HandleComment: \\ label @0x48fc8
	// inlined
	// function
	void CheckRegUsage(
		FFGenCode* psFFGenCode
		FFGenInstruction* psOrigInst
		FFGenReg** ppsRegToRelease
		)
	{
		{
			FFGenReg* psSrcReg0
			FFGenReg* psSrcReg1
			{
				FFGenInstruction sInst
				FFGenInstruction* psInst
				IMG_UINT32 uDestBaseOffsetEnabled
				FFGenReg* psTemp
				IMG_UINT32 uRegSize
				{
					IMG_UINT32 i
				}
				{
					IMG_UINT32 i
				}
				{
					IMG_UINT32 i
				}
				{
				}
			}
		}
	}

	// inlined
	// function
	void StoreInstruction(
		FFGenCode* psFFGenCode
		FFGenInstruction* psInstruction
		IMG_UINT32 uLineNumber
		)
	{
		FFGenInstructionList* psNewInstructionEntry
		FFGenInstruction* psNewInstruction
		IMG_UINT32 i
		IMG_BOOL bCountInstruction
	}

	// inlined
	// function
	USE_INST* GetUseInst(
		FFGenCode* psFFGenCode
		)
	{
		USE_INST* psUseInst
	}

	// inlined
	// function
	void EncodeReg(
		FFGenCode* psFFGenCode
		FFGenReg* psReg
		IMG_BOOL bUseRegOffset
		IMG_UINT32 uRegFlags
		IMG_INT32 iRegOffset
		)
	{
		USE_INST* psUseInst
		USE_REGISTER* psUseReg
	}

	{
		USE_REGISTER* psUseReg
	}
	// inlined
	// function
	UseInstructionList* AddInstToList(
		FFGenCode* psFFGenCode
		UseInstructionList* psInstructionList
		USE_INST* psInstructionToAdd
		IMG_UINT32 uLineNumber
		const IMG_CHAR* pszFileName
		)
	{
		UseInstructionList* psNewEntry
		UseInstructionList* psList
	}

}


// external function PC=<0x490f4;0x4916c>
IMG_UINT32 GetDRC(
	FFGenCode* psFFGenCode
	)
{
	IMG_UINT32 i
	FFGenInstruction* psInst
}


// external function PC=<0x4916c;0x491e4>
void EncodeInstructionList(
	FFGenCode* psFFGenCode
	)
{
	FFGenInstructionList* psInstructionEntry
	{
		FFGenInstructionList* psCurrentEntry
	}
}


// function
void SetupNoSchedBeforeEFOs(
	FFGenCode* psFFGenCode
	)
{
	FFGenInstructionList* psInstructionEntry
	FFGenInstruction* psInst
	IMG_UINT32 uBackCount
	IMG_UINT32 uMinBackCount
	IMG_UINT32 uMaxBackCount
	IMG_UINT32 uNumPaddingInstructions
	{
		IMG_UINT32 i
	}
}


// function
void M4x4_efos(
	FFGenCode* psFFGenCode
	FFGenReg* psDest
	FFGenReg* psVector
	FFGenReg* psMatrix
	IMG_UINT32 uDestBaseoffset
	)
{
	FFGenInstruction* psInst
	FFGenReg* psTemp
	{
		IMG_UINT32 i
	}
	{
		IMG_UINT32 i
	}
	{
		IMG_UINT32 i
	}
	{
		IMG_UINT32 i
	}
	{
		IMG_UINT32 i
	}
	{
		IMG_UINT32 i
	}
}


// function
void M4x4_dp4(
	FFGenCode* psFFGenCode
	FFGenReg* psDest
	FFGenReg* psVector
	FFGenReg* psMatrix
	IMG_UINT32 uDestBaseOffset
	)
{
	IMG_UINT32 i
	FFGenInstruction* psInst
	{
		IMG_UINT32 i
	}
	{
		IMG_UINT32 i
	}
	{
		IMG_UINT i
	}
	{
		IMG_UINT i
	}
	{
		IMG_UINT32 i
	}
}


// external function PC=<0x491e4;0x4a14c>
void M4x4(
	FFGenCode* psFFGenCode
	FFGenReg* psDest
	FFGenReg* psVector
	FFGenReg* psMatrix
	IMG_UINT32 uDestBaseOffset
	IMG_CHAR* pszComment
	)
{
	FFGenInstruction* psInst
	FFGenReg* psTempVector
	// inlined
	// function
	void SetupNoSchedBeforeEFOs(
		FFGenCode* psFFGenCode
		)
	{
		FFGenInstructionList* psInstructionEntry
		FFGenInstruction* psInst
		IMG_UINT32 uBackCount
		IMG_UINT32 uMinBackCount
		IMG_UINT32 uMaxBackCount
		IMG_UINT32 uNumPaddingInstructions
		{
			IMG_UINT32 i
		}
	}

	// inlined
	// function
	void M4x4_efos(
		FFGenCode* psFFGenCode
		FFGenReg* psDest
		FFGenReg* psVector
		FFGenReg* psMatrix
		IMG_UINT32 uDestBaseoffset
		)
	{
		FFGenInstruction* psInst
		FFGenReg* psTemp
		{
			IMG_UINT32 i
		}
		{
			IMG_UINT32 i
		}
		{
			IMG_UINT32 i
		}
		{
			IMG_UINT32 i
		}
		{
			IMG_UINT32 i
		}
		{
			IMG_UINT32 i
		}
	}

	// inlined
	// function
	void M4x4_dp4(
		FFGenCode* psFFGenCode
		FFGenReg* psDest
		FFGenReg* psVector
		FFGenReg* psMatrix
		IMG_UINT32 uDestBaseOffset
		)
	{
		IMG_UINT32 i
		FFGenInstruction* psInst
		{
			IMG_UINT32 i
		}
		{
			IMG_UINT32 i
		}
		{
			IMG_UINT i
		}
		{
			IMG_UINT i
		}
		{
			IMG_UINT32 i
		}
	}

}


// external function PC=<0x4a14c;0x4a1c4>
void END_PRED(
	FFGenCode* psFFGenCode
	IMG_CHAR* pszComment
	)
{
	FFGenInstruction* psInst
	FFGenReg* psLabel
	IMG_UINT32 uLabelID
}


// external function PC=<0x4a1c4;0x4a274>
void ELSE_PRED(
	FFGenCode* psFFGenCode
	IMG_CHAR* pszDesc
	IMG_CHAR* pszComment
	)
{
	FFGenInstruction* psInst
	FFGenReg* psLabel
	IMG_UINT32 uElseBlockLabelID
	IMG_UINT32 uEndBlockLabelID
}


// external function PC=<0x4a274;0x4a328>
void IF_PRED(
	FFGenCode* psFFGenCode
	FFGenReg* psPredReg
	IMG_CHAR* pszDesc
	IMG_CHAR* pszComment
	)
{
	FFGenInstruction* psInst
	FFGenReg* psLabel
	IMG_UINT32 uLabelID
}


// external function PC=<0x4a328;0x4a650>
void M4x3(
	FFGenCode* psFFGenCode
	FFGenReg* psDest
	FFGenReg* psVector
	FFGenReg* psMatrix
	IMG_CHAR* pszComment
	)
{
	IMG_UINT32 i
	FFGenInstruction* psInst
	{
		IMG_UINT i
	}
	{
		IMG_UINT i
	}
}


// external function PC=<0x4a650;0x4a6e0>
void IssueOutstandingWDFs(
	FFGenCode* psFFGenCode
	)
{
	IMG_UINT32 i
	FFGenInstruction* psInst
	IMG_BOOL bOutstandingWDFs
}


struct _IO_FILE* stdin

struct _IO_FILE* stdout

const IMG_UINT32[NaN] g_puOpcodeArgumentCount

const IMG_UINT32[NaN] g_puOpcodeAcceptsSkipInv

const IMG_UINT32[NaN] g_puOpcodeAcceptsNoSched

