6916 lines
88 KiB
NASM
6916 lines
88 KiB
NASM
export GetIDForString
|
|
code
|
|
proc GetIDForString 8 8
|
|
file "../q_shared.c"
|
|
line 14
|
|
;1:// Copyright (C) 1999-2000 Id Software, Inc.
|
|
;2://
|
|
;3:// q_shared.c -- stateless support routines that are included in each code dll
|
|
;4:#include "q_shared.h"
|
|
;5:
|
|
;6:/*
|
|
;7:-------------------------
|
|
;8:GetIDForString
|
|
;9:-------------------------
|
|
;10:*/
|
|
;11:
|
|
;12:
|
|
;13:int GetIDForString ( stringID_table_t *table, const char *string )
|
|
;14:{
|
|
line 15
|
|
;15: int index = 0;
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $38
|
|
JUMPV
|
|
LABELV $37
|
|
line 19
|
|
;16:
|
|
;17: while ( ( table[index].name != NULL ) &&
|
|
;18: ( table[index].name[0] != 0 ) )
|
|
;19: {
|
|
line 20
|
|
;20: if ( !Q_stricmp( table[index].name, string ) )
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 3
|
|
LSHI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDP4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 Q_stricmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $40
|
|
line 21
|
|
;21: return table[index].id;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 3
|
|
LSHI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
RETI4
|
|
ADDRGP4 $36
|
|
JUMPV
|
|
LABELV $40
|
|
line 23
|
|
;22:
|
|
;23: index++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 24
|
|
;24: }
|
|
LABELV $38
|
|
line 17
|
|
ADDRLP4 4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 3
|
|
LSHI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $42
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $37
|
|
LABELV $42
|
|
line 26
|
|
;25:
|
|
;26: return -1;
|
|
CNSTI4 -1
|
|
RETI4
|
|
LABELV $36
|
|
endproc GetIDForString 8 8
|
|
export GetStringForID
|
|
proc GetStringForID 8 0
|
|
line 36
|
|
;27:}
|
|
;28:
|
|
;29:/*
|
|
;30:-------------------------
|
|
;31:GetStringForID
|
|
;32:-------------------------
|
|
;33:*/
|
|
;34:
|
|
;35:const char *GetStringForID( stringID_table_t *table, int id )
|
|
;36:{
|
|
line 37
|
|
;37: int index = 0;
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $45
|
|
JUMPV
|
|
LABELV $44
|
|
line 41
|
|
;38:
|
|
;39: while ( ( table[index].name != NULL ) &&
|
|
;40: ( table[index].name[0] != 0 ) )
|
|
;41: {
|
|
line 42
|
|
;42: if ( table[index].id == id )
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 3
|
|
LSHI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRI4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
NEI4 $47
|
|
line 43
|
|
;43: return table[index].name;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 3
|
|
LSHI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDP4
|
|
INDIRP4
|
|
RETP4
|
|
ADDRGP4 $43
|
|
JUMPV
|
|
LABELV $47
|
|
line 45
|
|
;44:
|
|
;45: index++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 46
|
|
;46: }
|
|
LABELV $45
|
|
line 39
|
|
ADDRLP4 4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 3
|
|
LSHI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $49
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $44
|
|
LABELV $49
|
|
line 48
|
|
;47:
|
|
;48: return NULL;
|
|
CNSTP4 0
|
|
RETP4
|
|
LABELV $43
|
|
endproc GetStringForID 8 0
|
|
export Com_Clamp
|
|
proc Com_Clamp 0 0
|
|
line 52
|
|
;49:}
|
|
;50:
|
|
;51:
|
|
;52:float Com_Clamp( float min, float max, float value ) {
|
|
line 53
|
|
;53: if ( value < min ) {
|
|
ADDRFP4 8
|
|
INDIRF4
|
|
ADDRFP4 0
|
|
INDIRF4
|
|
GEF4 $51
|
|
line 54
|
|
;54: return min;
|
|
ADDRFP4 0
|
|
INDIRF4
|
|
RETF4
|
|
ADDRGP4 $50
|
|
JUMPV
|
|
LABELV $51
|
|
line 56
|
|
;55: }
|
|
;56: if ( value > max ) {
|
|
ADDRFP4 8
|
|
INDIRF4
|
|
ADDRFP4 4
|
|
INDIRF4
|
|
LEF4 $53
|
|
line 57
|
|
;57: return max;
|
|
ADDRFP4 4
|
|
INDIRF4
|
|
RETF4
|
|
ADDRGP4 $50
|
|
JUMPV
|
|
LABELV $53
|
|
line 59
|
|
;58: }
|
|
;59: return value;
|
|
ADDRFP4 8
|
|
INDIRF4
|
|
RETF4
|
|
LABELV $50
|
|
endproc Com_Clamp 0 0
|
|
export COM_SkipPath
|
|
proc COM_SkipPath 4 0
|
|
line 69
|
|
;60:}
|
|
;61:
|
|
;62:
|
|
;63:/*
|
|
;64:============
|
|
;65:COM_SkipPath
|
|
;66:============
|
|
;67:*/
|
|
;68:char *COM_SkipPath (char *pathname)
|
|
;69:{
|
|
line 72
|
|
;70: char *last;
|
|
;71:
|
|
;72: last = pathname;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRGP4 $57
|
|
JUMPV
|
|
LABELV $56
|
|
line 74
|
|
;73: while (*pathname)
|
|
;74: {
|
|
line 75
|
|
;75: if (*pathname=='/')
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 47
|
|
NEI4 $59
|
|
line 76
|
|
;76: last = pathname+1;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $59
|
|
line 77
|
|
;77: pathname++;
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 78
|
|
;78: }
|
|
LABELV $57
|
|
line 73
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $56
|
|
line 79
|
|
;79: return last;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
RETP4
|
|
LABELV $55
|
|
endproc COM_SkipPath 4 0
|
|
export COM_StripExtension
|
|
proc COM_StripExtension 12 0
|
|
line 87
|
|
;80:}
|
|
;81:
|
|
;82:/*
|
|
;83:============
|
|
;84:COM_StripExtension
|
|
;85:============
|
|
;86:*/
|
|
;87:void COM_StripExtension( const char *in, char *out ) {
|
|
ADDRGP4 $63
|
|
JUMPV
|
|
LABELV $62
|
|
line 88
|
|
;88: while ( *in && *in != '.' ) {
|
|
line 89
|
|
;89: *out++ = *in++;
|
|
ADDRLP4 0
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRFP4 4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI1
|
|
ASGNI1
|
|
line 90
|
|
;90: }
|
|
LABELV $63
|
|
line 88
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $65
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 46
|
|
NEI4 $62
|
|
LABELV $65
|
|
line 91
|
|
;91: *out = 0;
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 92
|
|
;92:}
|
|
LABELV $61
|
|
endproc COM_StripExtension 12 0
|
|
export COM_DefaultExtension
|
|
proc COM_DefaultExtension 76 20
|
|
line 100
|
|
;93:
|
|
;94:
|
|
;95:/*
|
|
;96:==================
|
|
;97:COM_DefaultExtension
|
|
;98:==================
|
|
;99:*/
|
|
;100:void COM_DefaultExtension (char *path, int maxSize, const char *extension ) {
|
|
line 108
|
|
;101: char oldPath[MAX_QPATH];
|
|
;102: char *src;
|
|
;103:
|
|
;104://
|
|
;105:// if path doesn't have a .EXT, append extension
|
|
;106:// (extension should include the .)
|
|
;107://
|
|
;108: src = path + strlen(path) - 1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 68
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 68
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI4 -1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRGP4 $68
|
|
JUMPV
|
|
LABELV $67
|
|
line 110
|
|
;109:
|
|
;110: while (*src != '/' && src != path) {
|
|
line 111
|
|
;111: if ( *src == '.' ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 46
|
|
NEI4 $70
|
|
line 112
|
|
;112: return; // it has an extension
|
|
ADDRGP4 $66
|
|
JUMPV
|
|
LABELV $70
|
|
line 114
|
|
;113: }
|
|
;114: src--;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 -1
|
|
ADDP4
|
|
ASGNP4
|
|
line 115
|
|
;115: }
|
|
LABELV $68
|
|
line 110
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 47
|
|
EQI4 $72
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
NEU4 $67
|
|
LABELV $72
|
|
line 117
|
|
;116:
|
|
;117: Q_strncpyz( oldPath, path, sizeof( oldPath ) );
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 64
|
|
ARGI4
|
|
ADDRGP4 Q_strncpyz
|
|
CALLV
|
|
pop
|
|
line 118
|
|
;118: Com_sprintf( path, maxSize, "%s%s", oldPath, extension );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 $73
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Com_sprintf
|
|
CALLV
|
|
pop
|
|
line 119
|
|
;119:}
|
|
LABELV $66
|
|
endproc COM_DefaultExtension 76 20
|
|
export ShortSwap
|
|
proc ShortSwap 2 0
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
CVII2 4
|
|
ASGNI2
|
|
line 151
|
|
;120:
|
|
;121:/*
|
|
;122:============================================================================
|
|
;123:
|
|
;124: BYTE ORDER FUNCTIONS
|
|
;125:
|
|
;126:============================================================================
|
|
;127:*/
|
|
;128:/*
|
|
;129:// can't just use function pointers, or dll linkage can
|
|
;130:// mess up when qcommon is included in multiple places
|
|
;131:static short (*_BigShort) (short l);
|
|
;132:static short (*_LittleShort) (short l);
|
|
;133:static int (*_BigLong) (int l);
|
|
;134:static int (*_LittleLong) (int l);
|
|
;135:static qint64 (*_BigLong64) (qint64 l);
|
|
;136:static qint64 (*_LittleLong64) (qint64 l);
|
|
;137:static float (*_BigFloat) (const float *l);
|
|
;138:static float (*_LittleFloat) (const float *l);
|
|
;139:
|
|
;140:short BigShort(short l){return _BigShort(l);}
|
|
;141:short LittleShort(short l) {return _LittleShort(l);}
|
|
;142:int BigLong (int l) {return _BigLong(l);}
|
|
;143:int LittleLong (int l) {return _LittleLong(l);}
|
|
;144:qint64 BigLong64 (qint64 l) {return _BigLong64(l);}
|
|
;145:qint64 LittleLong64 (qint64 l) {return _LittleLong64(l);}
|
|
;146:float BigFloat (const float *l) {return _BigFloat(l);}
|
|
;147:float LittleFloat (const float *l) {return _LittleFloat(l);}
|
|
;148:*/
|
|
;149:
|
|
;150:short ShortSwap (short l)
|
|
;151:{
|
|
line 154
|
|
;152: byte b1,b2;
|
|
;153:
|
|
;154: b1 = l&255;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRI2
|
|
CVII4 2
|
|
CNSTI4 255
|
|
BANDI4
|
|
CVIU4 4
|
|
CVUU1 4
|
|
ASGNU1
|
|
line 155
|
|
;155: b2 = (l>>8)&255;
|
|
ADDRLP4 1
|
|
ADDRFP4 0
|
|
INDIRI2
|
|
CVII4 2
|
|
CNSTI4 8
|
|
RSHI4
|
|
CNSTI4 255
|
|
BANDI4
|
|
CVIU4 4
|
|
CVUU1 4
|
|
ASGNU1
|
|
line 157
|
|
;156:
|
|
;157: return (b1<<8) + b2;
|
|
ADDRLP4 0
|
|
INDIRU1
|
|
CVUI4 1
|
|
CNSTI4 8
|
|
LSHI4
|
|
ADDRLP4 1
|
|
INDIRU1
|
|
CVUI4 1
|
|
ADDI4
|
|
CVII2 4
|
|
CVII4 2
|
|
RETI4
|
|
LABELV $74
|
|
endproc ShortSwap 2 0
|
|
export ShortNoSwap
|
|
proc ShortNoSwap 0 0
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
CVII2 4
|
|
ASGNI2
|
|
line 161
|
|
;158:}
|
|
;159:
|
|
;160:short ShortNoSwap (short l)
|
|
;161:{
|
|
line 162
|
|
;162: return l;
|
|
ADDRFP4 0
|
|
INDIRI2
|
|
CVII4 2
|
|
RETI4
|
|
LABELV $75
|
|
endproc ShortNoSwap 0 0
|
|
export LongSwap
|
|
proc LongSwap 4 0
|
|
line 166
|
|
;163:}
|
|
;164:
|
|
;165:int LongSwap (int l)
|
|
;166:{
|
|
line 169
|
|
;167: byte b1,b2,b3,b4;
|
|
;168:
|
|
;169: b1 = l&255;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
CNSTI4 255
|
|
BANDI4
|
|
CVIU4 4
|
|
CVUU1 4
|
|
ASGNU1
|
|
line 170
|
|
;170: b2 = (l>>8)&255;
|
|
ADDRLP4 1
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
CNSTI4 8
|
|
RSHI4
|
|
CNSTI4 255
|
|
BANDI4
|
|
CVIU4 4
|
|
CVUU1 4
|
|
ASGNU1
|
|
line 171
|
|
;171: b3 = (l>>16)&255;
|
|
ADDRLP4 2
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
CNSTI4 16
|
|
RSHI4
|
|
CNSTI4 255
|
|
BANDI4
|
|
CVIU4 4
|
|
CVUU1 4
|
|
ASGNU1
|
|
line 172
|
|
;172: b4 = (l>>24)&255;
|
|
ADDRLP4 3
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
CNSTI4 24
|
|
RSHI4
|
|
CNSTI4 255
|
|
BANDI4
|
|
CVIU4 4
|
|
CVUU1 4
|
|
ASGNU1
|
|
line 174
|
|
;173:
|
|
;174: return ((int)b1<<24) + ((int)b2<<16) + ((int)b3<<8) + b4;
|
|
ADDRLP4 0
|
|
INDIRU1
|
|
CVUI4 1
|
|
CNSTI4 24
|
|
LSHI4
|
|
ADDRLP4 1
|
|
INDIRU1
|
|
CVUI4 1
|
|
CNSTI4 16
|
|
LSHI4
|
|
ADDI4
|
|
ADDRLP4 2
|
|
INDIRU1
|
|
CVUI4 1
|
|
CNSTI4 8
|
|
LSHI4
|
|
ADDI4
|
|
ADDRLP4 3
|
|
INDIRU1
|
|
CVUI4 1
|
|
ADDI4
|
|
RETI4
|
|
LABELV $76
|
|
endproc LongSwap 4 0
|
|
export LongNoSwap
|
|
proc LongNoSwap 0 0
|
|
line 178
|
|
;175:}
|
|
;176:
|
|
;177:int LongNoSwap (int l)
|
|
;178:{
|
|
line 179
|
|
;179: return l;
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
RETI4
|
|
LABELV $77
|
|
endproc LongNoSwap 0 0
|
|
export Long64Swap
|
|
proc Long64Swap 8 0
|
|
line 183
|
|
;180:}
|
|
;181:
|
|
;182:qint64 Long64Swap (qint64 ll)
|
|
;183:{
|
|
line 186
|
|
;184: qint64 result;
|
|
;185:
|
|
;186: result.b0 = ll.b7;
|
|
ADDRLP4 0
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 7
|
|
ADDP4
|
|
INDIRU1
|
|
ASGNU1
|
|
line 187
|
|
;187: result.b1 = ll.b6;
|
|
ADDRLP4 0+1
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 6
|
|
ADDP4
|
|
INDIRU1
|
|
ASGNU1
|
|
line 188
|
|
;188: result.b2 = ll.b5;
|
|
ADDRLP4 0+2
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 5
|
|
ADDP4
|
|
INDIRU1
|
|
ASGNU1
|
|
line 189
|
|
;189: result.b3 = ll.b4;
|
|
ADDRLP4 0+3
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 4
|
|
ADDP4
|
|
INDIRU1
|
|
ASGNU1
|
|
line 190
|
|
;190: result.b4 = ll.b3;
|
|
ADDRLP4 0+4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 3
|
|
ADDP4
|
|
INDIRU1
|
|
ASGNU1
|
|
line 191
|
|
;191: result.b5 = ll.b2;
|
|
ADDRLP4 0+5
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 2
|
|
ADDP4
|
|
INDIRU1
|
|
ASGNU1
|
|
line 192
|
|
;192: result.b6 = ll.b1;
|
|
ADDRLP4 0+6
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
INDIRU1
|
|
ASGNU1
|
|
line 193
|
|
;193: result.b7 = ll.b0;
|
|
ADDRLP4 0+7
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
INDIRU1
|
|
ASGNU1
|
|
line 195
|
|
;194:
|
|
;195: return result;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 0
|
|
INDIRB
|
|
ASGNB 8
|
|
LABELV $78
|
|
endproc Long64Swap 8 0
|
|
export Long64NoSwap
|
|
proc Long64NoSwap 0 0
|
|
line 199
|
|
;196:}
|
|
;197:
|
|
;198:qint64 Long64NoSwap (qint64 ll)
|
|
;199:{
|
|
line 200
|
|
;200: return ll;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
INDIRB
|
|
ASGNB 8
|
|
LABELV $87
|
|
endproc Long64NoSwap 0 0
|
|
export FloatSwap
|
|
proc FloatSwap 12 4
|
|
line 208
|
|
;201:}
|
|
;202:
|
|
;203:typedef union {
|
|
;204: float f;
|
|
;205: unsigned int i;
|
|
;206:} _FloatByteUnion;
|
|
;207:
|
|
;208:float FloatSwap (const float *f) {
|
|
line 212
|
|
;209: const _FloatByteUnion *in;
|
|
;210: _FloatByteUnion out;
|
|
;211:
|
|
;212: in = (_FloatByteUnion *)f;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 213
|
|
;213: out.i = LongSwap(in->i);
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRU4
|
|
CVUI4 4
|
|
ARGI4
|
|
ADDRLP4 8
|
|
ADDRGP4 LongSwap
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CVIU4 4
|
|
ASGNU4
|
|
line 215
|
|
;214:
|
|
;215: return out.f;
|
|
ADDRLP4 4
|
|
INDIRF4
|
|
RETF4
|
|
LABELV $90
|
|
endproc FloatSwap 12 4
|
|
export FloatNoSwap
|
|
proc FloatNoSwap 0 0
|
|
line 219
|
|
;216:}
|
|
;217:
|
|
;218:float FloatNoSwap (const float *f)
|
|
;219:{
|
|
line 220
|
|
;220: return *f;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRF4
|
|
RETF4
|
|
LABELV $91
|
|
endproc FloatNoSwap 0 0
|
|
export COM_BeginParseSession
|
|
proc COM_BeginParseSession 0 16
|
|
line 273
|
|
;221:}
|
|
;222:
|
|
;223:/*
|
|
;224:================
|
|
;225:Swap_Init
|
|
;226:================
|
|
;227:*/
|
|
;228:/*
|
|
;229:void Swap_Init (void)
|
|
;230:{
|
|
;231: byte swaptest[2] = {1,0};
|
|
;232:
|
|
;233:// set the byte swapping variables in a portable manner
|
|
;234: if ( *(short *)swaptest == 1)
|
|
;235: {
|
|
;236: _BigShort = ShortSwap;
|
|
;237: _LittleShort = ShortNoSwap;
|
|
;238: _BigLong = LongSwap;
|
|
;239: _LittleLong = LongNoSwap;
|
|
;240: _BigLong64 = Long64Swap;
|
|
;241: _LittleLong64 = Long64NoSwap;
|
|
;242: _BigFloat = FloatSwap;
|
|
;243: _LittleFloat = FloatNoSwap;
|
|
;244: }
|
|
;245: else
|
|
;246: {
|
|
;247: _BigShort = ShortNoSwap;
|
|
;248: _LittleShort = ShortSwap;
|
|
;249: _BigLong = LongNoSwap;
|
|
;250: _LittleLong = LongSwap;
|
|
;251: _BigLong64 = Long64NoSwap;
|
|
;252: _LittleLong64 = Long64Swap;
|
|
;253: _BigFloat = FloatNoSwap;
|
|
;254: _LittleFloat = FloatSwap;
|
|
;255: }
|
|
;256:
|
|
;257:}
|
|
;258:*/
|
|
;259:
|
|
;260:/*
|
|
;261:============================================================================
|
|
;262:
|
|
;263:PARSING
|
|
;264:
|
|
;265:============================================================================
|
|
;266:*/
|
|
;267:
|
|
;268:static char com_token[MAX_TOKEN_CHARS];
|
|
;269:static char com_parsename[MAX_TOKEN_CHARS];
|
|
;270:static int com_lines;
|
|
;271:
|
|
;272:void COM_BeginParseSession( const char *name )
|
|
;273:{
|
|
line 274
|
|
;274: com_lines = 0;
|
|
ADDRGP4 com_lines
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 275
|
|
;275: Com_sprintf(com_parsename, sizeof(com_parsename), "%s", name);
|
|
ADDRGP4 com_parsename
|
|
ARGP4
|
|
CNSTI4 1024
|
|
ARGI4
|
|
ADDRGP4 $93
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Com_sprintf
|
|
CALLV
|
|
pop
|
|
line 276
|
|
;276:}
|
|
LABELV $92
|
|
endproc COM_BeginParseSession 0 16
|
|
export COM_GetCurrentParseLine
|
|
proc COM_GetCurrentParseLine 0 0
|
|
line 279
|
|
;277:
|
|
;278:int COM_GetCurrentParseLine( void )
|
|
;279:{
|
|
line 280
|
|
;280: return com_lines;
|
|
ADDRGP4 com_lines
|
|
INDIRI4
|
|
RETI4
|
|
LABELV $94
|
|
endproc COM_GetCurrentParseLine 0 0
|
|
export COM_Parse
|
|
proc COM_Parse 4 8
|
|
line 284
|
|
;281:}
|
|
;282:
|
|
;283:char *COM_Parse( const char **data_p )
|
|
;284:{
|
|
line 285
|
|
;285: return COM_ParseExt( data_p, qtrue );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRLP4 0
|
|
ADDRGP4 COM_ParseExt
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
RETP4
|
|
LABELV $95
|
|
endproc COM_Parse 4 8
|
|
bss
|
|
align 1
|
|
LABELV $97
|
|
skip 4096
|
|
export COM_ParseError
|
|
code
|
|
proc COM_ParseError 4 16
|
|
line 289
|
|
;286:}
|
|
;287:
|
|
;288:void COM_ParseError( char *format, ... )
|
|
;289:{
|
|
line 293
|
|
;290: va_list argptr;
|
|
;291: static char string[4096];
|
|
;292:
|
|
;293: va_start (argptr, format);
|
|
ADDRLP4 0
|
|
ADDRFP4 0+4
|
|
ASGNP4
|
|
line 294
|
|
;294: vsprintf (string, format, argptr);
|
|
ADDRGP4 $97
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 vsprintf
|
|
CALLI4
|
|
pop
|
|
line 295
|
|
;295: va_end (argptr);
|
|
ADDRLP4 0
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 297
|
|
;296:
|
|
;297: Com_Printf("ERROR: %s, line %d: %s\n", com_parsename, com_lines, string);
|
|
ADDRGP4 $99
|
|
ARGP4
|
|
ADDRGP4 com_parsename
|
|
ARGP4
|
|
ADDRGP4 com_lines
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 $97
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 298
|
|
;298:}
|
|
LABELV $96
|
|
endproc COM_ParseError 4 16
|
|
bss
|
|
align 1
|
|
LABELV $101
|
|
skip 4096
|
|
export COM_ParseWarning
|
|
code
|
|
proc COM_ParseWarning 4 16
|
|
line 301
|
|
;299:
|
|
;300:void COM_ParseWarning( char *format, ... )
|
|
;301:{
|
|
line 305
|
|
;302: va_list argptr;
|
|
;303: static char string[4096];
|
|
;304:
|
|
;305: va_start (argptr, format);
|
|
ADDRLP4 0
|
|
ADDRFP4 0+4
|
|
ASGNP4
|
|
line 306
|
|
;306: vsprintf (string, format, argptr);
|
|
ADDRGP4 $101
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 vsprintf
|
|
CALLI4
|
|
pop
|
|
line 307
|
|
;307: va_end (argptr);
|
|
ADDRLP4 0
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 309
|
|
;308:
|
|
;309: Com_Printf("WARNING: %s, line %d: %s\n", com_parsename, com_lines, string);
|
|
ADDRGP4 $103
|
|
ARGP4
|
|
ADDRGP4 com_parsename
|
|
ARGP4
|
|
ADDRGP4 com_lines
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 $101
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 310
|
|
;310:}
|
|
LABELV $100
|
|
endproc COM_ParseWarning 4 16
|
|
export SkipWhitespace
|
|
proc SkipWhitespace 8 0
|
|
line 324
|
|
;311:
|
|
;312:/*
|
|
;313:==============
|
|
;314:COM_Parse
|
|
;315:
|
|
;316:Parse a token out of a string
|
|
;317:Will never return NULL, just empty strings
|
|
;318:
|
|
;319:If "allowLineBreaks" is qtrue then an empty
|
|
;320:string will be returned if the next token is
|
|
;321:a newline.
|
|
;322:==============
|
|
;323:*/
|
|
;324:const char *SkipWhitespace( const char *data, qboolean *hasNewLines ) {
|
|
ADDRGP4 $106
|
|
JUMPV
|
|
LABELV $105
|
|
line 327
|
|
;325: int c;
|
|
;326:
|
|
;327: while( (c = *data) <= ' ') {
|
|
line 328
|
|
;328: if( !c ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $108
|
|
line 329
|
|
;329: return NULL;
|
|
CNSTP4 0
|
|
RETP4
|
|
ADDRGP4 $104
|
|
JUMPV
|
|
LABELV $108
|
|
line 331
|
|
;330: }
|
|
;331: if( c == '\n' ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 10
|
|
NEI4 $110
|
|
line 332
|
|
;332: com_lines++;
|
|
ADDRLP4 4
|
|
ADDRGP4 com_lines
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 333
|
|
;333: *hasNewLines = qtrue;
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 334
|
|
;334: }
|
|
LABELV $110
|
|
line 335
|
|
;335: data++;
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 336
|
|
;336: }
|
|
LABELV $106
|
|
line 327
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 32
|
|
LEI4 $105
|
|
line 338
|
|
;337:
|
|
;338: return data;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
RETP4
|
|
LABELV $104
|
|
endproc SkipWhitespace 8 0
|
|
export COM_Compress
|
|
proc COM_Compress 48 0
|
|
line 341
|
|
;339:}
|
|
;340:
|
|
;341:int COM_Compress( char *data_p ) {
|
|
line 344
|
|
;342: char *in, *out;
|
|
;343: int c;
|
|
;344: qboolean newline = qfalse, whitespace = qfalse;
|
|
ADDRLP4 12
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 16
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 346
|
|
;345:
|
|
;346: in = out = data_p;
|
|
ADDRLP4 20
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 20
|
|
INDIRP4
|
|
ASGNP4
|
|
line 347
|
|
;347: if (in) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $113
|
|
ADDRGP4 $116
|
|
JUMPV
|
|
LABELV $115
|
|
line 348
|
|
;348: while ((c = *in) != 0) {
|
|
line 350
|
|
;349: // skip double slash comments
|
|
;350: if ( c == '/' && in[1] == '/' ) {
|
|
ADDRLP4 24
|
|
CNSTI4 47
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
NEI4 $118
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
NEI4 $118
|
|
ADDRGP4 $121
|
|
JUMPV
|
|
LABELV $120
|
|
line 351
|
|
;351: while (*in && *in != '\n') {
|
|
line 352
|
|
;352: in++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 353
|
|
;353: }
|
|
LABELV $121
|
|
line 351
|
|
ADDRLP4 28
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $123
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
CNSTI4 10
|
|
NEI4 $120
|
|
LABELV $123
|
|
line 355
|
|
;354: // skip /* */ comments
|
|
;355: } else if ( c == '/' && in[1] == '*' ) {
|
|
ADDRGP4 $119
|
|
JUMPV
|
|
LABELV $118
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 47
|
|
NEI4 $124
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 42
|
|
NEI4 $124
|
|
ADDRGP4 $127
|
|
JUMPV
|
|
LABELV $126
|
|
line 357
|
|
;356: while ( *in && ( *in != '*' || in[1] != '/' ) )
|
|
;357: in++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $127
|
|
line 356
|
|
ADDRLP4 32
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $129
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
CNSTI4 42
|
|
NEI4 $126
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 47
|
|
NEI4 $126
|
|
LABELV $129
|
|
line 358
|
|
;358: if ( *in )
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
EQI4 $125
|
|
line 359
|
|
;359: in += 2;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 2
|
|
ADDP4
|
|
ASGNP4
|
|
line 361
|
|
;360: // record when we hit a newline
|
|
;361: } else if ( c == '\n' || c == '\r' ) {
|
|
ADDRGP4 $125
|
|
JUMPV
|
|
LABELV $124
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 10
|
|
EQI4 $134
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 13
|
|
NEI4 $132
|
|
LABELV $134
|
|
line 362
|
|
;362: newline = qtrue;
|
|
ADDRLP4 12
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 363
|
|
;363: in++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 365
|
|
;364: // record when we hit whitespace
|
|
;365: } else if ( c == ' ' || c == '\t') {
|
|
ADDRGP4 $133
|
|
JUMPV
|
|
LABELV $132
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 32
|
|
EQI4 $137
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 9
|
|
NEI4 $135
|
|
LABELV $137
|
|
line 366
|
|
;366: whitespace = qtrue;
|
|
ADDRLP4 16
|
|
CNSTI4 1
|
|
ASGNI4
|
|
line 367
|
|
;367: in++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 369
|
|
;368: // an actual token
|
|
;369: } else {
|
|
ADDRGP4 $136
|
|
JUMPV
|
|
LABELV $135
|
|
line 371
|
|
;370: // if we have a pending newline, emit it (and it counts as whitespace)
|
|
;371: if (newline) {
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $138
|
|
line 372
|
|
;372: *out++ = '\n';
|
|
ADDRLP4 36
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI1 10
|
|
ASGNI1
|
|
line 373
|
|
;373: newline = qfalse;
|
|
ADDRLP4 12
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 374
|
|
;374: whitespace = qfalse;
|
|
ADDRLP4 16
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 375
|
|
;375: } if (whitespace) {
|
|
LABELV $138
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $140
|
|
line 376
|
|
;376: *out++ = ' ';
|
|
ADDRLP4 36
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI1 32
|
|
ASGNI1
|
|
line 377
|
|
;377: whitespace = qfalse;
|
|
ADDRLP4 16
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 378
|
|
;378: }
|
|
LABELV $140
|
|
line 381
|
|
;379:
|
|
;380: // copy quoted strings unmolested
|
|
;381: if (c == '"') {
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 34
|
|
NEI4 $142
|
|
line 382
|
|
;382: *out++ = c;
|
|
ADDRLP4 36
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 36
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CVII1 4
|
|
ASGNI1
|
|
line 383
|
|
;383: in++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRGP4 $145
|
|
JUMPV
|
|
LABELV $144
|
|
line 384
|
|
;384: while (1) {
|
|
line 385
|
|
;385: c = *in;
|
|
ADDRLP4 4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
line 386
|
|
;386: if (c && c != '"') {
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $146
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 34
|
|
EQI4 $146
|
|
line 387
|
|
;387: *out++ = c;
|
|
ADDRLP4 44
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 44
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CVII1 4
|
|
ASGNI1
|
|
line 388
|
|
;388: in++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 389
|
|
;389: } else {
|
|
line 390
|
|
;390: break;
|
|
LABELV $148
|
|
line 392
|
|
;391: }
|
|
;392: }
|
|
LABELV $145
|
|
line 384
|
|
ADDRGP4 $144
|
|
JUMPV
|
|
LABELV $146
|
|
line 393
|
|
;393: if (c == '"') {
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 34
|
|
NEI4 $143
|
|
line 394
|
|
;394: *out++ = c;
|
|
ADDRLP4 40
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 40
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CVII1 4
|
|
ASGNI1
|
|
line 395
|
|
;395: in++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 396
|
|
;396: }
|
|
line 397
|
|
;397: } else {
|
|
ADDRGP4 $143
|
|
JUMPV
|
|
LABELV $142
|
|
line 398
|
|
;398: *out = c;
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CVII1 4
|
|
ASGNI1
|
|
line 399
|
|
;399: out++;
|
|
ADDRLP4 8
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 400
|
|
;400: in++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 401
|
|
;401: }
|
|
LABELV $143
|
|
line 402
|
|
;402: }
|
|
LABELV $136
|
|
LABELV $133
|
|
LABELV $125
|
|
LABELV $119
|
|
line 403
|
|
;403: }
|
|
LABELV $116
|
|
line 348
|
|
ADDRLP4 24
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $115
|
|
line 404
|
|
;404: }
|
|
LABELV $113
|
|
line 405
|
|
;405: *out = 0;
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 406
|
|
;406: return out - data_p;
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
SUBU4
|
|
CVUI4 4
|
|
RETI4
|
|
LABELV $112
|
|
endproc COM_Compress 48 0
|
|
export COM_ParseExt
|
|
proc COM_ParseExt 36 8
|
|
line 410
|
|
;407:}
|
|
;408:
|
|
;409:char *COM_ParseExt( const char **data_p, qboolean allowLineBreaks )
|
|
;410:{
|
|
line 411
|
|
;411: int c = 0, len;
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 412
|
|
;412: qboolean hasNewLines = qfalse;
|
|
ADDRLP4 12
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 415
|
|
;413: const char *data;
|
|
;414:
|
|
;415: data = *data_p;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 416
|
|
;416: len = 0;
|
|
ADDRLP4 8
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 417
|
|
;417: com_token[0] = 0;
|
|
ADDRGP4 com_token
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 420
|
|
;418:
|
|
;419: // make sure incoming data is valid
|
|
;420: if ( !data )
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $155
|
|
line 421
|
|
;421: {
|
|
line 422
|
|
;422: *data_p = NULL;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 423
|
|
;423: return com_token;
|
|
ADDRGP4 com_token
|
|
RETP4
|
|
ADDRGP4 $151
|
|
JUMPV
|
|
LABELV $154
|
|
line 427
|
|
;424: }
|
|
;425:
|
|
;426: while ( 1 )
|
|
;427: {
|
|
line 429
|
|
;428: // skip whitespace
|
|
;429: data = SkipWhitespace( data, &hasNewLines );
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12
|
|
ARGP4
|
|
ADDRLP4 16
|
|
ADDRGP4 SkipWhitespace
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ASGNP4
|
|
line 430
|
|
;430: if ( !data )
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $157
|
|
line 431
|
|
;431: {
|
|
line 432
|
|
;432: *data_p = NULL;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 433
|
|
;433: return com_token;
|
|
ADDRGP4 com_token
|
|
RETP4
|
|
ADDRGP4 $151
|
|
JUMPV
|
|
LABELV $157
|
|
line 435
|
|
;434: }
|
|
;435: if ( hasNewLines && !allowLineBreaks )
|
|
ADDRLP4 20
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
EQI4 $159
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
NEI4 $159
|
|
line 436
|
|
;436: {
|
|
line 437
|
|
;437: *data_p = data;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 438
|
|
;438: return com_token;
|
|
ADDRGP4 com_token
|
|
RETP4
|
|
ADDRGP4 $151
|
|
JUMPV
|
|
LABELV $159
|
|
line 441
|
|
;439: }
|
|
;440:
|
|
;441: c = *data;
|
|
ADDRLP4 4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
line 444
|
|
;442:
|
|
;443: // skip double slash comments
|
|
;444: if ( c == '/' && data[1] == '/' )
|
|
ADDRLP4 24
|
|
CNSTI4 47
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
NEI4 $161
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ADDRLP4 24
|
|
INDIRI4
|
|
NEI4 $161
|
|
line 445
|
|
;445: {
|
|
line 446
|
|
;446: data += 2;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 2
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRGP4 $164
|
|
JUMPV
|
|
LABELV $163
|
|
line 447
|
|
;447: while (*data && *data != '\n') {
|
|
line 448
|
|
;448: data++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 449
|
|
;449: }
|
|
LABELV $164
|
|
line 447
|
|
ADDRLP4 28
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $166
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
CNSTI4 10
|
|
NEI4 $163
|
|
LABELV $166
|
|
line 450
|
|
;450: }
|
|
ADDRGP4 $162
|
|
JUMPV
|
|
LABELV $161
|
|
line 452
|
|
;451: // skip /* */ comments
|
|
;452: else if ( c=='/' && data[1] == '*' )
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 47
|
|
NEI4 $156
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 42
|
|
NEI4 $156
|
|
line 453
|
|
;453: {
|
|
line 454
|
|
;454: data += 2;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 2
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRGP4 $170
|
|
JUMPV
|
|
LABELV $169
|
|
line 456
|
|
;455: while ( *data && ( *data != '*' || data[1] != '/' ) )
|
|
;456: {
|
|
line 457
|
|
;457: data++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 458
|
|
;458: }
|
|
LABELV $170
|
|
line 455
|
|
ADDRLP4 32
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $172
|
|
ADDRLP4 32
|
|
INDIRI4
|
|
CNSTI4 42
|
|
NEI4 $169
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 47
|
|
NEI4 $169
|
|
LABELV $172
|
|
line 459
|
|
;459: if ( *data )
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
EQI4 $168
|
|
line 460
|
|
;460: {
|
|
line 461
|
|
;461: data += 2;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 2
|
|
ADDP4
|
|
ASGNP4
|
|
line 462
|
|
;462: }
|
|
line 463
|
|
;463: }
|
|
line 465
|
|
;464: else
|
|
;465: {
|
|
line 466
|
|
;466: break;
|
|
LABELV $168
|
|
LABELV $162
|
|
line 468
|
|
;467: }
|
|
;468: }
|
|
LABELV $155
|
|
line 426
|
|
ADDRGP4 $154
|
|
JUMPV
|
|
LABELV $156
|
|
line 471
|
|
;469:
|
|
;470: // handle quoted strings
|
|
;471: if (c == '\"')
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 34
|
|
NEI4 $175
|
|
line 472
|
|
;472: {
|
|
line 473
|
|
;473: data++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRGP4 $178
|
|
JUMPV
|
|
LABELV $177
|
|
line 475
|
|
;474: while (1)
|
|
;475: {
|
|
line 476
|
|
;476: c = *data++;
|
|
ADDRLP4 16
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
line 477
|
|
;477: if (c=='\"' || !c)
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 34
|
|
EQI4 $182
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $180
|
|
LABELV $182
|
|
line 478
|
|
;478: {
|
|
line 479
|
|
;479: com_token[len] = 0;
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDRGP4 com_token
|
|
ADDP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 480
|
|
;480: *data_p = ( char * ) data;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 481
|
|
;481: return com_token;
|
|
ADDRGP4 com_token
|
|
RETP4
|
|
ADDRGP4 $151
|
|
JUMPV
|
|
LABELV $180
|
|
line 483
|
|
;482: }
|
|
;483: if (len < MAX_TOKEN_CHARS)
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 1024
|
|
GEI4 $183
|
|
line 484
|
|
;484: {
|
|
line 485
|
|
;485: com_token[len] = c;
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDRGP4 com_token
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CVII1 4
|
|
ASGNI1
|
|
line 486
|
|
;486: len++;
|
|
ADDRLP4 8
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 487
|
|
;487: }
|
|
LABELV $183
|
|
line 488
|
|
;488: }
|
|
LABELV $178
|
|
line 474
|
|
ADDRGP4 $177
|
|
JUMPV
|
|
line 489
|
|
;489: }
|
|
LABELV $175
|
|
LABELV $185
|
|
line 493
|
|
;490:
|
|
;491: // parse a regular word
|
|
;492: do
|
|
;493: {
|
|
line 494
|
|
;494: if (len < MAX_TOKEN_CHARS)
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 1024
|
|
GEI4 $188
|
|
line 495
|
|
;495: {
|
|
line 496
|
|
;496: com_token[len] = c;
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDRGP4 com_token
|
|
ADDP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CVII1 4
|
|
ASGNI1
|
|
line 497
|
|
;497: len++;
|
|
ADDRLP4 8
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 498
|
|
;498: }
|
|
LABELV $188
|
|
line 499
|
|
;499: data++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 500
|
|
;500: c = *data;
|
|
ADDRLP4 4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
line 501
|
|
;501: if ( c == '\n' )
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 10
|
|
NEI4 $190
|
|
line 502
|
|
;502: com_lines++;
|
|
ADDRLP4 16
|
|
ADDRGP4 com_lines
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $190
|
|
line 503
|
|
;503: } while (c>32);
|
|
LABELV $186
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 32
|
|
GTI4 $185
|
|
line 505
|
|
;504:
|
|
;505: if (len == MAX_TOKEN_CHARS)
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 1024
|
|
NEI4 $192
|
|
line 506
|
|
;506: {
|
|
line 508
|
|
;507:// Com_Printf ("Token exceeded %i chars, discarded.\n", MAX_TOKEN_CHARS);
|
|
;508: len = 0;
|
|
ADDRLP4 8
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 509
|
|
;509: }
|
|
LABELV $192
|
|
line 510
|
|
;510: com_token[len] = 0;
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ADDRGP4 com_token
|
|
ADDP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 512
|
|
;511:
|
|
;512: *data_p = ( char * ) data;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 513
|
|
;513: return com_token;
|
|
ADDRGP4 com_token
|
|
RETP4
|
|
LABELV $151
|
|
endproc COM_ParseExt 36 8
|
|
export COM_MatchToken
|
|
proc COM_MatchToken 12 16
|
|
line 577
|
|
;514:}
|
|
;515:
|
|
;516:
|
|
;517:#if 0
|
|
;518:// no longer used
|
|
;519:/*
|
|
;520:===============
|
|
;521:COM_ParseInfos
|
|
;522:===============
|
|
;523:*/
|
|
;524:int COM_ParseInfos( char *buf, int max, char infos[][MAX_INFO_STRING] ) {
|
|
;525: char *token;
|
|
;526: int count;
|
|
;527: char key[MAX_TOKEN_CHARS];
|
|
;528:
|
|
;529: count = 0;
|
|
;530:
|
|
;531: while ( 1 ) {
|
|
;532: token = COM_Parse( &buf );
|
|
;533: if ( !token[0] ) {
|
|
;534: break;
|
|
;535: }
|
|
;536: if ( strcmp( token, "{" ) ) {
|
|
;537: Com_Printf( "Missing { in info file\n" );
|
|
;538: break;
|
|
;539: }
|
|
;540:
|
|
;541: if ( count == max ) {
|
|
;542: Com_Printf( "Max infos exceeded\n" );
|
|
;543: break;
|
|
;544: }
|
|
;545:
|
|
;546: infos[count][0] = 0;
|
|
;547: while ( 1 ) {
|
|
;548: token = COM_ParseExt( &buf, qtrue );
|
|
;549: if ( !token[0] ) {
|
|
;550: Com_Printf( "Unexpected end of info file\n" );
|
|
;551: break;
|
|
;552: }
|
|
;553: if ( !strcmp( token, "}" ) ) {
|
|
;554: break;
|
|
;555: }
|
|
;556: Q_strncpyz( key, token, sizeof( key ) );
|
|
;557:
|
|
;558: token = COM_ParseExt( &buf, qfalse );
|
|
;559: if ( !token[0] ) {
|
|
;560: strcpy( token, "<NULL>" );
|
|
;561: }
|
|
;562: Info_SetValueForKey( infos[count], key, token );
|
|
;563: }
|
|
;564: count++;
|
|
;565: }
|
|
;566:
|
|
;567: return count;
|
|
;568:}
|
|
;569:#endif
|
|
;570:
|
|
;571:
|
|
;572:/*
|
|
;573:==================
|
|
;574:COM_MatchToken
|
|
;575:==================
|
|
;576:*/
|
|
;577:void COM_MatchToken( const char **buf_p, char *match ) {
|
|
line 580
|
|
;578: char *token;
|
|
;579:
|
|
;580: token = COM_Parse( buf_p );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 COM_Parse
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 581
|
|
;581: if ( strcmp( token, match ) ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ADDRGP4 strcmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $195
|
|
line 582
|
|
;582: Com_Error( ERR_DROP, "MatchToken: %s != %s", token, match );
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 $197
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Com_Error
|
|
CALLV
|
|
pop
|
|
line 583
|
|
;583: }
|
|
LABELV $195
|
|
line 584
|
|
;584:}
|
|
LABELV $194
|
|
endproc COM_MatchToken 12 16
|
|
export SkipBracedSection
|
|
proc SkipBracedSection 12 8
|
|
line 596
|
|
;585:
|
|
;586:
|
|
;587:/*
|
|
;588:=================
|
|
;589:SkipBracedSection
|
|
;590:
|
|
;591:The next token should be an open brace.
|
|
;592:Skips until a matching close brace is found.
|
|
;593:Internal brace depths are properly skipped.
|
|
;594:=================
|
|
;595:*/
|
|
;596:void SkipBracedSection (const char **program) {
|
|
line 600
|
|
;597: char *token;
|
|
;598: int depth;
|
|
;599:
|
|
;600: depth = 0;
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
LABELV $199
|
|
line 601
|
|
;601: do {
|
|
line 602
|
|
;602: token = COM_ParseExt( program, qtrue );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRLP4 8
|
|
ADDRGP4 COM_ParseExt
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
line 603
|
|
;603: if( token[1] == 0 ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $202
|
|
line 604
|
|
;604: if( token[0] == '{' ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 123
|
|
NEI4 $204
|
|
line 605
|
|
;605: depth++;
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 606
|
|
;606: }
|
|
ADDRGP4 $205
|
|
JUMPV
|
|
LABELV $204
|
|
line 607
|
|
;607: else if( token[0] == '}' ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 125
|
|
NEI4 $206
|
|
line 608
|
|
;608: depth--;
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
SUBI4
|
|
ASGNI4
|
|
line 609
|
|
;609: }
|
|
LABELV $206
|
|
LABELV $205
|
|
line 610
|
|
;610: }
|
|
LABELV $202
|
|
line 611
|
|
;611: } while( depth && *program );
|
|
LABELV $200
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $208
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $199
|
|
LABELV $208
|
|
line 612
|
|
;612:}
|
|
LABELV $198
|
|
endproc SkipBracedSection 12 8
|
|
export SkipRestOfLine
|
|
proc SkipRestOfLine 16 0
|
|
line 619
|
|
;613:
|
|
;614:/*
|
|
;615:=================
|
|
;616:SkipRestOfLine
|
|
;617:=================
|
|
;618:*/
|
|
;619:void SkipRestOfLine ( const char **data ) {
|
|
line 623
|
|
;620: const char *p;
|
|
;621: int c;
|
|
;622:
|
|
;623: p = *data;
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRGP4 $211
|
|
JUMPV
|
|
LABELV $210
|
|
line 624
|
|
;624: while ( (c = *p++) != 0 ) {
|
|
line 625
|
|
;625: if ( c == '\n' ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 10
|
|
NEI4 $213
|
|
line 626
|
|
;626: com_lines++;
|
|
ADDRLP4 8
|
|
ADDRGP4 com_lines
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 627
|
|
;627: break;
|
|
ADDRGP4 $212
|
|
JUMPV
|
|
LABELV $213
|
|
line 629
|
|
;628: }
|
|
;629: }
|
|
LABELV $211
|
|
line 624
|
|
ADDRLP4 8
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $210
|
|
LABELV $212
|
|
line 631
|
|
;630:
|
|
;631: *data = p;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 632
|
|
;632:}
|
|
LABELV $209
|
|
endproc SkipRestOfLine 16 0
|
|
export Parse1DMatrix
|
|
proc Parse1DMatrix 16 8
|
|
line 635
|
|
;633:
|
|
;634:
|
|
;635:void Parse1DMatrix (const char **buf_p, int x, float *m) {
|
|
line 639
|
|
;636: char *token;
|
|
;637: int i;
|
|
;638:
|
|
;639: COM_MatchToken( buf_p, "(" );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $216
|
|
ARGP4
|
|
ADDRGP4 COM_MatchToken
|
|
CALLV
|
|
pop
|
|
line 641
|
|
;640:
|
|
;641: for (i = 0 ; i < x ; i++) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $220
|
|
JUMPV
|
|
LABELV $217
|
|
line 642
|
|
;642: token = COM_Parse(buf_p);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ADDRGP4 COM_Parse
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
line 643
|
|
;643: m[i] = atof(token);
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 12
|
|
ADDRGP4 atof
|
|
CALLF4
|
|
ASGNF4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ADDP4
|
|
ADDRLP4 12
|
|
INDIRF4
|
|
ASGNF4
|
|
line 644
|
|
;644: }
|
|
LABELV $218
|
|
line 641
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $220
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
LTI4 $217
|
|
line 646
|
|
;645:
|
|
;646: COM_MatchToken( buf_p, ")" );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $221
|
|
ARGP4
|
|
ADDRGP4 COM_MatchToken
|
|
CALLV
|
|
pop
|
|
line 647
|
|
;647:}
|
|
LABELV $215
|
|
endproc Parse1DMatrix 16 8
|
|
export Parse2DMatrix
|
|
proc Parse2DMatrix 8 12
|
|
line 649
|
|
;648:
|
|
;649:void Parse2DMatrix (const char **buf_p, int y, int x, float *m) {
|
|
line 652
|
|
;650: int i;
|
|
;651:
|
|
;652: COM_MatchToken( buf_p, "(" );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $216
|
|
ARGP4
|
|
ADDRGP4 COM_MatchToken
|
|
CALLV
|
|
pop
|
|
line 654
|
|
;653:
|
|
;654: for (i = 0 ; i < y ; i++) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $226
|
|
JUMPV
|
|
LABELV $223
|
|
line 655
|
|
;655: Parse1DMatrix (buf_p, x, m + i * x);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
MULI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 12
|
|
INDIRP4
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 Parse1DMatrix
|
|
CALLV
|
|
pop
|
|
line 656
|
|
;656: }
|
|
LABELV $224
|
|
line 654
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $226
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
LTI4 $223
|
|
line 658
|
|
;657:
|
|
;658: COM_MatchToken( buf_p, ")" );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $221
|
|
ARGP4
|
|
ADDRGP4 COM_MatchToken
|
|
CALLV
|
|
pop
|
|
line 659
|
|
;659:}
|
|
LABELV $222
|
|
endproc Parse2DMatrix 8 12
|
|
export Parse3DMatrix
|
|
proc Parse3DMatrix 12 16
|
|
line 661
|
|
;660:
|
|
;661:void Parse3DMatrix (const char **buf_p, int z, int y, int x, float *m) {
|
|
line 664
|
|
;662: int i;
|
|
;663:
|
|
;664: COM_MatchToken( buf_p, "(" );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $216
|
|
ARGP4
|
|
ADDRGP4 COM_MatchToken
|
|
CALLV
|
|
pop
|
|
line 666
|
|
;665:
|
|
;666: for (i = 0 ; i < z ; i++) {
|
|
ADDRLP4 0
|
|
CNSTI4 0
|
|
ASGNI4
|
|
ADDRGP4 $231
|
|
JUMPV
|
|
LABELV $228
|
|
line 667
|
|
;667: Parse2DMatrix (buf_p, y, x, m + i * x*y);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 8
|
|
ADDRFP4 12
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
MULI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
MULI4
|
|
CNSTI4 2
|
|
LSHI4
|
|
ADDRFP4 16
|
|
INDIRP4
|
|
ADDP4
|
|
ARGP4
|
|
ADDRGP4 Parse2DMatrix
|
|
CALLV
|
|
pop
|
|
line 668
|
|
;668: }
|
|
LABELV $229
|
|
line 666
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
LABELV $231
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
LTI4 $228
|
|
line 670
|
|
;669:
|
|
;670: COM_MatchToken( buf_p, ")" );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 $221
|
|
ARGP4
|
|
ADDRGP4 COM_MatchToken
|
|
CALLV
|
|
pop
|
|
line 671
|
|
;671:}
|
|
LABELV $227
|
|
endproc Parse3DMatrix 12 16
|
|
export Q_isprint
|
|
proc Q_isprint 4 0
|
|
line 683
|
|
;672:
|
|
;673:
|
|
;674:/*
|
|
;675:============================================================================
|
|
;676:
|
|
;677: LIBRARY REPLACEMENT FUNCTIONS
|
|
;678:
|
|
;679:============================================================================
|
|
;680:*/
|
|
;681:
|
|
;682:int Q_isprint( int c )
|
|
;683:{
|
|
line 684
|
|
;684: if ( c >= 0x20 && c <= 0x7E )
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 32
|
|
LTI4 $233
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 126
|
|
GTI4 $233
|
|
line 685
|
|
;685: return ( 1 );
|
|
CNSTI4 1
|
|
RETI4
|
|
ADDRGP4 $232
|
|
JUMPV
|
|
LABELV $233
|
|
line 686
|
|
;686: return ( 0 );
|
|
CNSTI4 0
|
|
RETI4
|
|
LABELV $232
|
|
endproc Q_isprint 4 0
|
|
export Q_islower
|
|
proc Q_islower 4 0
|
|
line 690
|
|
;687:}
|
|
;688:
|
|
;689:int Q_islower( int c )
|
|
;690:{
|
|
line 691
|
|
;691: if (c >= 'a' && c <= 'z')
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 97
|
|
LTI4 $236
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 122
|
|
GTI4 $236
|
|
line 692
|
|
;692: return ( 1 );
|
|
CNSTI4 1
|
|
RETI4
|
|
ADDRGP4 $235
|
|
JUMPV
|
|
LABELV $236
|
|
line 693
|
|
;693: return ( 0 );
|
|
CNSTI4 0
|
|
RETI4
|
|
LABELV $235
|
|
endproc Q_islower 4 0
|
|
export Q_isupper
|
|
proc Q_isupper 4 0
|
|
line 697
|
|
;694:}
|
|
;695:
|
|
;696:int Q_isupper( int c )
|
|
;697:{
|
|
line 698
|
|
;698: if (c >= 'A' && c <= 'Z')
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 65
|
|
LTI4 $239
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 90
|
|
GTI4 $239
|
|
line 699
|
|
;699: return ( 1 );
|
|
CNSTI4 1
|
|
RETI4
|
|
ADDRGP4 $238
|
|
JUMPV
|
|
LABELV $239
|
|
line 700
|
|
;700: return ( 0 );
|
|
CNSTI4 0
|
|
RETI4
|
|
LABELV $238
|
|
endproc Q_isupper 4 0
|
|
export Q_isalpha
|
|
proc Q_isalpha 8 0
|
|
line 704
|
|
;701:}
|
|
;702:
|
|
;703:int Q_isalpha( int c )
|
|
;704:{
|
|
line 705
|
|
;705: if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 97
|
|
LTI4 $245
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 122
|
|
LEI4 $244
|
|
LABELV $245
|
|
ADDRLP4 4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 65
|
|
LTI4 $242
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 90
|
|
GTI4 $242
|
|
LABELV $244
|
|
line 706
|
|
;706: return ( 1 );
|
|
CNSTI4 1
|
|
RETI4
|
|
ADDRGP4 $241
|
|
JUMPV
|
|
LABELV $242
|
|
line 707
|
|
;707: return ( 0 );
|
|
CNSTI4 0
|
|
RETI4
|
|
LABELV $241
|
|
endproc Q_isalpha 8 0
|
|
export Q_strrchr
|
|
proc Q_strrchr 12 0
|
|
line 711
|
|
;708:}
|
|
;709:
|
|
;710:char* Q_strrchr( const char* string, int c )
|
|
;711:{
|
|
line 712
|
|
;712: char cc = c;
|
|
ADDRLP4 4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
CVII1 4
|
|
ASGNI1
|
|
line 714
|
|
;713: char *s;
|
|
;714: char *sp=(char *)0;
|
|
ADDRLP4 8
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 716
|
|
;715:
|
|
;716: s = (char*)string;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRGP4 $248
|
|
JUMPV
|
|
LABELV $247
|
|
line 719
|
|
;717:
|
|
;718: while (*s)
|
|
;719: {
|
|
line 720
|
|
;720: if (*s == cc)
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ADDRLP4 4
|
|
INDIRI1
|
|
CVII4 1
|
|
NEI4 $250
|
|
line 721
|
|
;721: sp = s;
|
|
ADDRLP4 8
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
LABELV $250
|
|
line 722
|
|
;722: s++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 723
|
|
;723: }
|
|
LABELV $248
|
|
line 718
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $247
|
|
line 724
|
|
;724: if (cc == 0)
|
|
ADDRLP4 4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $252
|
|
line 725
|
|
;725: sp = s;
|
|
ADDRLP4 8
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
LABELV $252
|
|
line 727
|
|
;726:
|
|
;727: return sp;
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
RETP4
|
|
LABELV $246
|
|
endproc Q_strrchr 12 0
|
|
export Q_strncpyz
|
|
proc Q_strncpyz 0 12
|
|
line 737
|
|
;728:}
|
|
;729:
|
|
;730:/*
|
|
;731:=============
|
|
;732:Q_strncpyz
|
|
;733:
|
|
;734:Safe strncpy that ensures a trailing zero
|
|
;735:=============
|
|
;736:*/
|
|
;737:void Q_strncpyz( char *dest, const char *src, int destsize ) {
|
|
line 739
|
|
;738: // bk001129 - also NULL dest
|
|
;739: if ( !dest ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $255
|
|
line 740
|
|
;740: Com_Error( ERR_FATAL, "Q_strncpyz: NULL dest" );
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 $257
|
|
ARGP4
|
|
ADDRGP4 Com_Error
|
|
CALLV
|
|
pop
|
|
line 741
|
|
;741: }
|
|
LABELV $255
|
|
line 742
|
|
;742: if ( !src ) {
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $258
|
|
line 743
|
|
;743: Com_Error( ERR_FATAL, "Q_strncpyz: NULL src" );
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 $260
|
|
ARGP4
|
|
ADDRGP4 Com_Error
|
|
CALLV
|
|
pop
|
|
line 744
|
|
;744: }
|
|
LABELV $258
|
|
line 745
|
|
;745: if ( destsize < 1 ) {
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
CNSTI4 1
|
|
GEI4 $261
|
|
line 746
|
|
;746: Com_Error(ERR_FATAL,"Q_strncpyz: destsize < 1" );
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 $263
|
|
ARGP4
|
|
ADDRGP4 Com_Error
|
|
CALLV
|
|
pop
|
|
line 747
|
|
;747: }
|
|
LABELV $261
|
|
line 749
|
|
;748:
|
|
;749: strncpy( dest, src, destsize-1 );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
CNSTI4 1
|
|
SUBI4
|
|
ARGI4
|
|
ADDRGP4 strncpy
|
|
CALLP4
|
|
pop
|
|
line 750
|
|
;750: dest[destsize-1] = 0;
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
CNSTI4 1
|
|
SUBI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 751
|
|
;751:}
|
|
LABELV $254
|
|
endproc Q_strncpyz 0 12
|
|
export Q_stricmpn
|
|
proc Q_stricmpn 32 0
|
|
line 753
|
|
;752:
|
|
;753:int Q_stricmpn (const char *s1, const char *s2, int n) {
|
|
line 757
|
|
;754: int c1, c2;
|
|
;755:
|
|
;756: // bk001129 - moved in 1.17 fix not in id codebase
|
|
;757: if ( s1 == NULL ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $265
|
|
line 758
|
|
;758: if ( s2 == NULL )
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $267
|
|
line 759
|
|
;759: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $264
|
|
JUMPV
|
|
LABELV $267
|
|
line 761
|
|
;760: else
|
|
;761: return -1;
|
|
CNSTI4 -1
|
|
RETI4
|
|
ADDRGP4 $264
|
|
JUMPV
|
|
LABELV $265
|
|
line 763
|
|
;762: }
|
|
;763: else if ( s2==NULL )
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $269
|
|
line 764
|
|
;764: return 1;
|
|
CNSTI4 1
|
|
RETI4
|
|
ADDRGP4 $264
|
|
JUMPV
|
|
LABELV $269
|
|
LABELV $271
|
|
line 768
|
|
;765:
|
|
;766:
|
|
;767:
|
|
;768: do {
|
|
line 769
|
|
;769: c1 = *s1++;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
line 770
|
|
;770: c2 = *s2++;
|
|
ADDRLP4 12
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
line 772
|
|
;771:
|
|
;772: if (!n--) {
|
|
ADDRLP4 16
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRFP4 8
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 1
|
|
SUBI4
|
|
ASGNI4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $274
|
|
line 773
|
|
;773: return 0; // strings are equal until end point
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $264
|
|
JUMPV
|
|
LABELV $274
|
|
line 776
|
|
;774: }
|
|
;775:
|
|
;776: if (c1 != c2) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
EQI4 $276
|
|
line 777
|
|
;777: if (c1 >= 'a' && c1 <= 'z') {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 97
|
|
LTI4 $278
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 122
|
|
GTI4 $278
|
|
line 778
|
|
;778: c1 -= ('a' - 'A');
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 32
|
|
SUBI4
|
|
ASGNI4
|
|
line 779
|
|
;779: }
|
|
LABELV $278
|
|
line 780
|
|
;780: if (c2 >= 'a' && c2 <= 'z') {
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 97
|
|
LTI4 $280
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 122
|
|
GTI4 $280
|
|
line 781
|
|
;781: c2 -= ('a' - 'A');
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 32
|
|
SUBI4
|
|
ASGNI4
|
|
line 782
|
|
;782: }
|
|
LABELV $280
|
|
line 783
|
|
;783: if (c1 != c2) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
EQI4 $282
|
|
line 784
|
|
;784: return c1 < c2 ? -1 : 1;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
GEI4 $285
|
|
ADDRLP4 28
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
ADDRGP4 $286
|
|
JUMPV
|
|
LABELV $285
|
|
ADDRLP4 28
|
|
CNSTI4 1
|
|
ASGNI4
|
|
LABELV $286
|
|
ADDRLP4 28
|
|
INDIRI4
|
|
RETI4
|
|
ADDRGP4 $264
|
|
JUMPV
|
|
LABELV $282
|
|
line 786
|
|
;785: }
|
|
;786: }
|
|
LABELV $276
|
|
line 787
|
|
;787: } while (c1);
|
|
LABELV $272
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $271
|
|
line 789
|
|
;788:
|
|
;789: return 0; // strings are equal
|
|
CNSTI4 0
|
|
RETI4
|
|
LABELV $264
|
|
endproc Q_stricmpn 32 0
|
|
export Q_strncmp
|
|
proc Q_strncmp 24 0
|
|
line 792
|
|
;790:}
|
|
;791:
|
|
;792:int Q_strncmp (const char *s1, const char *s2, int n) {
|
|
LABELV $288
|
|
line 795
|
|
;793: int c1, c2;
|
|
;794:
|
|
;795: do {
|
|
line 796
|
|
;796: c1 = *s1++;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
line 797
|
|
;797: c2 = *s2++;
|
|
ADDRLP4 12
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
line 799
|
|
;798:
|
|
;799: if (!n--) {
|
|
ADDRLP4 16
|
|
ADDRFP4 8
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRFP4 8
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 1
|
|
SUBI4
|
|
ASGNI4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $291
|
|
line 800
|
|
;800: return 0; // strings are equal until end point
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $287
|
|
JUMPV
|
|
LABELV $291
|
|
line 803
|
|
;801: }
|
|
;802:
|
|
;803: if (c1 != c2) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
EQI4 $293
|
|
line 804
|
|
;804: return c1 < c2 ? -1 : 1;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
GEI4 $296
|
|
ADDRLP4 20
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
ADDRGP4 $297
|
|
JUMPV
|
|
LABELV $296
|
|
ADDRLP4 20
|
|
CNSTI4 1
|
|
ASGNI4
|
|
LABELV $297
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
RETI4
|
|
ADDRGP4 $287
|
|
JUMPV
|
|
LABELV $293
|
|
line 806
|
|
;805: }
|
|
;806: } while (c1);
|
|
LABELV $289
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $288
|
|
line 808
|
|
;807:
|
|
;808: return 0; // strings are equal
|
|
CNSTI4 0
|
|
RETI4
|
|
LABELV $287
|
|
endproc Q_strncmp 24 0
|
|
export Q_stricmp
|
|
proc Q_stricmp 12 12
|
|
line 811
|
|
;809:}
|
|
;810:
|
|
;811:int Q_stricmp (const char *s1, const char *s2) {
|
|
line 812
|
|
;812: return (s1 && s2) ? Q_stricmpn (s1, s2, 99999) : -1;
|
|
ADDRLP4 4
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 4
|
|
INDIRU4
|
|
EQU4 $300
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 4
|
|
INDIRU4
|
|
EQU4 $300
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 99999
|
|
ARGI4
|
|
ADDRLP4 8
|
|
ADDRGP4 Q_stricmpn
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRGP4 $301
|
|
JUMPV
|
|
LABELV $300
|
|
ADDRLP4 0
|
|
CNSTI4 -1
|
|
ASGNI4
|
|
LABELV $301
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
RETI4
|
|
LABELV $298
|
|
endproc Q_stricmp 12 12
|
|
export Q_strlwr
|
|
proc Q_strlwr 12 4
|
|
line 816
|
|
;813:}
|
|
;814:
|
|
;815:
|
|
;816:char *Q_strlwr( char *s1 ) {
|
|
line 819
|
|
;817: char *s;
|
|
;818:
|
|
;819: s = s1;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRGP4 $304
|
|
JUMPV
|
|
LABELV $303
|
|
line 820
|
|
;820: while ( *s ) {
|
|
line 821
|
|
;821: *s = tolower(*s);
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ARGI4
|
|
ADDRLP4 8
|
|
ADDRGP4 tolower
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CVII1 4
|
|
ASGNI1
|
|
line 822
|
|
;822: s++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 823
|
|
;823: }
|
|
LABELV $304
|
|
line 820
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $303
|
|
line 824
|
|
;824: return s1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
RETP4
|
|
LABELV $302
|
|
endproc Q_strlwr 12 4
|
|
export Q_strupr
|
|
proc Q_strupr 12 4
|
|
line 827
|
|
;825:}
|
|
;826:
|
|
;827:char *Q_strupr( char *s1 ) {
|
|
line 830
|
|
;828: char *s;
|
|
;829:
|
|
;830: s = s1;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRGP4 $308
|
|
JUMPV
|
|
LABELV $307
|
|
line 831
|
|
;831: while ( *s ) {
|
|
line 832
|
|
;832: *s = toupper(*s);
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ARGI4
|
|
ADDRLP4 8
|
|
ADDRGP4 toupper
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CVII1 4
|
|
ASGNI1
|
|
line 833
|
|
;833: s++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 834
|
|
;834: }
|
|
LABELV $308
|
|
line 831
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $307
|
|
line 835
|
|
;835: return s1;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
RETP4
|
|
LABELV $306
|
|
endproc Q_strupr 12 4
|
|
export Q_strcat
|
|
proc Q_strcat 12 12
|
|
line 840
|
|
;836:}
|
|
;837:
|
|
;838:
|
|
;839:// never goes past bounds or leaves without a terminating 0
|
|
;840:void Q_strcat( char *dest, int size, const char *src ) {
|
|
line 843
|
|
;841: int l1;
|
|
;842:
|
|
;843: l1 = strlen( dest );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ASGNI4
|
|
line 844
|
|
;844: if ( l1 >= size ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
LTI4 $311
|
|
line 845
|
|
;845: Com_Error( ERR_FATAL, "Q_strcat: already overflowed" );
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 $313
|
|
ARGP4
|
|
ADDRGP4 Com_Error
|
|
CALLV
|
|
pop
|
|
line 846
|
|
;846: }
|
|
LABELV $311
|
|
line 847
|
|
;847: Q_strncpyz( dest + l1, src, size - l1 );
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDP4
|
|
ARGP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
SUBI4
|
|
ARGI4
|
|
ADDRGP4 Q_strncpyz
|
|
CALLV
|
|
pop
|
|
line 848
|
|
;848:}
|
|
LABELV $310
|
|
endproc Q_strcat 12 12
|
|
export Q_PrintStrlen
|
|
proc Q_PrintStrlen 20 0
|
|
line 851
|
|
;849:
|
|
;850:
|
|
;851:int Q_PrintStrlen( const char *string ) {
|
|
line 855
|
|
;852: int len;
|
|
;853: const char *p;
|
|
;854:
|
|
;855: if( !string ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $315
|
|
line 856
|
|
;856: return 0;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $314
|
|
JUMPV
|
|
LABELV $315
|
|
line 859
|
|
;857: }
|
|
;858:
|
|
;859: len = 0;
|
|
ADDRLP4 4
|
|
CNSTI4 0
|
|
ASGNI4
|
|
line 860
|
|
;860: p = string;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRGP4 $318
|
|
JUMPV
|
|
LABELV $317
|
|
line 861
|
|
;861: while( *p ) {
|
|
line 862
|
|
;862: if( Q_IsColorString( p ) ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $320
|
|
ADDRLP4 12
|
|
CNSTI4 94
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
NEI4 $320
|
|
ADDRLP4 16
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $320
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
EQI4 $320
|
|
line 863
|
|
;863: p += 2;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 2
|
|
ADDP4
|
|
ASGNP4
|
|
line 864
|
|
;864: continue;
|
|
ADDRGP4 $318
|
|
JUMPV
|
|
LABELV $320
|
|
line 866
|
|
;865: }
|
|
;866: p++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 867
|
|
;867: len++;
|
|
ADDRLP4 4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 868
|
|
;868: }
|
|
LABELV $318
|
|
line 861
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $317
|
|
line 870
|
|
;869:
|
|
;870: return len;
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
RETI4
|
|
LABELV $314
|
|
endproc Q_PrintStrlen 20 0
|
|
export Q_CleanStr
|
|
proc Q_CleanStr 32 0
|
|
line 874
|
|
;871:}
|
|
;872:
|
|
;873:
|
|
;874:char *Q_CleanStr( char *string ) {
|
|
line 879
|
|
;875: char* d;
|
|
;876: char* s;
|
|
;877: int c;
|
|
;878:
|
|
;879: s = string;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 880
|
|
;880: d = string;
|
|
ADDRLP4 8
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRGP4 $324
|
|
JUMPV
|
|
LABELV $323
|
|
line 881
|
|
;881: while ((c = *s) != 0 ) {
|
|
line 882
|
|
;882: if ( Q_IsColorString( s ) ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $326
|
|
ADDRLP4 16
|
|
CNSTI4 94
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
NEI4 $326
|
|
ADDRLP4 20
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
CNSTI4 0
|
|
EQI4 $326
|
|
ADDRLP4 20
|
|
INDIRI4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
EQI4 $326
|
|
line 883
|
|
;883: s++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 884
|
|
;884: }
|
|
ADDRGP4 $327
|
|
JUMPV
|
|
LABELV $326
|
|
line 885
|
|
;885: else if ( c >= 0x20 && c <= 0x7E ) {
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 32
|
|
LTI4 $328
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CNSTI4 126
|
|
GTI4 $328
|
|
line 886
|
|
;886: *d++ = c;
|
|
ADDRLP4 28
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 28
|
|
INDIRP4
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
CVII1 4
|
|
ASGNI1
|
|
line 887
|
|
;887: }
|
|
LABELV $328
|
|
LABELV $327
|
|
line 888
|
|
;888: s++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 889
|
|
;889: }
|
|
LABELV $324
|
|
line 881
|
|
ADDRLP4 12
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
ASGNI4
|
|
ADDRLP4 12
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $323
|
|
line 890
|
|
;890: *d = '\0';
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 892
|
|
;891:
|
|
;892: return string;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
RETP4
|
|
LABELV $322
|
|
endproc Q_CleanStr 32 0
|
|
export Com_sprintf
|
|
proc Com_sprintf 32012 12
|
|
line 896
|
|
;893:}
|
|
;894:
|
|
;895:
|
|
;896:void QDECL Com_sprintf( char *dest, int size, const char *fmt, ...) {
|
|
line 901
|
|
;897: int len;
|
|
;898: va_list argptr;
|
|
;899: char bigbuffer[32000]; // big, but small enough to fit in PPC stack
|
|
;900:
|
|
;901: va_start (argptr,fmt);
|
|
ADDRLP4 4
|
|
ADDRFP4 8+4
|
|
ASGNP4
|
|
line 902
|
|
;902: len = vsprintf (bigbuffer,fmt,argptr);
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 32008
|
|
ADDRGP4 vsprintf
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 32008
|
|
INDIRI4
|
|
ASGNI4
|
|
line 903
|
|
;903: va_end (argptr);
|
|
ADDRLP4 4
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 904
|
|
;904: if ( len >= sizeof( bigbuffer ) ) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
CVIU4 4
|
|
CNSTU4 32000
|
|
LTU4 $332
|
|
line 905
|
|
;905: Com_Error( ERR_FATAL, "Com_sprintf: overflowed bigbuffer" );
|
|
CNSTI4 0
|
|
ARGI4
|
|
ADDRGP4 $334
|
|
ARGP4
|
|
ADDRGP4 Com_Error
|
|
CALLV
|
|
pop
|
|
line 906
|
|
;906: }
|
|
LABELV $332
|
|
line 907
|
|
;907: if (len >= size) {
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
LTI4 $335
|
|
line 908
|
|
;908: Com_Printf ("Com_sprintf: overflow of %i in %i\n", len, size);
|
|
ADDRGP4 $337
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 914
|
|
;909:#ifdef _DEBUG
|
|
;910: __asm {
|
|
;911: int 3;
|
|
;912: }
|
|
;913:#endif
|
|
;914: }
|
|
LABELV $335
|
|
line 915
|
|
;915: Q_strncpyz (dest, bigbuffer, size );
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
ARGI4
|
|
ADDRGP4 Q_strncpyz
|
|
CALLV
|
|
pop
|
|
line 916
|
|
;916:}
|
|
LABELV $330
|
|
endproc Com_sprintf 32012 12
|
|
bss
|
|
align 1
|
|
LABELV $339
|
|
skip 64000
|
|
data
|
|
align 4
|
|
LABELV $340
|
|
byte 4 0
|
|
export va
|
|
code
|
|
proc va 12 12
|
|
line 928
|
|
;917:
|
|
;918:
|
|
;919:/*
|
|
;920:============
|
|
;921:va
|
|
;922:
|
|
;923:does a varargs printf into a temp buffer, so I don't need to have
|
|
;924:varargs versions of all text functions.
|
|
;925:FIXME: make this buffer size safe someday
|
|
;926:============
|
|
;927:*/
|
|
;928:char * QDECL va( const char *format, ... ) {
|
|
line 934
|
|
;929: va_list argptr;
|
|
;930: static char string[2][32000]; // in case va is called by nested functions
|
|
;931: static int index = 0;
|
|
;932: char *buf;
|
|
;933:
|
|
;934: buf = string[index & 1];
|
|
ADDRLP4 4
|
|
CNSTI4 32000
|
|
ADDRGP4 $340
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BANDI4
|
|
MULI4
|
|
ADDRGP4 $339
|
|
ADDP4
|
|
ASGNP4
|
|
line 935
|
|
;935: index++;
|
|
ADDRLP4 8
|
|
ADDRGP4 $340
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
ADDI4
|
|
ASGNI4
|
|
line 937
|
|
;936:
|
|
;937: va_start (argptr, format);
|
|
ADDRLP4 0
|
|
ADDRFP4 0+4
|
|
ASGNP4
|
|
line 938
|
|
;938: vsprintf (buf, format,argptr);
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 vsprintf
|
|
CALLI4
|
|
pop
|
|
line 939
|
|
;939: va_end (argptr);
|
|
ADDRLP4 0
|
|
CNSTP4 0
|
|
ASGNP4
|
|
line 941
|
|
;940:
|
|
;941: return buf;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
RETP4
|
|
LABELV $338
|
|
endproc va 12 12
|
|
bss
|
|
align 1
|
|
LABELV $343
|
|
skip 16384
|
|
data
|
|
align 4
|
|
LABELV $344
|
|
byte 4 0
|
|
export Info_ValueForKey
|
|
code
|
|
proc Info_ValueForKey 8220 8
|
|
line 962
|
|
;942:}
|
|
;943:
|
|
;944:
|
|
;945:/*
|
|
;946:=====================================================================
|
|
;947:
|
|
;948: INFO STRINGS
|
|
;949:
|
|
;950:=====================================================================
|
|
;951:*/
|
|
;952:
|
|
;953:/*
|
|
;954:===============
|
|
;955:Info_ValueForKey
|
|
;956:
|
|
;957:Searches the string for the given
|
|
;958:key and returns the associated value, or an empty string.
|
|
;959:FIXME: overflow check?
|
|
;960:===============
|
|
;961:*/
|
|
;962:char *Info_ValueForKey( const char *s, const char *key ) {
|
|
line 969
|
|
;963: char pkey[BIG_INFO_KEY];
|
|
;964: static char value[2][BIG_INFO_VALUE]; // use two buffers so compares
|
|
;965: // work without stomping on each other
|
|
;966: static int valueindex = 0;
|
|
;967: char *o;
|
|
;968:
|
|
;969: if ( !s || !key ) {
|
|
ADDRLP4 8196
|
|
CNSTU4 0
|
|
ASGNU4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 8196
|
|
INDIRU4
|
|
EQU4 $347
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
ADDRLP4 8196
|
|
INDIRU4
|
|
NEU4 $345
|
|
LABELV $347
|
|
line 970
|
|
;970: return "";
|
|
ADDRGP4 $348
|
|
RETP4
|
|
ADDRGP4 $342
|
|
JUMPV
|
|
LABELV $345
|
|
line 973
|
|
;971: }
|
|
;972:
|
|
;973: if ( strlen( s ) >= BIG_INFO_STRING ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8200
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8200
|
|
INDIRI4
|
|
CNSTI4 8192
|
|
LTI4 $349
|
|
line 974
|
|
;974: Com_Error( ERR_DROP, "Info_ValueForKey: oversize infostring" );
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 $351
|
|
ARGP4
|
|
ADDRGP4 Com_Error
|
|
CALLV
|
|
pop
|
|
line 975
|
|
;975: }
|
|
LABELV $349
|
|
line 977
|
|
;976:
|
|
;977: valueindex ^= 1;
|
|
ADDRLP4 8204
|
|
ADDRGP4 $344
|
|
ASGNP4
|
|
ADDRLP4 8204
|
|
INDIRP4
|
|
ADDRLP4 8204
|
|
INDIRP4
|
|
INDIRI4
|
|
CNSTI4 1
|
|
BXORI4
|
|
ASGNI4
|
|
line 978
|
|
;978: if (*s == '\\')
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 92
|
|
NEI4 $355
|
|
line 979
|
|
;979: s++;
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRGP4 $355
|
|
JUMPV
|
|
LABELV $354
|
|
line 981
|
|
;980: while (1)
|
|
;981: {
|
|
line 982
|
|
;982: o = pkey;
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
ASGNP4
|
|
ADDRGP4 $358
|
|
JUMPV
|
|
LABELV $357
|
|
line 984
|
|
;983: while (*s != '\\')
|
|
;984: {
|
|
line 985
|
|
;985: if (!*s)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $360
|
|
line 986
|
|
;986: return "";
|
|
ADDRGP4 $348
|
|
RETP4
|
|
ADDRGP4 $342
|
|
JUMPV
|
|
LABELV $360
|
|
line 987
|
|
;987: *o++ = *s++;
|
|
ADDRLP4 8208
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8216
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 8208
|
|
INDIRP4
|
|
ADDRLP4 8216
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8212
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
ADDRLP4 8212
|
|
INDIRP4
|
|
ADDRLP4 8216
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8208
|
|
INDIRP4
|
|
ADDRLP4 8212
|
|
INDIRP4
|
|
INDIRI1
|
|
ASGNI1
|
|
line 988
|
|
;988: }
|
|
LABELV $358
|
|
line 983
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 92
|
|
NEI4 $357
|
|
line 989
|
|
;989: *o = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 990
|
|
;990: s++;
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 992
|
|
;991:
|
|
;992: o = value[valueindex];
|
|
ADDRLP4 0
|
|
ADDRGP4 $344
|
|
INDIRI4
|
|
CNSTI4 13
|
|
LSHI4
|
|
ADDRGP4 $343
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRGP4 $363
|
|
JUMPV
|
|
LABELV $362
|
|
line 995
|
|
;993:
|
|
;994: while (*s != '\\' && *s)
|
|
;995: {
|
|
line 996
|
|
;996: *o++ = *s++;
|
|
ADDRLP4 8208
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8216
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 8208
|
|
INDIRP4
|
|
ADDRLP4 8216
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8212
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
ADDRLP4 8212
|
|
INDIRP4
|
|
ADDRLP4 8216
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8208
|
|
INDIRP4
|
|
ADDRLP4 8212
|
|
INDIRP4
|
|
INDIRI1
|
|
ASGNI1
|
|
line 997
|
|
;997: }
|
|
LABELV $363
|
|
line 994
|
|
ADDRLP4 8208
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 8208
|
|
INDIRI4
|
|
CNSTI4 92
|
|
EQI4 $365
|
|
ADDRLP4 8208
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $362
|
|
LABELV $365
|
|
line 998
|
|
;998: *o = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1000
|
|
;999:
|
|
;1000: if (!Q_stricmp (key, pkey) )
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRLP4 8212
|
|
ADDRGP4 Q_stricmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8212
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $366
|
|
line 1001
|
|
;1001: return value[valueindex];
|
|
ADDRGP4 $344
|
|
INDIRI4
|
|
CNSTI4 13
|
|
LSHI4
|
|
ADDRGP4 $343
|
|
ADDP4
|
|
RETP4
|
|
ADDRGP4 $342
|
|
JUMPV
|
|
LABELV $366
|
|
line 1003
|
|
;1002:
|
|
;1003: if (!*s)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $368
|
|
line 1004
|
|
;1004: break;
|
|
ADDRGP4 $356
|
|
JUMPV
|
|
LABELV $368
|
|
line 1005
|
|
;1005: s++;
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 1006
|
|
;1006: }
|
|
LABELV $355
|
|
line 980
|
|
ADDRGP4 $354
|
|
JUMPV
|
|
LABELV $356
|
|
line 1008
|
|
;1007:
|
|
;1008: return "";
|
|
ADDRGP4 $348
|
|
RETP4
|
|
LABELV $342
|
|
endproc Info_ValueForKey 8220 8
|
|
export Info_NextPair
|
|
proc Info_NextPair 20 0
|
|
line 1019
|
|
;1009:}
|
|
;1010:
|
|
;1011:
|
|
;1012:/*
|
|
;1013:===================
|
|
;1014:Info_NextPair
|
|
;1015:
|
|
;1016:Used to itterate through all the key/value pairs in an info string
|
|
;1017:===================
|
|
;1018:*/
|
|
;1019:void Info_NextPair( const char **head, char *key, char *value ) {
|
|
line 1023
|
|
;1020: char *o;
|
|
;1021: const char *s;
|
|
;1022:
|
|
;1023: s = *head;
|
|
ADDRLP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1025
|
|
;1024:
|
|
;1025: if ( *s == '\\' ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 92
|
|
NEI4 $371
|
|
line 1026
|
|
;1026: s++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 1027
|
|
;1027: }
|
|
LABELV $371
|
|
line 1028
|
|
;1028: key[0] = 0;
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1029
|
|
;1029: value[0] = 0;
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1031
|
|
;1030:
|
|
;1031: o = key;
|
|
ADDRLP4 4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRGP4 $374
|
|
JUMPV
|
|
LABELV $373
|
|
line 1032
|
|
;1032: while ( *s != '\\' ) {
|
|
line 1033
|
|
;1033: if ( !*s ) {
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $376
|
|
line 1034
|
|
;1034: *o = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1035
|
|
;1035: *head = s;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1036
|
|
;1036: return;
|
|
ADDRGP4 $370
|
|
JUMPV
|
|
LABELV $376
|
|
line 1038
|
|
;1037: }
|
|
;1038: *o++ = *s++;
|
|
ADDRLP4 8
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
INDIRI1
|
|
ASGNI1
|
|
line 1039
|
|
;1039: }
|
|
LABELV $374
|
|
line 1032
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 92
|
|
NEI4 $373
|
|
line 1040
|
|
;1040: *o = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1041
|
|
;1041: s++;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 1043
|
|
;1042:
|
|
;1043: o = value;
|
|
ADDRLP4 4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRGP4 $379
|
|
JUMPV
|
|
LABELV $378
|
|
line 1044
|
|
;1044: while ( *s != '\\' && *s ) {
|
|
line 1045
|
|
;1045: *o++ = *s++;
|
|
ADDRLP4 8
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 12
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
ADDRLP4 16
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 8
|
|
INDIRP4
|
|
ADDRLP4 12
|
|
INDIRP4
|
|
INDIRI1
|
|
ASGNI1
|
|
line 1046
|
|
;1046: }
|
|
LABELV $379
|
|
line 1044
|
|
ADDRLP4 8
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 92
|
|
EQI4 $381
|
|
ADDRLP4 8
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $378
|
|
LABELV $381
|
|
line 1047
|
|
;1047: *o = 0;
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1049
|
|
;1048:
|
|
;1049: *head = s;
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1050
|
|
;1050:}
|
|
LABELV $370
|
|
endproc Info_NextPair 20 0
|
|
export Info_RemoveKey
|
|
proc Info_RemoveKey 2076 8
|
|
line 1058
|
|
;1051:
|
|
;1052:
|
|
;1053:/*
|
|
;1054:===================
|
|
;1055:Info_RemoveKey
|
|
;1056:===================
|
|
;1057:*/
|
|
;1058:void Info_RemoveKey( char *s, const char *key ) {
|
|
line 1064
|
|
;1059: char *start;
|
|
;1060: char pkey[MAX_INFO_KEY];
|
|
;1061: char value[MAX_INFO_VALUE];
|
|
;1062: char *o;
|
|
;1063:
|
|
;1064: if ( strlen( s ) >= MAX_INFO_STRING ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 2056
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 2056
|
|
INDIRI4
|
|
CNSTI4 1024
|
|
LTI4 $383
|
|
line 1065
|
|
;1065: Com_Error( ERR_DROP, "Info_RemoveKey: oversize infostring" );
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 $385
|
|
ARGP4
|
|
ADDRGP4 Com_Error
|
|
CALLV
|
|
pop
|
|
line 1066
|
|
;1066: }
|
|
LABELV $383
|
|
line 1068
|
|
;1067:
|
|
;1068: if (strchr (key, '\\')) {
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 92
|
|
ARGI4
|
|
ADDRLP4 2060
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 2060
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $389
|
|
line 1069
|
|
;1069: return;
|
|
ADDRGP4 $382
|
|
JUMPV
|
|
LABELV $388
|
|
line 1073
|
|
;1070: }
|
|
;1071:
|
|
;1072: while (1)
|
|
;1073: {
|
|
line 1074
|
|
;1074: start = s;
|
|
ADDRLP4 1028
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1075
|
|
;1075: if (*s == '\\')
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 92
|
|
NEI4 $391
|
|
line 1076
|
|
;1076: s++;
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $391
|
|
line 1077
|
|
;1077: o = pkey;
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
ASGNP4
|
|
ADDRGP4 $394
|
|
JUMPV
|
|
LABELV $393
|
|
line 1079
|
|
;1078: while (*s != '\\')
|
|
;1079: {
|
|
line 1080
|
|
;1080: if (!*s)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $396
|
|
line 1081
|
|
;1081: return;
|
|
ADDRGP4 $382
|
|
JUMPV
|
|
LABELV $396
|
|
line 1082
|
|
;1082: *o++ = *s++;
|
|
ADDRLP4 2064
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 2072
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 2064
|
|
INDIRP4
|
|
ADDRLP4 2072
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 2068
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
ADDRLP4 2068
|
|
INDIRP4
|
|
ADDRLP4 2072
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 2064
|
|
INDIRP4
|
|
ADDRLP4 2068
|
|
INDIRP4
|
|
INDIRI1
|
|
ASGNI1
|
|
line 1083
|
|
;1083: }
|
|
LABELV $394
|
|
line 1078
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 92
|
|
NEI4 $393
|
|
line 1084
|
|
;1084: *o = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1085
|
|
;1085: s++;
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 1087
|
|
;1086:
|
|
;1087: o = value;
|
|
ADDRLP4 0
|
|
ADDRLP4 1032
|
|
ASGNP4
|
|
ADDRGP4 $399
|
|
JUMPV
|
|
LABELV $398
|
|
line 1089
|
|
;1088: while (*s != '\\' && *s)
|
|
;1089: {
|
|
line 1090
|
|
;1090: if (!*s)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $401
|
|
line 1091
|
|
;1091: return;
|
|
ADDRGP4 $382
|
|
JUMPV
|
|
LABELV $401
|
|
line 1092
|
|
;1092: *o++ = *s++;
|
|
ADDRLP4 2064
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 2072
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 2064
|
|
INDIRP4
|
|
ADDRLP4 2072
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 2068
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
ADDRLP4 2068
|
|
INDIRP4
|
|
ADDRLP4 2072
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 2064
|
|
INDIRP4
|
|
ADDRLP4 2068
|
|
INDIRP4
|
|
INDIRI1
|
|
ASGNI1
|
|
line 1093
|
|
;1093: }
|
|
LABELV $399
|
|
line 1088
|
|
ADDRLP4 2064
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 2064
|
|
INDIRI4
|
|
CNSTI4 92
|
|
EQI4 $403
|
|
ADDRLP4 2064
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $398
|
|
LABELV $403
|
|
line 1094
|
|
;1094: *o = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1096
|
|
;1095:
|
|
;1096: if (!strcmp (key, pkey) )
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRLP4 2068
|
|
ADDRGP4 strcmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 2068
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $404
|
|
line 1097
|
|
;1097: {
|
|
line 1098
|
|
;1098: strcpy (start, s); // remove this part
|
|
ADDRLP4 1028
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 strcpy
|
|
CALLP4
|
|
pop
|
|
line 1099
|
|
;1099: return;
|
|
ADDRGP4 $382
|
|
JUMPV
|
|
LABELV $404
|
|
line 1102
|
|
;1100: }
|
|
;1101:
|
|
;1102: if (!*s)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $406
|
|
line 1103
|
|
;1103: return;
|
|
ADDRGP4 $382
|
|
JUMPV
|
|
LABELV $406
|
|
line 1104
|
|
;1104: }
|
|
LABELV $389
|
|
line 1072
|
|
ADDRGP4 $388
|
|
JUMPV
|
|
line 1106
|
|
;1105:
|
|
;1106:}
|
|
LABELV $382
|
|
endproc Info_RemoveKey 2076 8
|
|
export Info_RemoveKey_Big
|
|
proc Info_RemoveKey_Big 16412 8
|
|
line 1113
|
|
;1107:
|
|
;1108:/*
|
|
;1109:===================
|
|
;1110:Info_RemoveKey_Big
|
|
;1111:===================
|
|
;1112:*/
|
|
;1113:void Info_RemoveKey_Big( char *s, const char *key ) {
|
|
line 1119
|
|
;1114: char *start;
|
|
;1115: char pkey[BIG_INFO_KEY];
|
|
;1116: char value[BIG_INFO_VALUE];
|
|
;1117: char *o;
|
|
;1118:
|
|
;1119: if ( strlen( s ) >= BIG_INFO_STRING ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 16392
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 16392
|
|
INDIRI4
|
|
CNSTI4 8192
|
|
LTI4 $409
|
|
line 1120
|
|
;1120: Com_Error( ERR_DROP, "Info_RemoveKey_Big: oversize infostring" );
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 $411
|
|
ARGP4
|
|
ADDRGP4 Com_Error
|
|
CALLV
|
|
pop
|
|
line 1121
|
|
;1121: }
|
|
LABELV $409
|
|
line 1123
|
|
;1122:
|
|
;1123: if (strchr (key, '\\')) {
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 92
|
|
ARGI4
|
|
ADDRLP4 16396
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 16396
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $415
|
|
line 1124
|
|
;1124: return;
|
|
ADDRGP4 $408
|
|
JUMPV
|
|
LABELV $414
|
|
line 1128
|
|
;1125: }
|
|
;1126:
|
|
;1127: while (1)
|
|
;1128: {
|
|
line 1129
|
|
;1129: start = s;
|
|
ADDRLP4 8196
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
line 1130
|
|
;1130: if (*s == '\\')
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 92
|
|
NEI4 $417
|
|
line 1131
|
|
;1131: s++;
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
LABELV $417
|
|
line 1132
|
|
;1132: o = pkey;
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
ASGNP4
|
|
ADDRGP4 $420
|
|
JUMPV
|
|
LABELV $419
|
|
line 1134
|
|
;1133: while (*s != '\\')
|
|
;1134: {
|
|
line 1135
|
|
;1135: if (!*s)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $422
|
|
line 1136
|
|
;1136: return;
|
|
ADDRGP4 $408
|
|
JUMPV
|
|
LABELV $422
|
|
line 1137
|
|
;1137: *o++ = *s++;
|
|
ADDRLP4 16400
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16408
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 16400
|
|
INDIRP4
|
|
ADDRLP4 16408
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 16404
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
ADDRLP4 16404
|
|
INDIRP4
|
|
ADDRLP4 16408
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 16400
|
|
INDIRP4
|
|
ADDRLP4 16404
|
|
INDIRP4
|
|
INDIRI1
|
|
ASGNI1
|
|
line 1138
|
|
;1138: }
|
|
LABELV $420
|
|
line 1133
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 92
|
|
NEI4 $419
|
|
line 1139
|
|
;1139: *o = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1140
|
|
;1140: s++;
|
|
ADDRFP4 0
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
CNSTI4 1
|
|
ADDP4
|
|
ASGNP4
|
|
line 1142
|
|
;1141:
|
|
;1142: o = value;
|
|
ADDRLP4 0
|
|
ADDRLP4 8200
|
|
ASGNP4
|
|
ADDRGP4 $425
|
|
JUMPV
|
|
LABELV $424
|
|
line 1144
|
|
;1143: while (*s != '\\' && *s)
|
|
;1144: {
|
|
line 1145
|
|
;1145: if (!*s)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $427
|
|
line 1146
|
|
;1146: return;
|
|
ADDRGP4 $408
|
|
JUMPV
|
|
LABELV $427
|
|
line 1147
|
|
;1147: *o++ = *s++;
|
|
ADDRLP4 16400
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 16408
|
|
CNSTI4 1
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 16400
|
|
INDIRP4
|
|
ADDRLP4 16408
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 16404
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRFP4 0
|
|
ADDRLP4 16404
|
|
INDIRP4
|
|
ADDRLP4 16408
|
|
INDIRI4
|
|
ADDP4
|
|
ASGNP4
|
|
ADDRLP4 16400
|
|
INDIRP4
|
|
ADDRLP4 16404
|
|
INDIRP4
|
|
INDIRI1
|
|
ASGNI1
|
|
line 1148
|
|
;1148: }
|
|
LABELV $425
|
|
line 1143
|
|
ADDRLP4 16400
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
ASGNI4
|
|
ADDRLP4 16400
|
|
INDIRI4
|
|
CNSTI4 92
|
|
EQI4 $429
|
|
ADDRLP4 16400
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $424
|
|
LABELV $429
|
|
line 1149
|
|
;1149: *o = 0;
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CNSTI1 0
|
|
ASGNI1
|
|
line 1151
|
|
;1150:
|
|
;1151: if (!strcmp (key, pkey) )
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 4
|
|
ARGP4
|
|
ADDRLP4 16404
|
|
ADDRGP4 strcmp
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 16404
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $430
|
|
line 1152
|
|
;1152: {
|
|
line 1153
|
|
;1153: strcpy (start, s); // remove this part
|
|
ADDRLP4 8196
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 strcpy
|
|
CALLP4
|
|
pop
|
|
line 1154
|
|
;1154: return;
|
|
ADDRGP4 $408
|
|
JUMPV
|
|
LABELV $430
|
|
line 1157
|
|
;1155: }
|
|
;1156:
|
|
;1157: if (!*s)
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
INDIRI1
|
|
CVII4 1
|
|
CNSTI4 0
|
|
NEI4 $432
|
|
line 1158
|
|
;1158: return;
|
|
ADDRGP4 $408
|
|
JUMPV
|
|
LABELV $432
|
|
line 1159
|
|
;1159: }
|
|
LABELV $415
|
|
line 1127
|
|
ADDRGP4 $414
|
|
JUMPV
|
|
line 1161
|
|
;1160:
|
|
;1161:}
|
|
LABELV $408
|
|
endproc Info_RemoveKey_Big 16412 8
|
|
export Info_Validate
|
|
proc Info_Validate 8 8
|
|
line 1174
|
|
;1162:
|
|
;1163:
|
|
;1164:
|
|
;1165:
|
|
;1166:/*
|
|
;1167:==================
|
|
;1168:Info_Validate
|
|
;1169:
|
|
;1170:Some characters are illegal in info strings because they
|
|
;1171:can mess up the server's parsing
|
|
;1172:==================
|
|
;1173:*/
|
|
;1174:qboolean Info_Validate( const char *s ) {
|
|
line 1175
|
|
;1175: if ( strchr( s, '\"' ) ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 34
|
|
ARGI4
|
|
ADDRLP4 0
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 0
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $435
|
|
line 1176
|
|
;1176: return qfalse;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $434
|
|
JUMPV
|
|
LABELV $435
|
|
line 1178
|
|
;1177: }
|
|
;1178: if ( strchr( s, ';' ) ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 59
|
|
ARGI4
|
|
ADDRLP4 4
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 4
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $437
|
|
line 1179
|
|
;1179: return qfalse;
|
|
CNSTI4 0
|
|
RETI4
|
|
ADDRGP4 $434
|
|
JUMPV
|
|
LABELV $437
|
|
line 1181
|
|
;1180: }
|
|
;1181: return qtrue;
|
|
CNSTI4 1
|
|
RETI4
|
|
LABELV $434
|
|
endproc Info_Validate 8 8
|
|
export Info_SetValueForKey
|
|
proc Info_SetValueForKey 1068 20
|
|
line 1191
|
|
;1182:}
|
|
;1183:
|
|
;1184:/*
|
|
;1185:==================
|
|
;1186:Info_SetValueForKey
|
|
;1187:
|
|
;1188:Changes or adds a key/value pair
|
|
;1189:==================
|
|
;1190:*/
|
|
;1191:void Info_SetValueForKey( char *s, const char *key, const char *value ) {
|
|
line 1194
|
|
;1192: char newi[MAX_INFO_STRING];
|
|
;1193:
|
|
;1194: if ( strlen( s ) >= MAX_INFO_STRING ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1024
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 1024
|
|
INDIRI4
|
|
CNSTI4 1024
|
|
LTI4 $440
|
|
line 1195
|
|
;1195: Com_Error( ERR_DROP, "Info_SetValueForKey: oversize infostring" );
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 $442
|
|
ARGP4
|
|
ADDRGP4 Com_Error
|
|
CALLV
|
|
pop
|
|
line 1196
|
|
;1196: }
|
|
LABELV $440
|
|
line 1198
|
|
;1197:
|
|
;1198: if (strchr (key, '\\') || strchr (value, '\\'))
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 92
|
|
ARGI4
|
|
ADDRLP4 1028
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1028
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $445
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 92
|
|
ARGI4
|
|
ADDRLP4 1032
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1032
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $443
|
|
LABELV $445
|
|
line 1199
|
|
;1199: {
|
|
line 1200
|
|
;1200: Com_Printf ("Can't use keys or values with a \\\n");
|
|
ADDRGP4 $446
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1201
|
|
;1201: return;
|
|
ADDRGP4 $439
|
|
JUMPV
|
|
LABELV $443
|
|
line 1204
|
|
;1202: }
|
|
;1203:
|
|
;1204: if (strchr (key, ';') || strchr (value, ';'))
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 59
|
|
ARGI4
|
|
ADDRLP4 1036
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1036
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $449
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 59
|
|
ARGI4
|
|
ADDRLP4 1040
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1040
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $447
|
|
LABELV $449
|
|
line 1205
|
|
;1205: {
|
|
line 1206
|
|
;1206: Com_Printf ("Can't use keys or values with a semicolon\n");
|
|
ADDRGP4 $450
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1207
|
|
;1207: return;
|
|
ADDRGP4 $439
|
|
JUMPV
|
|
LABELV $447
|
|
line 1210
|
|
;1208: }
|
|
;1209:
|
|
;1210: if (strchr (key, '\"') || strchr (value, '\"'))
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 34
|
|
ARGI4
|
|
ADDRLP4 1044
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1044
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $453
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 34
|
|
ARGI4
|
|
ADDRLP4 1048
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 1048
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $451
|
|
LABELV $453
|
|
line 1211
|
|
;1211: {
|
|
line 1212
|
|
;1212: Com_Printf ("Can't use keys or values with a \"\n");
|
|
ADDRGP4 $454
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1213
|
|
;1213: return;
|
|
ADDRGP4 $439
|
|
JUMPV
|
|
LABELV $451
|
|
line 1216
|
|
;1214: }
|
|
;1215:
|
|
;1216: Info_RemoveKey (s, key);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Info_RemoveKey
|
|
CALLV
|
|
pop
|
|
line 1217
|
|
;1217: if (!value || !strlen(value))
|
|
ADDRLP4 1052
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 1052
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $457
|
|
ADDRLP4 1052
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1056
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 1056
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $455
|
|
LABELV $457
|
|
line 1218
|
|
;1218: return;
|
|
ADDRGP4 $439
|
|
JUMPV
|
|
LABELV $455
|
|
line 1220
|
|
;1219:
|
|
;1220: Com_sprintf (newi, sizeof(newi), "\\%s\\%s", key, value);
|
|
ADDRLP4 0
|
|
ARGP4
|
|
CNSTI4 1024
|
|
ARGI4
|
|
ADDRGP4 $458
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Com_sprintf
|
|
CALLV
|
|
pop
|
|
line 1222
|
|
;1221:
|
|
;1222: if (strlen(newi) + strlen(s) > MAX_INFO_STRING)
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRLP4 1060
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 1064
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 1060
|
|
INDIRI4
|
|
ADDRLP4 1064
|
|
INDIRI4
|
|
ADDI4
|
|
CNSTI4 1024
|
|
LEI4 $459
|
|
line 1223
|
|
;1223: {
|
|
line 1224
|
|
;1224: Com_Printf ("Info string length exceeded\n");
|
|
ADDRGP4 $461
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1225
|
|
;1225: return;
|
|
ADDRGP4 $439
|
|
JUMPV
|
|
LABELV $459
|
|
line 1228
|
|
;1226: }
|
|
;1227:
|
|
;1228: strcat (newi, s);
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 strcat
|
|
CALLP4
|
|
pop
|
|
line 1229
|
|
;1229: strcpy (s, newi);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRGP4 strcpy
|
|
CALLP4
|
|
pop
|
|
line 1230
|
|
;1230:}
|
|
LABELV $439
|
|
endproc Info_SetValueForKey 1068 20
|
|
export Info_SetValueForKey_Big
|
|
proc Info_SetValueForKey_Big 8236 20
|
|
line 1239
|
|
;1231:
|
|
;1232:/*
|
|
;1233:==================
|
|
;1234:Info_SetValueForKey_Big
|
|
;1235:
|
|
;1236:Changes or adds a key/value pair
|
|
;1237:==================
|
|
;1238:*/
|
|
;1239:void Info_SetValueForKey_Big( char *s, const char *key, const char *value ) {
|
|
line 1242
|
|
;1240: char newi[BIG_INFO_STRING];
|
|
;1241:
|
|
;1242: if ( strlen( s ) >= BIG_INFO_STRING ) {
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8192
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8192
|
|
INDIRI4
|
|
CNSTI4 8192
|
|
LTI4 $463
|
|
line 1243
|
|
;1243: Com_Error( ERR_DROP, "Info_SetValueForKey: oversize infostring" );
|
|
CNSTI4 1
|
|
ARGI4
|
|
ADDRGP4 $442
|
|
ARGP4
|
|
ADDRGP4 Com_Error
|
|
CALLV
|
|
pop
|
|
line 1244
|
|
;1244: }
|
|
LABELV $463
|
|
line 1246
|
|
;1245:
|
|
;1246: if (strchr (key, '\\') || strchr (value, '\\'))
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 92
|
|
ARGI4
|
|
ADDRLP4 8196
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8196
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $467
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 92
|
|
ARGI4
|
|
ADDRLP4 8200
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8200
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $465
|
|
LABELV $467
|
|
line 1247
|
|
;1247: {
|
|
line 1248
|
|
;1248: Com_Printf ("Can't use keys or values with a \\\n");
|
|
ADDRGP4 $446
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1249
|
|
;1249: return;
|
|
ADDRGP4 $462
|
|
JUMPV
|
|
LABELV $465
|
|
line 1252
|
|
;1250: }
|
|
;1251:
|
|
;1252: if (strchr (key, ';') || strchr (value, ';'))
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 59
|
|
ARGI4
|
|
ADDRLP4 8204
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8204
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $470
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 59
|
|
ARGI4
|
|
ADDRLP4 8208
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8208
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $468
|
|
LABELV $470
|
|
line 1253
|
|
;1253: {
|
|
line 1254
|
|
;1254: Com_Printf ("Can't use keys or values with a semicolon\n");
|
|
ADDRGP4 $450
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1255
|
|
;1255: return;
|
|
ADDRGP4 $462
|
|
JUMPV
|
|
LABELV $468
|
|
line 1258
|
|
;1256: }
|
|
;1257:
|
|
;1258: if (strchr (key, '\"') || strchr (value, '\"'))
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 34
|
|
ARGI4
|
|
ADDRLP4 8212
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8212
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
NEU4 $473
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
CNSTI4 34
|
|
ARGI4
|
|
ADDRLP4 8216
|
|
ADDRGP4 strchr
|
|
CALLP4
|
|
ASGNP4
|
|
ADDRLP4 8216
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $471
|
|
LABELV $473
|
|
line 1259
|
|
;1259: {
|
|
line 1260
|
|
;1260: Com_Printf ("Can't use keys or values with a \"\n");
|
|
ADDRGP4 $454
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1261
|
|
;1261: return;
|
|
ADDRGP4 $462
|
|
JUMPV
|
|
LABELV $471
|
|
line 1264
|
|
;1262: }
|
|
;1263:
|
|
;1264: Info_RemoveKey_Big (s, key);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Info_RemoveKey_Big
|
|
CALLV
|
|
pop
|
|
line 1265
|
|
;1265: if (!value || !strlen(value))
|
|
ADDRLP4 8220
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ASGNP4
|
|
ADDRLP4 8220
|
|
INDIRP4
|
|
CVPU4 4
|
|
CNSTU4 0
|
|
EQU4 $476
|
|
ADDRLP4 8220
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8224
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8224
|
|
INDIRI4
|
|
CNSTI4 0
|
|
NEI4 $474
|
|
LABELV $476
|
|
line 1266
|
|
;1266: return;
|
|
ADDRGP4 $462
|
|
JUMPV
|
|
LABELV $474
|
|
line 1268
|
|
;1267:
|
|
;1268: Com_sprintf (newi, sizeof(newi), "\\%s\\%s", key, value);
|
|
ADDRLP4 0
|
|
ARGP4
|
|
CNSTI4 8192
|
|
ARGI4
|
|
ADDRGP4 $458
|
|
ARGP4
|
|
ADDRFP4 4
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRFP4 8
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRGP4 Com_sprintf
|
|
CALLV
|
|
pop
|
|
line 1270
|
|
;1269:
|
|
;1270: if (strlen(newi) + strlen(s) > BIG_INFO_STRING)
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRLP4 8228
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 8232
|
|
ADDRGP4 strlen
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 8228
|
|
INDIRI4
|
|
ADDRLP4 8232
|
|
INDIRI4
|
|
ADDI4
|
|
CNSTI4 8192
|
|
LEI4 $477
|
|
line 1271
|
|
;1271: {
|
|
line 1272
|
|
;1272: Com_Printf ("BIG Info string length exceeded\n");
|
|
ADDRGP4 $479
|
|
ARGP4
|
|
ADDRGP4 Com_Printf
|
|
CALLV
|
|
pop
|
|
line 1273
|
|
;1273: return;
|
|
ADDRGP4 $462
|
|
JUMPV
|
|
LABELV $477
|
|
line 1276
|
|
;1274: }
|
|
;1275:
|
|
;1276: strcat (s, newi);
|
|
ADDRFP4 0
|
|
INDIRP4
|
|
ARGP4
|
|
ADDRLP4 0
|
|
ARGP4
|
|
ADDRGP4 strcat
|
|
CALLP4
|
|
pop
|
|
line 1277
|
|
;1277:}
|
|
LABELV $462
|
|
endproc Info_SetValueForKey_Big 8236 20
|
|
export Q_irand
|
|
proc Q_irand 8 0
|
|
line 1282
|
|
;1278:
|
|
;1279:
|
|
;1280://rww - convience function..
|
|
;1281:int Q_irand(int value1, int value2)
|
|
;1282:{
|
|
line 1285
|
|
;1283: int r;
|
|
;1284:
|
|
;1285: r = rand()%value2;
|
|
ADDRLP4 4
|
|
ADDRGP4 rand
|
|
CALLI4
|
|
ASGNI4
|
|
ADDRLP4 0
|
|
ADDRLP4 4
|
|
INDIRI4
|
|
ADDRFP4 4
|
|
INDIRI4
|
|
MODI4
|
|
ASGNI4
|
|
line 1286
|
|
;1286: r += value1;
|
|
ADDRLP4 0
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
ADDRFP4 0
|
|
INDIRI4
|
|
ADDI4
|
|
ASGNI4
|
|
line 1288
|
|
;1287:
|
|
;1288: return r;
|
|
ADDRLP4 0
|
|
INDIRI4
|
|
RETI4
|
|
LABELV $480
|
|
endproc Q_irand 8 0
|
|
bss
|
|
align 4
|
|
LABELV com_lines
|
|
skip 4
|
|
align 1
|
|
LABELV com_parsename
|
|
skip 1024
|
|
align 1
|
|
LABELV com_token
|
|
skip 1024
|
|
import irand
|
|
import flrand
|
|
import Rand_Init
|
|
import Com_Printf
|
|
import Com_Error
|
|
import Info_RemoveKey_big
|
|
import PerpendicularVector
|
|
import AngleVectors
|
|
import MatrixMultiply
|
|
import MakeNormalVectors
|
|
import RotateAroundDirection
|
|
import RotatePointAroundVector
|
|
import ProjectPointOnPlane
|
|
import PlaneFromPoints
|
|
import AngleDelta
|
|
import AngleNormalize180
|
|
import AngleNormalize360
|
|
import AnglesSubtract
|
|
import AngleSubtract
|
|
import LerpAngle
|
|
import AngleMod
|
|
import BoxOnPlaneSide
|
|
import SetPlaneSignbits
|
|
import AxisCopy
|
|
import AxisClear
|
|
import AnglesToAxis
|
|
import vectoangles
|
|
import Q_crandom
|
|
import Q_random
|
|
import Q_rand
|
|
import Q_acos
|
|
import Q_log2
|
|
import VectorRotate
|
|
import Vector4Scale
|
|
import VectorNormalize2
|
|
import VectorNormalize
|
|
import CrossProduct
|
|
import VectorInverse
|
|
import VectorNormalizeFast
|
|
import DistanceSquared
|
|
import Distance
|
|
import VectorLengthSquared
|
|
import VectorLength
|
|
import VectorCompare
|
|
import AddPointToBounds
|
|
import ClearBounds
|
|
import RadiusFromBounds
|
|
import NormalizeColor
|
|
import ColorBytes4
|
|
import ColorBytes3
|
|
import _VectorMA
|
|
import _VectorScale
|
|
import _VectorCopy
|
|
import _VectorAdd
|
|
import _VectorSubtract
|
|
import _DotProduct
|
|
import ByteToDir
|
|
import DirToByte
|
|
import powf
|
|
import ClampShort
|
|
import ClampChar
|
|
import Q_rsqrt
|
|
import Q_fabs
|
|
import axisDefault
|
|
import vec3_origin
|
|
import g_color_table
|
|
import colorDkBlue
|
|
import colorLtBlue
|
|
import colorDkGrey
|
|
import colorMdGrey
|
|
import colorLtGrey
|
|
import colorWhite
|
|
import colorCyan
|
|
import colorMagenta
|
|
import colorYellow
|
|
import colorBlue
|
|
import colorGreen
|
|
import colorRed
|
|
import colorBlack
|
|
import colorTable
|
|
import bytedirs
|
|
import Com_Memcpy
|
|
import Com_Memset
|
|
import Hunk_Alloc
|
|
import forceSpeedLevels
|
|
import acos
|
|
import fabs
|
|
import abs
|
|
import tan
|
|
import atan2
|
|
import cos
|
|
import sin
|
|
import sqrt
|
|
import floor
|
|
import ceil
|
|
import memcpy
|
|
import memset
|
|
import memmove
|
|
import sscanf
|
|
import vsprintf
|
|
import _atoi
|
|
import atoi
|
|
import _atof
|
|
import atof
|
|
import toupper
|
|
import tolower
|
|
import strncpy
|
|
import strstr
|
|
import strchr
|
|
import strcmp
|
|
import strcpy
|
|
import strcat
|
|
import strlen
|
|
import rand
|
|
import srand
|
|
import qsort
|
|
lit
|
|
align 1
|
|
LABELV $479
|
|
char 1 66
|
|
char 1 73
|
|
char 1 71
|
|
char 1 32
|
|
char 1 73
|
|
char 1 110
|
|
char 1 102
|
|
char 1 111
|
|
char 1 32
|
|
char 1 115
|
|
char 1 116
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 32
|
|
char 1 108
|
|
char 1 101
|
|
char 1 110
|
|
char 1 103
|
|
char 1 116
|
|
char 1 104
|
|
char 1 32
|
|
char 1 101
|
|
char 1 120
|
|
char 1 99
|
|
char 1 101
|
|
char 1 101
|
|
char 1 100
|
|
char 1 101
|
|
char 1 100
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $461
|
|
char 1 73
|
|
char 1 110
|
|
char 1 102
|
|
char 1 111
|
|
char 1 32
|
|
char 1 115
|
|
char 1 116
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 32
|
|
char 1 108
|
|
char 1 101
|
|
char 1 110
|
|
char 1 103
|
|
char 1 116
|
|
char 1 104
|
|
char 1 32
|
|
char 1 101
|
|
char 1 120
|
|
char 1 99
|
|
char 1 101
|
|
char 1 101
|
|
char 1 100
|
|
char 1 101
|
|
char 1 100
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $458
|
|
char 1 92
|
|
char 1 37
|
|
char 1 115
|
|
char 1 92
|
|
char 1 37
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $454
|
|
char 1 67
|
|
char 1 97
|
|
char 1 110
|
|
char 1 39
|
|
char 1 116
|
|
char 1 32
|
|
char 1 117
|
|
char 1 115
|
|
char 1 101
|
|
char 1 32
|
|
char 1 107
|
|
char 1 101
|
|
char 1 121
|
|
char 1 115
|
|
char 1 32
|
|
char 1 111
|
|
char 1 114
|
|
char 1 32
|
|
char 1 118
|
|
char 1 97
|
|
char 1 108
|
|
char 1 117
|
|
char 1 101
|
|
char 1 115
|
|
char 1 32
|
|
char 1 119
|
|
char 1 105
|
|
char 1 116
|
|
char 1 104
|
|
char 1 32
|
|
char 1 97
|
|
char 1 32
|
|
char 1 34
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $450
|
|
char 1 67
|
|
char 1 97
|
|
char 1 110
|
|
char 1 39
|
|
char 1 116
|
|
char 1 32
|
|
char 1 117
|
|
char 1 115
|
|
char 1 101
|
|
char 1 32
|
|
char 1 107
|
|
char 1 101
|
|
char 1 121
|
|
char 1 115
|
|
char 1 32
|
|
char 1 111
|
|
char 1 114
|
|
char 1 32
|
|
char 1 118
|
|
char 1 97
|
|
char 1 108
|
|
char 1 117
|
|
char 1 101
|
|
char 1 115
|
|
char 1 32
|
|
char 1 119
|
|
char 1 105
|
|
char 1 116
|
|
char 1 104
|
|
char 1 32
|
|
char 1 97
|
|
char 1 32
|
|
char 1 115
|
|
char 1 101
|
|
char 1 109
|
|
char 1 105
|
|
char 1 99
|
|
char 1 111
|
|
char 1 108
|
|
char 1 111
|
|
char 1 110
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $446
|
|
char 1 67
|
|
char 1 97
|
|
char 1 110
|
|
char 1 39
|
|
char 1 116
|
|
char 1 32
|
|
char 1 117
|
|
char 1 115
|
|
char 1 101
|
|
char 1 32
|
|
char 1 107
|
|
char 1 101
|
|
char 1 121
|
|
char 1 115
|
|
char 1 32
|
|
char 1 111
|
|
char 1 114
|
|
char 1 32
|
|
char 1 118
|
|
char 1 97
|
|
char 1 108
|
|
char 1 117
|
|
char 1 101
|
|
char 1 115
|
|
char 1 32
|
|
char 1 119
|
|
char 1 105
|
|
char 1 116
|
|
char 1 104
|
|
char 1 32
|
|
char 1 97
|
|
char 1 32
|
|
char 1 92
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $442
|
|
char 1 73
|
|
char 1 110
|
|
char 1 102
|
|
char 1 111
|
|
char 1 95
|
|
char 1 83
|
|
char 1 101
|
|
char 1 116
|
|
char 1 86
|
|
char 1 97
|
|
char 1 108
|
|
char 1 117
|
|
char 1 101
|
|
char 1 70
|
|
char 1 111
|
|
char 1 114
|
|
char 1 75
|
|
char 1 101
|
|
char 1 121
|
|
char 1 58
|
|
char 1 32
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 114
|
|
char 1 115
|
|
char 1 105
|
|
char 1 122
|
|
char 1 101
|
|
char 1 32
|
|
char 1 105
|
|
char 1 110
|
|
char 1 102
|
|
char 1 111
|
|
char 1 115
|
|
char 1 116
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 0
|
|
align 1
|
|
LABELV $411
|
|
char 1 73
|
|
char 1 110
|
|
char 1 102
|
|
char 1 111
|
|
char 1 95
|
|
char 1 82
|
|
char 1 101
|
|
char 1 109
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 75
|
|
char 1 101
|
|
char 1 121
|
|
char 1 95
|
|
char 1 66
|
|
char 1 105
|
|
char 1 103
|
|
char 1 58
|
|
char 1 32
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 114
|
|
char 1 115
|
|
char 1 105
|
|
char 1 122
|
|
char 1 101
|
|
char 1 32
|
|
char 1 105
|
|
char 1 110
|
|
char 1 102
|
|
char 1 111
|
|
char 1 115
|
|
char 1 116
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 0
|
|
align 1
|
|
LABELV $385
|
|
char 1 73
|
|
char 1 110
|
|
char 1 102
|
|
char 1 111
|
|
char 1 95
|
|
char 1 82
|
|
char 1 101
|
|
char 1 109
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 75
|
|
char 1 101
|
|
char 1 121
|
|
char 1 58
|
|
char 1 32
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 114
|
|
char 1 115
|
|
char 1 105
|
|
char 1 122
|
|
char 1 101
|
|
char 1 32
|
|
char 1 105
|
|
char 1 110
|
|
char 1 102
|
|
char 1 111
|
|
char 1 115
|
|
char 1 116
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 0
|
|
align 1
|
|
LABELV $351
|
|
char 1 73
|
|
char 1 110
|
|
char 1 102
|
|
char 1 111
|
|
char 1 95
|
|
char 1 86
|
|
char 1 97
|
|
char 1 108
|
|
char 1 117
|
|
char 1 101
|
|
char 1 70
|
|
char 1 111
|
|
char 1 114
|
|
char 1 75
|
|
char 1 101
|
|
char 1 121
|
|
char 1 58
|
|
char 1 32
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 114
|
|
char 1 115
|
|
char 1 105
|
|
char 1 122
|
|
char 1 101
|
|
char 1 32
|
|
char 1 105
|
|
char 1 110
|
|
char 1 102
|
|
char 1 111
|
|
char 1 115
|
|
char 1 116
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 103
|
|
char 1 0
|
|
align 1
|
|
LABELV $348
|
|
char 1 0
|
|
align 1
|
|
LABELV $337
|
|
char 1 67
|
|
char 1 111
|
|
char 1 109
|
|
char 1 95
|
|
char 1 115
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 102
|
|
char 1 58
|
|
char 1 32
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 114
|
|
char 1 102
|
|
char 1 108
|
|
char 1 111
|
|
char 1 119
|
|
char 1 32
|
|
char 1 111
|
|
char 1 102
|
|
char 1 32
|
|
char 1 37
|
|
char 1 105
|
|
char 1 32
|
|
char 1 105
|
|
char 1 110
|
|
char 1 32
|
|
char 1 37
|
|
char 1 105
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $334
|
|
char 1 67
|
|
char 1 111
|
|
char 1 109
|
|
char 1 95
|
|
char 1 115
|
|
char 1 112
|
|
char 1 114
|
|
char 1 105
|
|
char 1 110
|
|
char 1 116
|
|
char 1 102
|
|
char 1 58
|
|
char 1 32
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 114
|
|
char 1 102
|
|
char 1 108
|
|
char 1 111
|
|
char 1 119
|
|
char 1 101
|
|
char 1 100
|
|
char 1 32
|
|
char 1 98
|
|
char 1 105
|
|
char 1 103
|
|
char 1 98
|
|
char 1 117
|
|
char 1 102
|
|
char 1 102
|
|
char 1 101
|
|
char 1 114
|
|
char 1 0
|
|
align 1
|
|
LABELV $313
|
|
char 1 81
|
|
char 1 95
|
|
char 1 115
|
|
char 1 116
|
|
char 1 114
|
|
char 1 99
|
|
char 1 97
|
|
char 1 116
|
|
char 1 58
|
|
char 1 32
|
|
char 1 97
|
|
char 1 108
|
|
char 1 114
|
|
char 1 101
|
|
char 1 97
|
|
char 1 100
|
|
char 1 121
|
|
char 1 32
|
|
char 1 111
|
|
char 1 118
|
|
char 1 101
|
|
char 1 114
|
|
char 1 102
|
|
char 1 108
|
|
char 1 111
|
|
char 1 119
|
|
char 1 101
|
|
char 1 100
|
|
char 1 0
|
|
align 1
|
|
LABELV $263
|
|
char 1 81
|
|
char 1 95
|
|
char 1 115
|
|
char 1 116
|
|
char 1 114
|
|
char 1 110
|
|
char 1 99
|
|
char 1 112
|
|
char 1 121
|
|
char 1 122
|
|
char 1 58
|
|
char 1 32
|
|
char 1 100
|
|
char 1 101
|
|
char 1 115
|
|
char 1 116
|
|
char 1 115
|
|
char 1 105
|
|
char 1 122
|
|
char 1 101
|
|
char 1 32
|
|
char 1 60
|
|
char 1 32
|
|
char 1 49
|
|
char 1 0
|
|
align 1
|
|
LABELV $260
|
|
char 1 81
|
|
char 1 95
|
|
char 1 115
|
|
char 1 116
|
|
char 1 114
|
|
char 1 110
|
|
char 1 99
|
|
char 1 112
|
|
char 1 121
|
|
char 1 122
|
|
char 1 58
|
|
char 1 32
|
|
char 1 78
|
|
char 1 85
|
|
char 1 76
|
|
char 1 76
|
|
char 1 32
|
|
char 1 115
|
|
char 1 114
|
|
char 1 99
|
|
char 1 0
|
|
align 1
|
|
LABELV $257
|
|
char 1 81
|
|
char 1 95
|
|
char 1 115
|
|
char 1 116
|
|
char 1 114
|
|
char 1 110
|
|
char 1 99
|
|
char 1 112
|
|
char 1 121
|
|
char 1 122
|
|
char 1 58
|
|
char 1 32
|
|
char 1 78
|
|
char 1 85
|
|
char 1 76
|
|
char 1 76
|
|
char 1 32
|
|
char 1 100
|
|
char 1 101
|
|
char 1 115
|
|
char 1 116
|
|
char 1 0
|
|
align 1
|
|
LABELV $221
|
|
char 1 41
|
|
char 1 0
|
|
align 1
|
|
LABELV $216
|
|
char 1 40
|
|
char 1 0
|
|
align 1
|
|
LABELV $197
|
|
char 1 77
|
|
char 1 97
|
|
char 1 116
|
|
char 1 99
|
|
char 1 104
|
|
char 1 84
|
|
char 1 111
|
|
char 1 107
|
|
char 1 101
|
|
char 1 110
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 32
|
|
char 1 33
|
|
char 1 61
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $103
|
|
char 1 87
|
|
char 1 65
|
|
char 1 82
|
|
char 1 78
|
|
char 1 73
|
|
char 1 78
|
|
char 1 71
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 44
|
|
char 1 32
|
|
char 1 108
|
|
char 1 105
|
|
char 1 110
|
|
char 1 101
|
|
char 1 32
|
|
char 1 37
|
|
char 1 100
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $99
|
|
char 1 69
|
|
char 1 82
|
|
char 1 82
|
|
char 1 79
|
|
char 1 82
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 44
|
|
char 1 32
|
|
char 1 108
|
|
char 1 105
|
|
char 1 110
|
|
char 1 101
|
|
char 1 32
|
|
char 1 37
|
|
char 1 100
|
|
char 1 58
|
|
char 1 32
|
|
char 1 37
|
|
char 1 115
|
|
char 1 10
|
|
char 1 0
|
|
align 1
|
|
LABELV $93
|
|
char 1 37
|
|
char 1 115
|
|
char 1 0
|
|
align 1
|
|
LABELV $73
|
|
char 1 37
|
|
char 1 115
|
|
char 1 37
|
|
char 1 115
|
|
char 1 0
|