	.reference	___bb_blitz_blitz
	.reference	___bb_imports_constants
	.reference	_bbFloor
	.reference	_bbGCFree
	.reference	_bbNullObject
	.reference	_bbObjectClass
	.reference	_bbObjectCompare
	.reference	_bbObjectCtor
	.reference	_bbObjectFree
	.reference	_bbObjectNew
	.reference	_bbObjectRegisterType
	.reference	_bbObjectReserved
	.reference	_bbObjectSendMessage
	.reference	_bbObjectToString
	.reference	_bbStringClass
	.reference	_brl_max2d_DrawImage
	.reference	_brl_max2d_ImageWidth
	.reference	_brl_max2d_LoadImage
	.reference	_brl_max2d_SetColor
	.globl	___bb_imports_horizon
	.globl	__bb_THorizon_Create
	.globl	__bb_THorizon_Delete
	.globl	__bb_THorizon_New
	.globl	__bb_THorizon_draw
	.globl	__bb_THorizon_gGfx1
	.globl	__bb_THorizon_gGfx2
	.globl	__bb_THorizon_gGfx3
	.globl	__bb_THorizon_init
	.globl	__bb_THorizon_loadGraphics
	.globl	__bb_THorizon_update
	.globl	_bb_THorizon
	.text	
___bb_imports_horizon:
	push	%ebp
	mov	%esp,%ebp
	sub	$8,%esp
	cmpl	$0,_59
	je	_60
	mov	$0,%eax
	mov	%ebp,%esp
	pop	%ebp
	ret
_60:
	movl	$1,_59
	call	___bb_blitz_blitz
	call	___bb_imports_constants
	movl	$_bb_THorizon,(%esp)
	call	_bbObjectRegisterType
	mov	$0,%eax
	jmp	_33
_33:
	mov	%ebp,%esp
	pop	%ebp
	ret
__bb_THorizon_New:
	push	%ebp
	mov	%esp,%ebp
	push	%ebx
	sub	$4,%esp
	movl	8(%ebp),%ebx
	movl	%ebx,(%esp)
	call	_bbObjectCtor
	movl	$_bb_THorizon,(%ebx)
	mov	$_bbNullObject,%eax
	incl	4(%eax)
	movl	%eax,8(%ebx)
	movl	$0,12(%ebx)
	fldz
	fstps	16(%ebx)
	movl	$0,20(%ebx)
	fldz
	fstps	24(%ebx)
	fldz
	fstps	28(%ebx)
	fldz
	fstps	32(%ebx)
	fldz
	fstps	36(%ebx)
	mov	$0,%eax
	jmp	_36
_36:
	add	$4,%esp
	pop	%ebx
	mov	%ebp,%esp
	pop	%ebp
	ret
__bb_THorizon_Delete:
	push	%ebp
	mov	%esp,%ebp
	sub	$8,%esp
	movl	8(%ebp),%eax
_39:
	movl	8(%eax),%eax
	decl	4(%eax)
	jnz	_64
	movl	%eax,(%esp)
	call	_bbGCFree
_64:
	mov	$0,%eax
	jmp	_62
_62:
	mov	%ebp,%esp
	pop	%ebp
	ret
__bb_THorizon_loadGraphics:
	push	%ebp
	mov	%esp,%ebp
	push	%ebx
	sub	$20,%esp
	movl	$2,4(%esp)
	movl	$_7,(%esp)
	call	_brl_max2d_LoadImage
	incl	4(%eax)
	mov	%eax,%ebx
	movl	__bb_THorizon_gGfx1,%eax
	decl	4(%eax)
	jnz	_68
	movl	%eax,(%esp)
	call	_bbGCFree
_68:
	movl	%ebx,__bb_THorizon_gGfx1
	movl	$2,4(%esp)
	movl	$_8,(%esp)
	call	_brl_max2d_LoadImage
	incl	4(%eax)
	mov	%eax,%ebx
	movl	__bb_THorizon_gGfx2,%eax
	decl	4(%eax)
	jnz	_72
	movl	%eax,(%esp)
	call	_bbGCFree
_72:
	movl	%ebx,__bb_THorizon_gGfx2
	movl	$2,4(%esp)
	movl	$_9,(%esp)
	call	_brl_max2d_LoadImage
	incl	4(%eax)
	mov	%eax,%ebx
	movl	__bb_THorizon_gGfx3,%eax
	decl	4(%eax)
	jnz	_76
	movl	%eax,(%esp)
	call	_bbGCFree
_76:
	movl	%ebx,__bb_THorizon_gGfx3
	mov	$0,%eax
	jmp	_41
_41:
	add	$20,%esp
	pop	%ebx
	mov	%ebp,%esp
	pop	%ebp
	ret
__bb_THorizon_Create:
	push	%ebp
	mov	%esp,%ebp
	push	%ebx
	push	%esi
	sub	$16,%esp
	movl	8(%ebp),%esi
	movl	$_bb_THorizon,(%esp)
	call	_bbObjectNew
	mov	%eax,%ebx
	mov	%esi,%eax
	incl	4(%eax)
	mov	%eax,%esi
	movl	8(%ebx),%eax
	decl	4(%eax)
	jnz	_81
	movl	%eax,(%esp)
	call	_bbGCFree
_81:
	movl	%esi,8(%ebx)
	flds	12(%ebp)
	fstps	32(%ebx)
	movl	8(%ebx),%eax
	movl	%eax,(%esp)
	call	_brl_max2d_ImageWidth
	movl	%eax,12(%ebx)
	mov	%ebx,%eax
	movl	%eax,(%esp)
	movl	(%eax),%eax
	calll	*56(%eax)
	mov	%ebx,%eax
	jmp	_45
_45:
	add	$16,%esp
	pop	%esi
	pop	%ebx
	mov	%ebp,%esp
	pop	%ebp
	ret
__bb_THorizon_init:
	push	%ebp
	mov	%esp,%ebp
	sub	$24,%esp
	movl	8(%ebp),%eax
	flds	32(%eax)
	fdivs	_99
	fstps	36(%eax)
	fldz
	fstps	16(%eax)
	movl	$196,20(%eax)
	fldz
	fstps	12(%esp)
	fldz
	fstps	8(%esp)
	fldz
	fstps	4(%esp)
	movl	%eax,(%esp)
	movl	(%eax),%eax
	calll	*60(%eax)
	mov	$0,%eax
	jmp	_48
_48:
	mov	%ebp,%esp
	pop	%ebp
	ret
__bb_THorizon_update:
	push	%ebp
	mov	%esp,%ebp
	sub	$8,%esp
	movl	8(%ebp),%edx
	flds	12(%ebp)
	flds	16(%ebp)
	flds	20(%ebp)
	flds	_102
	fmuls	24(%edx)
	fxch	%st(3)
	fmuls	32(%edx)
	fmulp	%st(0),%st(1)
	fmuls	_103
	faddp	%st(0),%st(2)
	fxch	%st(1)
	fdivs	_104
	fstps	24(%edx)
	flds	16(%edx)
	fsubs	24(%edx)
	fstps	16(%edx)
	flds	16(%edx)
	fldz
	fxch	%st(1)
	fucompp
	fnstsw	%ax
	sahf
	setae	%al
	movzbl	%al,%eax
	cmp	$0,%eax
	jne	_84
	flds	16(%edx)
	fadds	_105
	fstps	16(%edx)
	jmp	_85
_84:
	flds	16(%edx)
	flds	_106
	fxch	%st(1)
	fucompp
	fnstsw	%ax
	sahf
	setb	%al
	movzbl	%al,%eax
	cmp	$0,%eax
	jne	_86
	flds	16(%edx)
	fsubs	_107
	fstps	16(%edx)
_86:
_85:
	fmuls	36(%edx)
	fstps	28(%edx)
	mov	$0,%eax
	jmp	_54
_54:
	mov	%ebp,%esp
	pop	%ebp
	ret
__bb_THorizon_draw:
	push	%ebp
	mov	%esp,%ebp
	sub	$4,%esp
	push	%ebx
	sub	$16,%esp
	movl	8(%ebp),%ebx
	movl	$255,8(%esp)
	movl	$255,4(%esp)
	movl	$255,(%esp)
	call	_brl_max2d_SetColor
	movl	$0,12(%esp)
	movl	20(%ebx),%eax
	movl	%eax,-4(%ebp)
	fildl	-4(%ebp)
	fadds	28(%ebx)
	fstpl	(%esp)
	call	_bbFloor
	fstps	8(%esp)
	flds	16(%ebx)
	fstpl	(%esp)
	call	_bbFloor
	fstps	4(%esp)
	movl	8(%ebx),%eax
	movl	%eax,(%esp)
	call	_brl_max2d_DrawImage
	movl	$0,12(%esp)
	movl	20(%ebx),%eax
	movl	%eax,-4(%ebp)
	fildl	-4(%ebp)
	fadds	28(%ebx)
	fstpl	(%esp)
	call	_bbFloor
	fstps	8(%esp)
	flds	16(%ebx)
	movl	12(%ebx),%eax
	movl	%eax,-4(%ebp)
	fildl	-4(%ebp)
	fsubrp	%st(0),%st(1)
	fstpl	(%esp)
	call	_bbFloor
	fstps	4(%esp)
	movl	8(%ebx),%eax
	movl	%eax,(%esp)
	call	_brl_max2d_DrawImage
	mov	$0,%eax
	jmp	_57
_57:
	add	$16,%esp
	pop	%ebx
	mov	%ebp,%esp
	pop	%ebp
	ret
	.data	
	.align	4
_59:
	.long	0
	.align	4
__bb_THorizon_gGfx1:
	.long	_bbNullObject
	.align	4
__bb_THorizon_gGfx2:
	.long	_bbNullObject
	.align	4
__bb_THorizon_gGfx3:
	.long	_bbNullObject
_11:
	.asciz	"THorizon"
_12:
	.asciz	"fGfx"
_13:
	.asciz	":TImage"
_14:
	.asciz	"fHorizonDrawOffset"
_15:
	.asciz	"i"
_16:
	.asciz	"fHorizonDrawX"
_17:
	.asciz	"f"
_18:
	.asciz	"fHorizonDrawY"
_19:
	.asciz	"fHorizonDrawDX"
_20:
	.asciz	"fHorizonDrawYOffset"
_21:
	.asciz	"fSpeed"
_22:
	.asciz	"fYOffsetFactor"
_23:
	.asciz	"New"
_24:
	.asciz	"()i"
_25:
	.asciz	"Delete"
_26:
	.asciz	"loadGraphics"
_27:
	.asciz	"Create"
_28:
	.asciz	"(:TImage,f):THorizon"
_29:
	.asciz	"init"
_30:
	.asciz	"update"
_31:
	.asciz	"(f,f,f)i"
_32:
	.asciz	"draw"
	.align	4
_10:
	.long	2
	.long	_11
	.long	3
	.long	_12
	.long	_13
	.long	8
	.long	3
	.long	_14
	.long	_15
	.long	12
	.long	3
	.long	_16
	.long	_17
	.long	16
	.long	3
	.long	_18
	.long	_15
	.long	20
	.long	3
	.long	_19
	.long	_17
	.long	24
	.long	3
	.long	_20
	.long	_17
	.long	28
	.long	3
	.long	_21
	.long	_17
	.long	32
	.long	3
	.long	_22
	.long	_17
	.long	36
	.long	6
	.long	_23
	.long	_24
	.long	16
	.long	6
	.long	_25
	.long	_24
	.long	20
	.long	7
	.long	_26
	.long	_24
	.long	48
	.long	7
	.long	_27
	.long	_28
	.long	52
	.long	6
	.long	_29
	.long	_24
	.long	56
	.long	6
	.long	_30
	.long	_31
	.long	60
	.long	6
	.long	_32
	.long	_24
	.long	64
	.long	0
	.align	4
_bb_THorizon:
	.long	_bbObjectClass
	.long	_bbObjectFree
	.long	_10
	.long	40
	.long	__bb_THorizon_New
	.long	__bb_THorizon_Delete
	.long	_bbObjectToString
	.long	_bbObjectCompare
	.long	_bbObjectSendMessage
	.long	_bbObjectReserved
	.long	_bbObjectReserved
	.long	_bbObjectReserved
	.long	__bb_THorizon_loadGraphics
	.long	__bb_THorizon_Create
	.long	__bb_THorizon_init
	.long	__bb_THorizon_update
	.long	__bb_THorizon_draw
	.align	4
_7:
	.long	_bbStringClass
	.long	2147483647
	.long	21
	.short	71,114,97,112,104,105,99,115,47,104,111,114,105,122,111,110
	.short	49,46,112,110,103
	.align	4
_8:
	.long	_bbStringClass
	.long	2147483647
	.long	21
	.short	71,114,97,112,104,105,99,115,47,104,111,114,105,122,111,110
	.short	50,46,112,110,103
	.align	4
_9:
	.long	_bbStringClass
	.long	2147483647
	.long	21
	.short	71,114,97,112,104,105,99,115,47,104,111,114,105,122,111,110
	.short	51,46,112,110,103
	.align	4
_99:
	.long	0x451c4000
	.align	4
_102:
	.long	0x41100000
	.align	4
_103:
	.long	0x40000000
	.align	4
_104:
	.long	0x41200000
	.align	4
_105:
	.long	0x44480000
	.align	4
_106:
	.long	0x44480000
	.align	4
_107:
	.long	0x44480000
