// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/g_items.c
// Function: tossflag
void tossflag (edict_t *ent, vec3_t dir)
{	
	float		*v;
	vec3_t		temp;
	trace_t	tr;
		
	v = tv(-15,-15,-15);
	VectorCopy (v, ent->mins);
	v = tv(15,15,33);
	VectorCopy (v, ent->maxs);
	
	ent->flags |= FL_RESPAWN;
	ent->spawnflags = DROPPED_ITEM;

	if (ent->model)
		gi.setmodel (ent, ent->model);
	else
		gi.setmodel (ent, ent->item->world_model);
	//ent->solid = SOLID_BBOX;
	ent->solid = SOLID_TRIGGER;
	ent->movetype = MOVETYPE_TOSS;  
	ent->touch = Touch_Item;

	VectorCopy(ent->s.origin, temp);
	VectorClear (ent->s.angles);

	if (!dir || !dir[0] ) // Random toss
	{
		
		v = tv(0, 0, 48);
		VectorAdd (ent->s.origin, v, ent->s.origin);
		ent->velocity[0] = -500 + (random() * 1000);
		ent->velocity[1] = -500 + (random() * 1000);
		ent->velocity[2] = 400;
		
	}
	else
	{
		VectorScale(dir, 64, dir);
		VectorAdd (ent->s.origin, dir, ent->s.origin);
		VectorScale(dir, 4, dir);
		VectorCopy(dir, ent->velocity);
	}

	tr = gi.trace (temp, ent->mins, ent->maxs, ent->s.origin, ent, MASK_SOLID);
	if (tr.fraction < 1.0 || tr.allsolid)
	{
		VectorCopy(temp, ent->s.origin);
	}

	// FLAG MODEL SUPPORT
	ent->nextthink = level.time + FRAMETIME;
	ent->think = ctf_flagwave;

	ent->droptime = level.time;

	gi.linkentity (ent);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movss 0x34771(%rip), %xmm2    # 0x7029c
movaps %xmm2, %xmm0
movaps %xmm2, %xmm1
callq 0x19740
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xcc(%rax)
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xd0(%rax)
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xd4(%rax)
movss 0x34718(%rip), %xmm1    # 0x70298
movss 0x348f4(%rip), %xmm2    # 0x7047c
movaps %xmm1, %xmm0
callq 0x19740
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movss (%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xd8(%rax)
movq -0x18(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xdc(%rax)
movq -0x18(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xe0(%rax)
movq -0x8(%rbp), %rax
movl 0x11c(%rax), %ecx
orl $0x80000000, %ecx       # imm = 0x80000000
movl %ecx, 0x11c(%rax)
movq -0x8(%rbp), %rax
movl $0x10000, 0x140(%rax)   # imm = 0x10000
movq -0x8(%rbp), %rax
cmpq $0x0, 0x120(%rax)
je 0x3bc22
movq 0x469f5(%rip), %rax     # 0x82600
movq 0x58(%rax), %rax
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rcx
movq 0x120(%rcx), %rsi
callq *%rax
jmp 0x3bc42
movq 0x469d7(%rip), %rax     # 0x82600
movq 0x58(%rax), %rax
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rcx
movq 0x330(%rcx), %rcx
movq 0x30(%rcx), %rsi
callq *%rax
movq -0x8(%rbp), %rax
movl $0x1, 0x108(%rax)
movq -0x8(%rbp), %rax
movl $0x7, 0x118(%rax)
movq -0x8(%rbp), %rax
movq 0x46c17(%rip), %rcx     # 0x82880
movq %rcx, 0x220(%rax)
movq -0x8(%rbp), %rax
movss 0x4(%rax), %xmm0
movss %xmm0, -0x24(%rbp)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movss %xmm0, -0x20(%rbp)
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x18(%rax)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x14(%rax)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x10(%rax)
cmpq $0x0, -0x10(%rbp)
je 0x3bcdf
movq -0x10(%rbp), %rax
movss (%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x3bddb
jp 0x3bddb
xorps %xmm1, %xmm1
movss 0x345c6(%rip), %xmm2    # 0x702b0
movaps %xmm1, %xmm0
callq 0x19740
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x18(%rbp), %rax
addss (%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x4(%rax)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x8(%rax)
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x18(%rbp), %rax
addss 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xc(%rax)
callq 0x19c80
andl $0x7fff, %eax           # imm = 0x7FFF
cvtsi2ss %eax, %xmm0
movss 0x3452c(%rip), %xmm1    # 0x70288
divss %xmm1, %xmm0
movss 0x34190(%rip), %xmm1    # 0x6fef8
mulss %xmm1, %xmm0
movss 0x370e4(%rip), %xmm1    # 0x72e58
addss %xmm1, %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1c0(%rax)
callq 0x19c80
andl $0x7fff, %eax           # imm = 0x7FFF
cvtsi2ss %eax, %xmm0
movss 0x344ee(%rip), %xmm1    # 0x70288
divss %xmm1, %xmm0
movss 0x34152(%rip), %xmm1    # 0x6fef8
mulss %xmm1, %xmm0
movss 0x370a6(%rip), %xmm1    # 0x72e58
addss %xmm1, %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1c4(%rax)
movq -0x8(%rbp), %rax
movss 0x37086(%rip), %xmm0    # 0x72e54
movss %xmm0, 0x1c8(%rax)
jmp 0x3be93
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
movss 0x34129(%rip), %xmm0    # 0x6ff14
callq 0x18a80
movq -0x8(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x10(%rbp), %rax
addss (%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x4(%rax)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
addss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x8(%rax)
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x10(%rbp), %rax
addss 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xc(%rax)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rsi
movss 0x340bc(%rip), %xmm0    # 0x6ff0c
callq 0x18a80
movq -0x10(%rbp), %rax
movss (%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1c0(%rax)
movq -0x10(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1c4(%rax)
movq -0x10(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1c8(%rax)
movq 0x46766(%rip), %rax     # 0x82600
movq 0x60(%rax), %rax
leaq -0x24(%rbp), %rsi
movq -0x8(%rbp), %rdx
addq $0xcc, %rdx
movq -0x8(%rbp), %rcx
addq $0xd8, %rcx
movq -0x8(%rbp), %r8
addq $0x4, %r8
movq -0x8(%rbp), %r9
leaq -0xb8(%rbp), %rdi
movl $0x3, (%rsp)
callq *%rax
leaq -0x70(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
movl $0x48, %edx
callq 0x18dc0
movss -0x68(%rbp), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x34046(%rip), %xmm0    # 0x6ff40
ucomisd %xmm1, %xmm0
ja 0x3bf06
cmpl $0x0, -0x70(%rbp)
je 0x3bf30
movss -0x24(%rbp), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x4(%rax)
movss -0x20(%rbp), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x8(%rax)
movss -0x1c(%rbp), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xc(%rax)
movss 0x3435c(%rip), %xmm0    # 0x70294
movq 0x46e61(%rip), %rax     # 0x82da0
addss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x200(%rax)
movq -0x8(%rbp), %rax
movq 0x46665(%rip), %rcx     # 0x825c0
movq %rcx, 0x210(%rax)
movq 0x46e37(%rip), %rax     # 0x82da0
movss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x4a0(%rax)
movq 0x4667f(%rip), %rax     # 0x82600
movq 0x90(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
addq $0xc0, %rsp
popq %rbp
retq
nopw (%rax,%rax)