	format	MS COFF
	extrn	___bb_blitz_blitz
	extrn	___bb_missilelock_global
	extrn	__bb_GFX_fireball
	extrn	__bb_GFX_star
	extrn	_bbGCFree
	extrn	_bbNullObject
	extrn	_bbObjectClass
	extrn	_bbObjectCompare
	extrn	_bbObjectCtor
	extrn	_bbObjectDowncast
	extrn	_bbObjectDtor
	extrn	_bbObjectFree
	extrn	_bbObjectNew
	extrn	_bbObjectRegisterType
	extrn	_bbObjectReserved
	extrn	_bbObjectSendMessage
	extrn	_bbObjectToString
	extrn	_bb_TEasyLink
	extrn	_brl_linkedlist_CreateList
	extrn	_brl_max2d_DrawImage
	extrn	_brl_max2d_SetAlpha
	extrn	_brl_max2d_SetColor
	extrn	_brl_max2d_SetScale
	extrn	_brl_random_Rand
	extrn	_brl_random_Rnd
	public	___bb_missilelock_particle
	public	__bb_Particles_AddBigExplosion
	public	__bb_Particles_AddExplosion
	public	__bb_Particles_AddImage
	public	__bb_Particles_AddScaledImage
	public	__bb_Particles_Clear
	public	__bb_Particles_Delete
	public	__bb_Particles_Draw
	public	__bb_Particles_Init
	public	__bb_Particles_New
	public	__bb_Particles_plist
	public	__bb_TParticle_Delete
	public	__bb_TParticle_Image
	public	__bb_TParticle_New
	public	__bb_TParticle_ScaleImage
	public	__bb_TParticle_Update
	public	_bb_Particles
	public	_bb_TParticle
	section	"code" code
___bb_missilelock_particle:
	push	ebp
	mov	ebp,esp
	cmp	dword [_116],0
	je	_117
	mov	eax,0
	mov	esp,ebp
	pop	ebp
	ret
_117:
	mov	dword [_116],1
	call	___bb_blitz_blitz
	call	___bb_missilelock_global
	push	_bb_TParticle
	call	_bbObjectRegisterType
	add	esp,4
	push	_bb_Particles
	call	_bbObjectRegisterType
	add	esp,4
	mov	eax,0
	jmp	_49
_49:
	mov	esp,ebp
	pop	ebp
	ret
__bb_TParticle_New:
	push	ebp
	mov	ebp,esp
	push	ebx
	mov	ebx,dword [ebp+8]
	push	ebx
	call	_bbObjectCtor
	add	esp,4
	mov	dword [ebx],_bb_TParticle
	mov	dword [ebx+8],0
	mov	eax,_bbNullObject
	inc	dword [eax+4]
	mov	dword [ebx+12],eax
	fldz
	fstp	qword [ebx+16]
	fldz
	fstp	qword [ebx+24]
	fldz
	fstp	qword [ebx+32]
	fldz
	fstp	qword [ebx+40]
	fldz
	fstp	qword [ebx+48]
	fldz
	fstp	qword [ebx+56]
	fldz
	fstp	qword [ebx+64]
	fldz
	fstp	qword [ebx+72]
	mov	dword [ebx+80],0
	mov	dword [ebx+84],0
	mov	dword [ebx+88],0
	mov	eax,0
	jmp	_52
_52:
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
__bb_TParticle_Delete:
	push	ebp
	mov	ebp,esp
	push	ebx
	mov	ebx,dword [ebp+8]
_55:
	mov	eax,dword [ebx+12]
	dec	dword [eax+4]
	jnz	_121
	push	eax
	call	_bbGCFree
	add	esp,4
_121:
	mov	dword [ebx],_bbObjectClass
	push	ebx
	call	_bbObjectDtor
	add	esp,4
	mov	eax,0
	jmp	_119
_119:
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
__bb_TParticle_Image:
	push	ebp
	mov	ebp,esp
	push	ebx
	push	esi
	push	edi
	mov	esi,dword [ebp+8]
	mov	edi,dword [ebp+48]
	push	_bb_TParticle
	call	_bbObjectNew
	add	esp,4
	mov	ebx,eax
	mov	dword [ebx+8],120
	fld	qword [ebp+12]
	fstp	qword [ebx+16]
	fld	qword [ebp+20]
	fstp	qword [ebx+24]
	fld1
	fstp	qword [ebx+32]
	fld	qword [_163]
	fstp	qword [ebx+56]
	fld	qword [ebp+28]
	fstp	qword [ebx+40]
	fld	qword [ebp+36]
	fstp	qword [ebx+48]
	fld1
	fstp	qword [ebx+64]
	fldz
	fstp	qword [ebx+72]
	mov	eax,esi
	inc	dword [eax+4]
	mov	esi,eax
	mov	eax,dword [ebx+12]
	dec	dword [eax+4]
	jnz	_126
	push	eax
	call	_bbGCFree
	add	esp,4
_126:
	mov	dword [ebx+12],esi
	mov	eax,dword [ebp+44]
	mov	dword [ebx+80],eax
	mov	dword [ebx+84],edi
	mov	eax,dword [ebp+52]
	mov	dword [ebx+88],eax
	mov	eax,ebx
	jmp	_65
_65:
	pop	edi
	pop	esi
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
__bb_TParticle_ScaleImage:
	push	ebp
	mov	ebp,esp
	push	ebx
	push	esi
	push	edi
	mov	esi,dword [ebp+8]
	mov	edi,dword [ebp+56]
	push	_bb_TParticle
	call	_bbObjectNew
	add	esp,4
	mov	ebx,eax
	mov	dword [ebx+8],120
	fld	qword [ebp+12]
	fstp	qword [ebx+16]
	fld	qword [ebp+20]
	fstp	qword [ebx+24]
	fld1
	fstp	qword [ebx+32]
	fld	qword [_167]
	fstp	qword [ebx+56]
	fld	qword [ebp+28]
	fstp	qword [ebx+40]
	fld	qword [ebp+36]
	fstp	qword [ebx+48]
	fld1
	fstp	qword [ebx+64]
	fld	qword [ebp+44]
	fstp	qword [ebx+72]
	mov	eax,esi
	inc	dword [eax+4]
	mov	esi,eax
	mov	eax,dword [ebx+12]
	dec	dword [eax+4]
	jnz	_131
	push	eax
	call	_bbGCFree
	add	esp,4
_131:
	mov	dword [ebx+12],esi
	mov	eax,dword [ebp+52]
	mov	dword [ebx+80],eax
	mov	dword [ebx+84],edi
	mov	eax,dword [ebp+60]
	mov	dword [ebx+88],eax
	mov	eax,ebx
	jmp	_76
_76:
	pop	edi
	pop	esi
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
__bb_TParticle_Update:
	push	ebp
	mov	ebp,esp
	push	ebx
	mov	ebx,dword [ebp+8]
	fld	qword [ebx+32]
	sub	esp,4
	fstp	dword [esp]
	call	_brl_max2d_SetAlpha
	add	esp,4
	fld	qword [ebx+64]
	sub	esp,4
	fstp	dword [esp]
	fld	qword [ebx+64]
	sub	esp,4
	fstp	dword [esp]
	call	_brl_max2d_SetScale
	add	esp,8
	push	dword [ebx+88]
	push	dword [ebx+84]
	push	dword [ebx+80]
	call	_brl_max2d_SetColor
	add	esp,12
	push	0
	fld	qword [ebx+24]
	sub	esp,4
	fstp	dword [esp]
	fld	qword [ebx+16]
	sub	esp,4
	fstp	dword [esp]
	push	dword [ebx+12]
	call	_brl_max2d_DrawImage
	add	esp,16
	fld	qword [ebx+16]
	fadd	qword [ebx+40]
	fstp	qword [ebx+16]
	fld	qword [ebx+24]
	fadd	qword [ebx+48]
	fstp	qword [ebx+24]
	sub	dword [ebx+8],1
	fld	qword [ebx+32]
	fadd	qword [ebx+56]
	fstp	qword [ebx+32]
	fld	qword [ebx+64]
	fadd	qword [ebx+72]
	fstp	qword [ebx+64]
	mov	eax,dword [ebx+8]
	cmp	eax,0
	setg	al
	movzx	eax,al
	jmp	_79
_79:
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
__bb_Particles_New:
	push	ebp
	mov	ebp,esp
	push	ebx
	mov	ebx,dword [ebp+8]
	push	ebx
	call	_bbObjectCtor
	add	esp,4
	mov	dword [ebx],_bb_Particles
	mov	eax,0
	jmp	_82
_82:
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
__bb_Particles_Delete:
	push	ebp
	mov	ebp,esp
	mov	eax,dword [ebp+8]
_85:
	mov	dword [eax],_bbObjectClass
	push	eax
	call	_bbObjectDtor
	add	esp,4
	mov	eax,0
	jmp	_132
_132:
	mov	esp,ebp
	pop	ebp
	ret
__bb_Particles_Init:
	push	ebp
	mov	ebp,esp
	push	ebx
	call	_brl_linkedlist_CreateList
	inc	dword [eax+4]
	mov	ebx,eax
	mov	eax,dword [__bb_Particles_plist]
	dec	dword [eax+4]
	jnz	_136
	push	eax
	call	_bbGCFree
	add	esp,4
_136:
	mov	dword [__bb_Particles_plist],ebx
	mov	eax,0
	jmp	_87
_87:
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
__bb_Particles_Clear:
	push	ebp
	mov	ebp,esp
	mov	eax,dword [__bb_Particles_plist]
	push	eax
	mov	eax,dword [eax]
	call	dword [eax+52]
	add	esp,4
	mov	eax,0
	jmp	_89
_89:
	mov	esp,ebp
	pop	ebp
	ret
__bb_Particles_AddImage:
	push	ebp
	mov	ebp,esp
	push	ebx
	mov	eax,dword [ebp+8]
	fld	qword [ebp+12]
	fld	qword [ebp+20]
	fld	qword [ebp+28]
	fld	qword [ebp+36]
	mov	ebx,dword [__bb_Particles_plist]
	push	255
	push	255
	push	255
	sub	esp,8
	fstp	qword [esp]
	sub	esp,8
	fstp	qword [esp]
	sub	esp,8
	fstp	qword [esp]
	sub	esp,8
	fstp	qword [esp]
	push	eax
	call	dword [_bb_TParticle+48]
	add	esp,48
	push	eax
	push	ebx
	mov	eax,dword [ebx]
	call	dword [eax+68]
	add	esp,8
	mov	eax,0
	jmp	_96
_96:
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
__bb_Particles_AddScaledImage:
	push	ebp
	mov	ebp,esp
	push	ebx
	mov	eax,dword [ebp+8]
	fld	qword [ebp+12]
	fld	qword [ebp+20]
	fld	qword [ebp+28]
	fld	qword [ebp+36]
	fld	qword [ebp+44]
	mov	ebx,dword [__bb_Particles_plist]
	push	255
	push	255
	push	255
	sub	esp,8
	fxch	st2
	fstp	qword [esp]
	sub	esp,8
	fxch	st1
	fstp	qword [esp]
	sub	esp,8
	fstp	qword [esp]
	sub	esp,8
	fstp	qword [esp]
	sub	esp,8
	fstp	qword [esp]
	push	eax
	call	dword [_bb_TParticle+52]
	add	esp,56
	push	eax
	push	ebx
	mov	eax,dword [ebx]
	call	dword [eax+68]
	add	esp,8
	mov	eax,0
	jmp	_104
_104:
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
__bb_Particles_AddExplosion:
	push	ebp
	mov	ebp,esp
	push	ebx
	push	esi
	mov	esi,0
	jmp	_141
_5:
	mov	ebx,dword [__bb_Particles_plist]
	push	255
	push	100
	call	_brl_random_Rand
	add	esp,8
	push	eax
	push	255
	push	100
	call	_brl_random_Rand
	add	esp,8
	push	eax
	push	255
	push	100
	call	_brl_random_Rand
	add	esp,8
	push	eax
	fld	qword [_186]
	sub	esp,8
	fstp	qword [esp]
	fld	qword [_187]
	sub	esp,8
	fstp	qword [esp]
	call	_brl_random_Rnd
	add	esp,16
	sub	esp,8
	fstp	qword [esp]
	fld	qword [_188]
	sub	esp,8
	fstp	qword [esp]
	fld	qword [_189]
	sub	esp,8
	fstp	qword [esp]
	call	_brl_random_Rnd
	add	esp,16
	sub	esp,8
	fstp	qword [esp]
	fld	qword [ebp+16]
	sub	esp,8
	fstp	qword [esp]
	fld	qword [ebp+8]
	sub	esp,8
	fstp	qword [esp]
	push	dword [__bb_GFX_star]
	call	dword [_bb_TParticle+48]
	add	esp,48
	push	eax
	push	ebx
	mov	eax,dword [ebx]
	call	dword [eax+68]
	add	esp,8
_3:
	add	esi,1
_141:
	cmp	esi,20
	jle	_5
_4:
	mov	eax,0
	jmp	_108
_108:
	pop	esi
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
__bb_Particles_AddBigExplosion:
	push	ebp
	mov	ebp,esp
	push	ebx
	push	esi
	mov	ebx,dword [__bb_Particles_plist]
	push	255
	push	255
	push	255
	fld	qword [_192]
	sub	esp,8
	fstp	qword [esp]
	fldz
	sub	esp,8
	fstp	qword [esp]
	fldz
	sub	esp,8
	fstp	qword [esp]
	fld	qword [ebp+16]
	sub	esp,8
	fstp	qword [esp]
	fld	qword [ebp+8]
	sub	esp,8
	fstp	qword [esp]
	push	dword [__bb_GFX_fireball]
	call	dword [_bb_TParticle+52]
	add	esp,56
	push	eax
	push	ebx
	mov	eax,dword [ebx]
	call	dword [eax+68]
	add	esp,8
	mov	esi,0
	jmp	_145
_8:
	mov	ebx,dword [__bb_Particles_plist]
	push	255
	push	100
	call	_brl_random_Rand
	add	esp,8
	push	eax
	push	255
	push	100
	call	_brl_random_Rand
	add	esp,8
	push	eax
	push	255
	push	100
	call	_brl_random_Rand
	add	esp,8
	push	eax
	fld	qword [_193]
	sub	esp,8
	fstp	qword [esp]
	fld	qword [_194]
	sub	esp,8
	fstp	qword [esp]
	call	_brl_random_Rnd
	add	esp,16
	sub	esp,8
	fstp	qword [esp]
	fld	qword [_195]
	sub	esp,8
	fstp	qword [esp]
	fld	qword [_196]
	sub	esp,8
	fstp	qword [esp]
	call	_brl_random_Rnd
	add	esp,16
	sub	esp,8
	fstp	qword [esp]
	fld	qword [ebp+16]
	sub	esp,8
	fstp	qword [esp]
	fld	qword [ebp+8]
	sub	esp,8
	fstp	qword [esp]
	push	dword [__bb_GFX_star]
	call	dword [_bb_TParticle+48]
	add	esp,48
	push	eax
	push	ebx
	mov	eax,dword [ebx]
	call	dword [eax+68]
	add	esp,8
_6:
	add	esi,1
_145:
	cmp	esi,50
	jle	_8
_7:
	mov	eax,0
	jmp	_112
_112:
	pop	esi
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
__bb_Particles_Draw:
	push	ebp
	mov	ebp,esp
	push	ebx
	push	dword [__bb_Particles_plist]
	call	dword [_bb_TEasyLink+48]
	add	esp,4
	mov	ebx,eax
	jmp	_9
_11:
	push	_bb_TParticle
	push	ebx
	mov	eax,dword [ebx]
	call	dword [eax+52]
	add	esp,4
	push	eax
	call	_bbObjectDowncast
	add	esp,8
	push	eax
	mov	eax,dword [eax]
	call	dword [eax+56]
	add	esp,4
	cmp	eax,0
	je	_152
	push	ebx
	mov	eax,dword [ebx]
	call	dword [eax+56]
	add	esp,4
	jmp	_154
_152:
	push	ebx
	mov	eax,dword [ebx]
	call	dword [eax+60]
	add	esp,4
_154:
_9:
	push	ebx
	mov	eax,dword [ebx]
	call	dword [eax+52]
	add	esp,4
	cmp	eax,_bbNullObject
	jne	_11
_10:
	push	1065353216
	call	_brl_max2d_SetAlpha
	add	esp,4
	push	1065353216
	push	1065353216
	call	_brl_max2d_SetScale
	add	esp,8
	push	255
	push	255
	push	255
	call	_brl_max2d_SetColor
	add	esp,12
	mov	eax,0
	jmp	_114
_114:
	pop	ebx
	mov	esp,ebp
	pop	ebp
	ret
	section	"data" data writeable align 8
	align	4
_116:
	dd	0
_13:
	db	"TParticle",0
_14:
	db	"life",0
_15:
	db	"i",0
_16:
	db	":brl.max2d.TImage",0
_17:
	db	"x",0
_18:
	db	"d",0
_19:
	db	"y",0
_20:
	db	"a",0
_21:
	db	"dx",0
_22:
	db	"dy",0
_23:
	db	"ai",0
_24:
	db	"s",0
_25:
	db	"si",0
_26:
	db	"r",0
_27:
	db	"g",0
_28:
	db	"b",0
_29:
	db	"New",0
_30:
	db	"()i",0
_31:
	db	"Delete",0
_32:
	db	"Image",0
_33:
	db	"(:brl.max2d.TImage,d,d,d,d,i,i,i):TParticle",0
_34:
	db	"ScaleImage",0
_35:
	db	"(:brl.max2d.TImage,d,d,d,d,d,i,i,i):TParticle",0
_36:
	db	"Update",0
	align	4
_12:
	dd	2
	dd	_13
	dd	3
	dd	_14
	dd	_15
	dd	8
	dd	3
	dd	_15
	dd	_16
	dd	12
	dd	3
	dd	_17
	dd	_18
	dd	16
	dd	3
	dd	_19
	dd	_18
	dd	24
	dd	3
	dd	_20
	dd	_18
	dd	32
	dd	3
	dd	_21
	dd	_18
	dd	40
	dd	3
	dd	_22
	dd	_18
	dd	48
	dd	3
	dd	_23
	dd	_18
	dd	56
	dd	3
	dd	_24
	dd	_18
	dd	64
	dd	3
	dd	_25
	dd	_18
	dd	72
	dd	3
	dd	_26
	dd	_15
	dd	80
	dd	3
	dd	_27
	dd	_15
	dd	84
	dd	3
	dd	_28
	dd	_15
	dd	88
	dd	6
	dd	_29
	dd	_30
	dd	16
	dd	6
	dd	_31
	dd	_30
	dd	20
	dd	7
	dd	_32
	dd	_33
	dd	48
	dd	7
	dd	_34
	dd	_35
	dd	52
	dd	6
	dd	_36
	dd	_30
	dd	56
	dd	0
	align	4
_bb_TParticle:
	dd	_bbObjectClass
	dd	_bbObjectFree
	dd	_12
	dd	92
	dd	__bb_TParticle_New
	dd	__bb_TParticle_Delete
	dd	_bbObjectToString
	dd	_bbObjectCompare
	dd	_bbObjectSendMessage
	dd	_bbObjectReserved
	dd	_bbObjectReserved
	dd	_bbObjectReserved
	dd	__bb_TParticle_Image
	dd	__bb_TParticle_ScaleImage
	dd	__bb_TParticle_Update
	align	4
__bb_Particles_plist:
	dd	_bbNullObject
_38:
	db	"Particles",0
_39:
	db	"Init",0
_40:
	db	"Clear",0
_41:
	db	"AddImage",0
_42:
	db	"(:brl.max2d.TImage,d,d,d,d)i",0
_43:
	db	"AddScaledImage",0
_44:
	db	"(:brl.max2d.TImage,d,d,d,d,d)i",0
_45:
	db	"AddExplosion",0
_46:
	db	"(d,d)i",0
_47:
	db	"AddBigExplosion",0
_48:
	db	"Draw",0
	align	4
_37:
	dd	2
	dd	_38
	dd	6
	dd	_29
	dd	_30
	dd	16
	dd	6
	dd	_31
	dd	_30
	dd	20
	dd	7
	dd	_39
	dd	_30
	dd	48
	dd	7
	dd	_40
	dd	_30
	dd	52
	dd	7
	dd	_41
	dd	_42
	dd	56
	dd	7
	dd	_43
	dd	_44
	dd	60
	dd	7
	dd	_45
	dd	_46
	dd	64
	dd	7
	dd	_47
	dd	_46
	dd	68
	dd	7
	dd	_48
	dd	_30
	dd	72
	dd	0
	align	4
_bb_Particles:
	dd	_bbObjectClass
	dd	_bbObjectFree
	dd	_37
	dd	8
	dd	__bb_Particles_New
	dd	__bb_Particles_Delete
	dd	_bbObjectToString
	dd	_bbObjectCompare
	dd	_bbObjectSendMessage
	dd	_bbObjectReserved
	dd	_bbObjectReserved
	dd	_bbObjectReserved
	dd	__bb_Particles_Init
	dd	__bb_Particles_Clear
	dd	__bb_Particles_AddImage
	dd	__bb_Particles_AddScaledImage
	dd	__bb_Particles_AddExplosion
	dd	__bb_Particles_AddBigExplosion
	dd	__bb_Particles_Draw
	align	8
_163:
	dd	0x40000000,0xbf847ae1
	align	8
_167:
	dd	0x40000000,0xbf847ae1
	align	8
_186:
	dd	0x0,0x40000000
	align	8
_187:
	dd	0x0,0xc0000000
	align	8
_188:
	dd	0x0,0x40000000
	align	8
_189:
	dd	0x0,0xc0000000
	align	8
_192:
	dd	0xa0000000,0x3fb99999
	align	8
_193:
	dd	0x0,0x40000000
	align	8
_194:
	dd	0x0,0xc0000000
	align	8
_195:
	dd	0x0,0x40000000
	align	8
_196:
	dd	0x0,0xc0000000
