	.file	"extr_cg_effects.c_CG_BubbleTrail.c"
	.intel_syntax noprefix
	.text
	.p2align 4
	.globl	CG_BubbleTrail
	.type	CG_BubbleTrail, @function
CG_BubbleTrail:
.LFB0:
	.cfi_startproc
	endbr64
	push	r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	push	r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	push	r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	push	rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	push	rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	sub	rsp, 16
	.cfi_def_cfa_offset 64
	cmp	QWORD PTR cg_noProjectileTrail[rip], 0
	movss	DWORD PTR 8[rsp], xmm0
	je	.L9
.L1:
	add	rsp, 16
	.cfi_remember_state
	.cfi_def_cfa_offset 48
	pop	rbx
	.cfi_def_cfa_offset 40
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L9:
	.cfi_restore_state
	xor	ebp, ebp
	xor	r13d, r13d
	mov	r12d, edi
	mov	r14d, esi
	mov	esi, ebp
	call	VectorCopy@PLT
	mov	esi, r12d
	mov	edx, r13d
	mov	edi, r14d
	call	VectorSubtract@PLT
	mov	edi, r13d
	call	VectorNormalize@PLT
	xor	eax, eax
	movss	DWORD PTR 12[rsp], xmm0
	call	rand@PLT
	cvttss2si	ecx, DWORD PTR 8[rsp]
	mov	edi, ebp
	cdq
	idiv	ecx
	mov	ecx, ebp
	mov	r12d, edx
	mov	edx, r13d
	mov	esi, r12d
	call	VectorMA@PLT
	movss	xmm0, DWORD PTR 8[rsp]
	mov	esi, r13d
	mov	edi, r13d
	call	VectorScale@PLT
	pxor	xmm0, xmm0
	movss	xmm5, DWORD PTR 12[rsp]
	cvtsi2ss	xmm0, r12d
	movabs	r12, 1095216660735
	comiss	xmm5, xmm0
	jbe	.L1
	.p2align 4,,10
	.p2align 3
.L4:
	xor	eax, eax
	movss	DWORD PTR 4[rsp], xmm0
	xor	r13d, r13d
	call	CG_AllocLocalEntity@PLT
	mov	ebp, DWORD PTR cg[rip]
	mov	rbx, rax
	mov	eax, DWORD PTR LEF_PUFF_DONT_SCALE[rip]
	mov	DWORD PTR 92[rbx], eax
	mov	eax, DWORD PTR LE_MOVE_SCALE_FADE[rip]
	mov	DWORD PTR [rbx], ebp
	mov	DWORD PTR 88[rbx], eax
	xor	eax, eax
	call	random@PLT
	pxor	xmm1, xmm1
	movsd	xmm2, QWORD PTR .LC0[rip]
	mov	QWORD PTR 72[rbx], 0
	imul	eax, eax, 250
	mov	DWORD PTR 52[rbx], 3
	mov	rcx, QWORD PTR .LC0[rip]
	lea	eax, 1000[rbp+rax]
	xor	ebp, ebp
	mov	DWORD PTR 4[rbx], eax
	sub	eax, DWORD PTR [rbx]
	mov	edi, ebp
	cvtsi2sd	xmm1, eax
	mov	eax, DWORD PTR RT_SPRITE[rip]
	mov	DWORD PTR 80[rbx], eax
	mov	eax, DWORD PTR cgs[rip]
	divsd	xmm2, xmm1
	mov	DWORD PTR 64[rbx], eax
	mov	rax, QWORD PTR 56[rbx]
	pxor	xmm1, xmm1
	cvtsi2ss	xmm1, DWORD PTR cg[rip]
	divss	xmm1, DWORD PTR .LC1[rip]
	movss	DWORD PTR 48[rbx], xmm1
	pxor	xmm1, xmm1
	movsd	QWORD PTR 8[rbx], xmm2
	mov	QWORD PTR [rax], r12
	mov	QWORD PTR 8[rax], r12
	mov	rax, QWORD PTR 16[rbx]
	mov	esi, DWORD PTR 40[rbx]
	mov	QWORD PTR 24[rax], rcx
	cvtsi2ss	xmm1, DWORD PTR cg[rip]
	mov	eax, DWORD PTR TR_LINEAR[rip]
	mov	DWORD PTR 44[rbx], eax
	movss	DWORD PTR 24[rbx], xmm1
	call	VectorCopy@PLT
	xor	eax, eax
	call	crandom@PLT
	mov	rdx, QWORD PTR 32[rbx]
	lea	eax, [rax+rax*4]
	mov	DWORD PTR [rdx], eax
	xor	eax, eax
	call	crandom@PLT
	mov	rdx, QWORD PTR 32[rbx]
	lea	eax, [rax+rax*4]
	mov	DWORD PTR 4[rdx], eax
	xor	eax, eax
	call	crandom@PLT
	mov	rdx, QWORD PTR 32[rbx]
	mov	esi, r13d
	mov	edi, ebp
	lea	eax, 6[rax+rax*4]
	mov	DWORD PTR 8[rdx], eax
	mov	edx, ebp
	call	VectorAdd@PLT
	movss	xmm0, DWORD PTR 4[rsp]
	addss	xmm0, DWORD PTR 8[rsp]
	movss	xmm4, DWORD PTR 12[rsp]
	cvttss2si	eax, xmm0
	pxor	xmm0, xmm0
	cvtsi2ss	xmm0, eax
	comiss	xmm4, xmm0
	ja	.L4
	add	rsp, 16
	.cfi_def_cfa_offset 48
	pop	rbx
	.cfi_def_cfa_offset 40
	pop	rbp
	.cfi_def_cfa_offset 32
	pop	r12
	.cfi_def_cfa_offset 24
	pop	r13
	.cfi_def_cfa_offset 16
	pop	r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE0:
	.size	CG_BubbleTrail, .-CG_BubbleTrail
	.comm	cgs,4,4
	.comm	cg_noProjectileTrail,8,8
	.comm	cg,4,4
	.comm	TR_LINEAR,4,4
	.comm	RT_SPRITE,4,4
	.comm	LE_MOVE_SCALE_FADE,4,4
	.comm	LEF_PUFF_DONT_SCALE,4,4
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC0:
	.long	0
	.long	1072693248
	.section	.rodata.cst4,"aM",@progbits,4
	.align 4
.LC1:
	.long	1148846080
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_cg_effects.c_CG_BubbleTrail.c"
	.text
	.global	__aeabi_f2iz
	.global	__aeabi_idivmod
	.global	__aeabi_i2f
	.global	__aeabi_fcmpgt
	.global	__aeabi_i2d
	.global	__aeabi_ddiv
	.global	__aeabi_fdiv
	.global	__aeabi_fadd
	.global	__aeabi_fcmplt
	.align	2
	.global	CG_BubbleTrail
	.syntax unified
	.arm
	.fpu softvfp
	.type	CG_BubbleTrail, %function
CG_BubbleTrail:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r4, r5, r6, r7, r8, r9, r10, fp, lr}
	ldr	r3, .L9
	sub	sp, sp, #20
	ldr	r9, [r3]
	cmp	r9, #0
	beq	.L8
.L1:
	add	sp, sp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L8:
	mov	r10, #0
	mov	r4, r1
	mov	r5, r0
	mov	r1, r10
	mov	r7, r2
	bl	VectorCopy
	mov	r1, r5
	mov	r2, r10
	mov	r0, r4
	bl	VectorSubtract
	mov	r0, r10
	bl	VectorNormalize
	mov	r8, r0
	bl	rand
	mov	r4, r0
	mov	r0, r7
	bl	__aeabi_f2iz
	mov	r1, r0
	mov	r0, r4
	bl	__aeabi_idivmod
	mov	r4, r1
	mov	r3, r10
	mov	r2, r10
	mov	r0, r10
	bl	VectorMA
	mov	r2, r10
	mov	r1, r7
	mov	r0, r10
	bl	VectorScale
	mov	r0, r4
	bl	__aeabi_i2f
	mov	r5, r0
	mov	r0, r8
	mov	r1, r5
	bl	__aeabi_fcmpgt
	cmp	r0, r10
	beq	.L1
	str	r9, [sp, #8]
	ldr	fp, .L9+4
	ldr	r10, .L9+8
	ldr	r6, .L9+12
	ldr	r9, .L9+16
	str	r7, [sp, #12]	@ float
.L4:
	bl	CG_AllocLocalEntity
	ldr	r1, [fp]
	ldr	r2, [r10]
	ldr	r7, [r6]
	str	r1, [r0, #64]
	str	r2, [r0, #60]
	str	r7, [r0]
	mov	r4, r0
	bl	random
	rsb	r2, r0, r0, lsl #5
	add	r3, r7, #1000
	add	r0, r0, r2, lsl #2
	ldr	r2, [r4]
	add	r0, r3, r0, lsl #1
	str	r0, [r4, #4]
	sub	r0, r0, r2
	bl	__aeabi_i2d
	mov	r2, r0
	mov	r3, r1
	mov	r0, #0
	ldr	r1, .L9+20
	bl	__aeabi_ddiv
	mov	r2, r0
	mov	r3, r1
	ldr	r0, [r6]
	str	r2, [r4, #8]
	str	r3, [r4, #12]
	bl	__aeabi_i2f
	ldr	r1, .L9+24
	bl	__aeabi_fdiv
	mov	r2, #255
	mov	ip, #3
	ldr	r3, .L9+28
	ldr	lr, [r9]
	str	r0, [r4, #36]	@ float
	ldr	r1, [r3]
	ldr	r0, [sp, #8]
	ldr	r3, [r4, #44]
	str	lr, [r4, #56]
	str	r0, [r4, #52]
	str	ip, [r4, #40]
	str	r1, [r4, #48]
	ldr	ip, [r4, #16]
	str	r2, [r3]
	str	r2, [r3, #4]
	str	r2, [r3, #8]
	str	r2, [r3, #12]
	mov	r2, #0
	ldr	r1, .L9+32
	ldr	r3, .L9+20
	ldr	r1, [r1]
	str	r2, [ip, #24]
	str	r3, [ip, #28]
	ldr	r0, [r6]
	str	r1, [r4, #32]
	bl	__aeabi_i2f
	mov	r2, #0
	ldr	r1, [r4, #28]
	str	r0, [r4, #20]	@ float
	mov	r0, r2
	str	r2, [sp, #4]
	bl	VectorCopy
	bl	crandom
	ldr	r3, [r4, #24]
	add	r0, r0, r0, lsl #2
	str	r0, [r3]
	bl	crandom
	ldr	r3, [r4, #24]
	add	r0, r0, r0, lsl #2
	str	r0, [r3, #4]
	bl	crandom
	ldr	r3, [r4, #24]
	ldr	r2, [sp, #4]
	add	r0, r0, r0, lsl #2
	add	r0, r0, #6
	str	r0, [r3, #8]
	mov	r1, #0
	mov	r0, r2
	bl	VectorAdd
	mov	r1, r5
	ldr	r0, [sp, #12]	@ float
	bl	__aeabi_fadd
	bl	__aeabi_f2iz
	bl	__aeabi_i2f
	mov	r1, r8
	mov	r5, r0
	bl	__aeabi_fcmplt
	cmp	r0, #0
	bne	.L4
	add	sp, sp, #20
	@ sp needed
	pop	{r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L10:
	.align	2
.L9:
	.word	cg_noProjectileTrail
	.word	LEF_PUFF_DONT_SCALE
	.word	LE_MOVE_SCALE_FADE
	.word	cg
	.word	RT_SPRITE
	.word	1072693248
	.word	1148846080
	.word	cgs
	.word	TR_LINEAR
	.size	CG_BubbleTrail, .-CG_BubbleTrail
	.comm	cgs,4,4
	.comm	cg_noProjectileTrail,4,4
	.comm	cg,4,4
	.comm	TR_LINEAR,4,4
	.comm	RT_SPRITE,4,4
	.comm	LE_MOVE_SCALE_FADE,4,4
	.comm	LEF_PUFF_DONT_SCALE,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
