; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.3077 

	TITLE	.\scriptregistrar.cpp
	.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	ENDS
$$SYMBOLS	SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS	ENDS
$$TYPES	SEGMENT BYTE USE32 'DEBTYP'
$$TYPES	ENDS
_TLS	SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS	ENDS
;	COMDAT _acosl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _asinl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atanl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atan2l
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ceill
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _cosl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _coshl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _expl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fabsl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _floorl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fmodl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _frexpl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ldexpl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _logl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _log10l
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _modfl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _powl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinhl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sqrtl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanhl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _frexpf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ldexpf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _acosf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _asinf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atanf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atan2f
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ceilf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _cosf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _coshf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _expf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fabsf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _floorf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fmodf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _logf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _log10f
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _modff
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _powf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinhf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sqrtf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanhf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?GetID@GameObjObserverClass@@QAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?UnregisterScript@ScriptRegistrar@@SAXPAVScriptFactory@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?RegisterScript@ScriptRegistrar@@SAXPAVScriptFactory@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?GetScriptFactory@ScriptRegistrar@@SAPAVScriptFactory@@PBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?GetScriptFactory@ScriptRegistrar@@SAPAVScriptFactory@@H@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Count@ScriptRegistrar@@SAHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?CreateScript@ScriptRegistrar@@SAPAVScriptImpClass@@PBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@N@@YANNH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@H@@YAHHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@M@@YAMMH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@O@@YAOOH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
sxdata	SEGMENT DWORD USE32 'SXDATA'
sxdata	ENDS
FLAT	GROUP _DATA, CONST, _BSS
	ASSUME	CS: FLAT, DS: FLAT, SS: FLAT
endif

INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES

PUBLIC	?mScriptFactories@ScriptRegistrar@@0PAVScriptFactory@@A ; ScriptRegistrar::mScriptFactories
_BSS	SEGMENT
?mScriptFactories@ScriptRegistrar@@0PAVScriptFactory@@A DD 01H DUP (?) ; ScriptRegistrar::mScriptFactories
_BSS	ENDS
PUBLIC	?UnregisterScript@ScriptRegistrar@@SAXPAVScriptFactory@@@Z ; ScriptRegistrar::UnregisterScript
EXTRN	?GetNext@ScriptFactory@@QAEPAV1@XZ:NEAR		; ScriptFactory::GetNext
EXTRN	?SetNext@ScriptFactory@@QAEXPAV1@@Z:NEAR	; ScriptFactory::SetNext
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf 1.3\scriptregistrar.cpp
;	COMDAT ?UnregisterScript@ScriptRegistrar@@SAXPAVScriptFactory@@@Z
_TEXT	SEGMENT
_ptr$ = 8						; size = 4
?UnregisterScript@ScriptRegistrar@@SAXPAVScriptFactory@@@Z PROC NEAR ; ScriptRegistrar::UnregisterScript, COMDAT

; 17   : {

	push	ebx
	push	esi

; 18   : 	ScriptFactory *x = mScriptFactories;

	mov	esi, DWORD PTR ?mScriptFactories@ScriptRegistrar@@0PAVScriptFactory@@A ; ScriptRegistrar::mScriptFactories

; 19   : 	ScriptFactory *z = 0;

	xor	ebx, ebx

; 20   : 	ScriptFactory *y;
; 21   : 	while (x)

	test	esi, esi
	je	SHORT $L3315
	push	ebp
	mov	ebp, DWORD PTR _ptr$[esp+8]
	push	edi
$L3314:

; 22   : 	{
; 23   : 		y = x->GetNext();

	mov	ecx, esi
	call	?GetNext@ScriptFactory@@QAEPAV1@XZ	; ScriptFactory::GetNext

; 24   : 		if (x == ptr)

	cmp	esi, ebp
	mov	edi, eax
	jne	SHORT $L3461

; 25   : 		{
; 26   : 			if (!z)

	test	ebx, ebx
	jne	SHORT $L3317

; 27   : 			{
; 28   : 				mScriptFactories = y;

	mov	DWORD PTR ?mScriptFactories@ScriptRegistrar@@0PAVScriptFactory@@A, edi ; ScriptRegistrar::mScriptFactories

; 29   : 			}
; 30   : 			else

	jmp	SHORT $L3461
$L3317:

; 31   : 			{
; 32   : 				z->SetNext(y);

	push	edi
	mov	ecx, ebx
	call	?SetNext@ScriptFactory@@QAEXPAV1@@Z	; ScriptFactory::SetNext
$L3461:
	test	edi, edi

; 33   : 			}
; 34   : 		}
; 35   : 		z = x;

	mov	ebx, esi

; 36   : 		x = y;

	mov	esi, edi
	jne	SHORT $L3314
	pop	edi
	pop	ebp
$L3315:
	pop	esi
	pop	ebx

; 37   : 	}
; 38   : }

	ret	0
?UnregisterScript@ScriptRegistrar@@SAXPAVScriptFactory@@@Z ENDP ; ScriptRegistrar::UnregisterScript
_TEXT	ENDS
PUBLIC	?RegisterScript@ScriptRegistrar@@SAXPAVScriptFactory@@@Z ; ScriptRegistrar::RegisterScript
; Function compile flags: /Ogty
;	COMDAT ?RegisterScript@ScriptRegistrar@@SAXPAVScriptFactory@@@Z
_TEXT	SEGMENT
_ptr$ = 8						; size = 4
?RegisterScript@ScriptRegistrar@@SAXPAVScriptFactory@@@Z PROC NEAR ; ScriptRegistrar::RegisterScript, COMDAT

; 42   : 	ptr->SetNext(mScriptFactories);

	mov	eax, DWORD PTR ?mScriptFactories@ScriptRegistrar@@0PAVScriptFactory@@A ; ScriptRegistrar::mScriptFactories
	push	esi
	mov	esi, DWORD PTR _ptr$[esp]
	push	eax
	mov	ecx, esi
	call	?SetNext@ScriptFactory@@QAEXPAV1@@Z	; ScriptFactory::SetNext

; 43   : 	mScriptFactories = ptr;

	mov	DWORD PTR ?mScriptFactories@ScriptRegistrar@@0PAVScriptFactory@@A, esi ; ScriptRegistrar::mScriptFactories
	pop	esi

; 44   : }

	ret	0
?RegisterScript@ScriptRegistrar@@SAXPAVScriptFactory@@@Z ENDP ; ScriptRegistrar::RegisterScript
_TEXT	ENDS
PUBLIC	?GetScriptFactory@ScriptRegistrar@@SAPAVScriptFactory@@PBD@Z ; ScriptRegistrar::GetScriptFactory
EXTRN	?GetName@ScriptFactory@@QAEPADXZ:NEAR		; ScriptFactory::GetName
EXTRN	_stricmp:NEAR
; Function compile flags: /Ogty
;	COMDAT ?GetScriptFactory@ScriptRegistrar@@SAPAVScriptFactory@@PBD@Z
_TEXT	SEGMENT
_name$ = 8						; size = 4
?GetScriptFactory@ScriptRegistrar@@SAPAVScriptFactory@@PBD@Z PROC NEAR ; ScriptRegistrar::GetScriptFactory, COMDAT

; 47   : {

	push	esi

; 48   : 	ScriptFactory *x = mScriptFactories;

	mov	esi, DWORD PTR ?mScriptFactories@ScriptRegistrar@@0PAVScriptFactory@@A ; ScriptRegistrar::mScriptFactories
	push	edi

; 49   : 	if (!name)

	mov	edi, DWORD PTR _name$[esp+4]
	test	edi, edi

; 50   : 	{
; 51   : 		return 0;

	je	SHORT $L3329

; 52   : 	}
; 53   : 	while (x)

	test	esi, esi
	je	SHORT $L3329
$L3328:

; 54   : 	{
; 55   : 		if (!stricmp(x->GetName(),name))

	push	edi
	mov	ecx, esi
	call	?GetName@ScriptFactory@@QAEPADXZ	; ScriptFactory::GetName
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax
	je	SHORT $L3469

; 58   : 		}
; 59   : 		x = x->GetNext();

	mov	ecx, esi
	call	?GetNext@ScriptFactory@@QAEPAV1@XZ	; ScriptFactory::GetNext
	mov	esi, eax
	test	esi, esi
	jne	SHORT $L3328
$L3329:
	pop	edi

; 60   : 	}
; 61   : 	return 0;

	xor	eax, eax
	pop	esi

; 62   : }

	ret	0
$L3469:
	pop	edi

; 56   : 		{
; 57   : 			return x;

	mov	eax, esi
	pop	esi

; 62   : }

	ret	0
?GetScriptFactory@ScriptRegistrar@@SAPAVScriptFactory@@PBD@Z ENDP ; ScriptRegistrar::GetScriptFactory
_TEXT	ENDS
PUBLIC	?GetScriptFactory@ScriptRegistrar@@SAPAVScriptFactory@@H@Z ; ScriptRegistrar::GetScriptFactory
; Function compile flags: /Ogty
;	COMDAT ?GetScriptFactory@ScriptRegistrar@@SAPAVScriptFactory@@H@Z
_TEXT	SEGMENT
_number$ = 8						; size = 4
?GetScriptFactory@ScriptRegistrar@@SAPAVScriptFactory@@H@Z PROC NEAR ; ScriptRegistrar::GetScriptFactory, COMDAT

; 66   : 	ScriptFactory *x = mScriptFactories;

	mov	eax, DWORD PTR ?mScriptFactories@ScriptRegistrar@@0PAVScriptFactory@@A ; ScriptRegistrar::mScriptFactories
	push	esi

; 67   : 	int n = 0;

	xor	esi, esi

; 68   : 	while (x)

	test	eax, eax
	push	edi
	je	SHORT $L3338
	mov	edi, DWORD PTR _number$[esp+4]
$L3337:

; 69   : 	{
; 70   : 		if (n == number)

	cmp	esi, edi
	je	SHORT $L3333

; 71   : 		{
; 72   : 			return x;
; 73   : 		}
; 74   : 		x = x->GetNext();

	mov	ecx, eax
	call	?GetNext@ScriptFactory@@QAEPAV1@XZ	; ScriptFactory::GetNext

; 75   : 		n++;

	inc	esi
	test	eax, eax
	jne	SHORT $L3337
$L3338:

; 76   : 	}
; 77   : 	return 0;

	xor	eax, eax
$L3333:
	pop	edi
	pop	esi

; 78   : }

	ret	0
?GetScriptFactory@ScriptRegistrar@@SAPAVScriptFactory@@H@Z ENDP ; ScriptRegistrar::GetScriptFactory
_TEXT	ENDS
PUBLIC	?Count@ScriptRegistrar@@SAHXZ			; ScriptRegistrar::Count
; Function compile flags: /Ogty
;	COMDAT ?Count@ScriptRegistrar@@SAHXZ
_TEXT	SEGMENT
?Count@ScriptRegistrar@@SAHXZ PROC NEAR			; ScriptRegistrar::Count, COMDAT

; 82   : 	ScriptFactory *x;
; 83   : 	int sn = 0;
; 84   : 	x = mScriptFactories;

	mov	eax, DWORD PTR ?mScriptFactories@ScriptRegistrar@@0PAVScriptFactory@@A ; ScriptRegistrar::mScriptFactories
	push	esi
	xor	esi, esi

; 85   : 	while (x)

	test	eax, eax
	je	SHORT $L3482
	npad	4
$L3345:

; 86   : 	{
; 87   : 		sn++;
; 88   : 		x = x->GetNext();

	mov	ecx, eax
	inc	esi
	call	?GetNext@ScriptFactory@@QAEPAV1@XZ	; ScriptFactory::GetNext
	test	eax, eax
	jne	SHORT $L3345
$L3482:

; 89   : 	}
; 90   : 	return sn;

	mov	eax, esi
	pop	esi

; 91   : }

	ret	0
?Count@ScriptRegistrar@@SAHXZ ENDP			; ScriptRegistrar::Count
_TEXT	ENDS
PUBLIC	?CreateScript@ScriptRegistrar@@SAPAVScriptImpClass@@PBD@Z ; ScriptRegistrar::CreateScript
; Function compile flags: /Ogty
;	COMDAT ?CreateScript@ScriptRegistrar@@SAPAVScriptImpClass@@PBD@Z
_TEXT	SEGMENT
_scriptName$ = 8					; size = 4
?CreateScript@ScriptRegistrar@@SAPAVScriptImpClass@@PBD@Z PROC NEAR ; ScriptRegistrar::CreateScript, COMDAT

; 94   : {

	push	esi

; 95   : 	ScriptFactory *x = mScriptFactories;

	mov	esi, DWORD PTR ?mScriptFactories@ScriptRegistrar@@0PAVScriptFactory@@A ; ScriptRegistrar::mScriptFactories
	push	edi

; 96   : 	if (!scriptName)

	mov	edi, DWORD PTR _scriptName$[esp+4]
	test	edi, edi

; 97   : 	{
; 98   : 		return 0;

	je	SHORT $L3354

; 99   : 	}
; 100  : 	while (x)

	test	esi, esi
	je	SHORT $L3354
$L3353:

; 101  : 	{
; 102  : 		if (!stricmp(x->GetName(),scriptName))

	push	edi
	mov	ecx, esi
	call	?GetName@ScriptFactory@@QAEPADXZ	; ScriptFactory::GetName
	push	eax
	call	_stricmp
	add	esp, 8
	test	eax, eax

; 105  : 		}
; 106  : 		x = x->GetNext();

	mov	ecx, esi
	je	SHORT $L3487
	call	?GetNext@ScriptFactory@@QAEPAV1@XZ	; ScriptFactory::GetNext
	mov	esi, eax
	test	esi, esi
	jne	SHORT $L3353
$L3354:
	pop	edi

; 107  : 	}
; 108  : 	return 0;

	xor	eax, eax
	pop	esi

; 109  : }

	ret	0
$L3487:

; 103  : 		{
; 104  : 			return x->Create();

	mov	eax, DWORD PTR [esi]
	pop	edi
	pop	esi
	jmp	DWORD PTR [eax+4]
?CreateScript@ScriptRegistrar@@SAPAVScriptImpClass@@PBD@Z ENDP ; ScriptRegistrar::CreateScript
_TEXT	ENDS
END
