// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/g_func.c
// Function: SP_func_button
void SP_func_button (edict_t *ent)
{
	vec3_t	abs_movedir;
	float	dist;

	G_SetMovedir (ent->s.angles, ent->movedir);
	ent->movetype = MOVETYPE_STOP;
	ent->solid = SOLID_BSP;
	gi.setmodel (ent, ent->model);

	if (ent->sounds != 1)
		ent->moveinfo.sound_start = gi.soundindex ("switches/butn2.wav");
	
	if (!ent->speed)
		ent->speed = 40;
	if (!ent->accel)
		ent->accel = ent->speed;
	if (!ent->decel)
		ent->decel = ent->speed;

	if (!ent->wait)
		ent->wait = 3;
	if (!st.lip)
		st.lip = 4;

	VectorCopy (ent->s.origin, ent->pos1);
	abs_movedir[0] = fabs(ent->movedir[0]);
	abs_movedir[1] = fabs(ent->movedir[1]);
	abs_movedir[2] = fabs(ent->movedir[2]);
	dist = abs_movedir[0] * ent->size[0] + abs_movedir[1] * ent->size[1] + abs_movedir[2] * ent->size[2] - st.lip;
	VectorMA (ent->pos1, dist, ent->movedir, ent->pos2);

	ent->use = button_use;
	ent->s.effects |= EF_ANIM01;

	if (ent->health)
	{
		ent->max_health = ent->health;
		ent->die = button_killed;
		ent->takedamage = DAMAGE_YES;
	}
	else if (! ent->targetname)
		ent->touch = button_touch;

	ent->moveinfo.state = STATE_BOTTOM;

	ent->moveinfo.speed = ent->speed;
	ent->moveinfo.accel = ent->accel;
	ent->moveinfo.decel = ent->decel;
	ent->moveinfo.wait = ent->wait;
	VectorCopy (ent->pos1, ent->moveinfo.start_origin);
	VectorCopy (ent->s.angles, ent->moveinfo.start_angles);
	VectorCopy (ent->pos2, ent->moveinfo.end_origin);
	VectorCopy (ent->s.angles, ent->moveinfo.end_angles);

	gi.linkentity (ent);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
addq $0x10, %rdi
movq -0x8(%rbp), %rsi
addq $0x19c, %rsi            # imm = 0x19C
callq 0x19870
movq -0x8(%rbp), %rax
movl $0x3, 0x118(%rax)
movq -0x8(%rbp), %rax
movl $0x3, 0x108(%rax)
movq 0x4d049(%rip), %rax     # 0x82600
movq 0x58(%rax), %rax
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rcx
movq 0x120(%rcx), %rsi
callq *%rax
movq -0x8(%rbp), %rax
cmpl $0x1, 0x28c(%rax)
je 0x355f6
leaq 0x3d607(%rip), %rdi     # 0x72be7
movq 0x4d019(%rip), %rax     # 0x82600
callq *0x48(%rax)
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x368(%rax)
movq -0x8(%rbp), %rax
movss 0x190(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x35620
jp 0x35620
movq -0x8(%rbp), %rax
movss 0x3b708(%rip), %xmm0    # 0x70d20
movss %xmm0, 0x190(%rax)
movq -0x8(%rbp), %rax
movss 0x194(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x3564e
jp 0x3564e
movq -0x8(%rbp), %rax
movss 0x190(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x194(%rax)
movq -0x8(%rbp), %rax
movss 0x198(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x3567c
jp 0x3567c
movq -0x8(%rbp), %rax
movss 0x190(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x198(%rax)
movq -0x8(%rbp), %rax
movss 0x2f8(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x356a6
jp 0x356a6
movq -0x8(%rbp), %rax
movss 0x3a872(%rip), %xmm0    # 0x6ff10
movss %xmm0, 0x2f8(%rax)
movq 0x4cfbb(%rip), %rax     # 0x82668
cmpl $0x0, 0x20(%rax)
jne 0x356c1
movq 0x4cfae(%rip), %rax     # 0x82668
movl $0x4, 0x20(%rax)
movq -0x8(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1a8(%rax)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1ac(%rax)
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1b0(%rax)
movq -0x8(%rbp), %rax
movss 0x19c(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movaps 0x3d489(%rip), %xmm1    # 0x72ba0
pand %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x14(%rbp)
movq -0x8(%rbp), %rax
movss 0x1a0(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movaps 0x3d465(%rip), %xmm1    # 0x72ba0
pand %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0x10(%rbp)
movq -0x8(%rbp), %rax
movss 0x1a4(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movaps 0x3d441(%rip), %xmm1    # 0x72ba0
pand %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, -0xc(%rbp)
movss -0x14(%rbp), %xmm1
movq -0x8(%rbp), %rax
movss 0xfc(%rax), %xmm2
movss -0x10(%rbp), %xmm0
movq -0x8(%rbp), %rax
mulss 0x100(%rax), %xmm0
mulss %xmm2, %xmm1
addss %xmm0, %xmm1
movss -0xc(%rbp), %xmm0
movq -0x8(%rbp), %rax
movss 0x104(%rax), %xmm2
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movq 0x4ceb2(%rip), %rax     # 0x82668
cvtsi2ssl 0x20(%rax), %xmm1
subss %xmm1, %xmm0
movss %xmm0, -0x18(%rbp)
movq -0x8(%rbp), %rdi
addq $0x1a8, %rdi            # imm = 0x1A8
movss -0x18(%rbp), %xmm0
movq -0x8(%rbp), %rsi
addq $0x19c, %rsi            # imm = 0x19C
movq -0x8(%rbp), %rdx
addq $0x1b4, %rdx            # imm = 0x1B4
callq 0x199c0
movq -0x8(%rbp), %rax
movq 0x4cc06(%rip), %rcx     # 0x82400
movq %rcx, 0x228(%rax)
movq -0x8(%rbp), %rax
movl 0x40(%rax), %ecx
orl $0x400, %ecx            # imm = 0x400
movl %ecx, 0x40(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x254(%rax)
je 0x35854
movq -0x8(%rbp), %rax
movl 0x254(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x258(%rax)
movq -0x8(%rbp), %rax
movq 0x4d213(%rip), %rcx     # 0x82a50
movq %rcx, 0x238(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x27c(%rax)
jmp 0x35876
movq -0x8(%rbp), %rax
cmpq $0x0, 0x158(%rax)
jne 0x35874
movq -0x8(%rbp), %rax
movq 0x4d543(%rip), %rcx     # 0x82db0
movq %rcx, 0x220(%rax)
jmp 0x35876
movq -0x8(%rbp), %rax
movl $0x1, 0x388(%rax)
movq -0x8(%rbp), %rax
movss 0x190(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x378(%rax)
movq -0x8(%rbp), %rax
movss 0x194(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x374(%rax)
movq -0x8(%rbp), %rax
movss 0x198(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x37c(%rax)
movq -0x8(%rbp), %rax
movss 0x2f8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x384(%rax)
movq -0x8(%rbp), %rax
movss 0x1a8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x338(%rax)
movq -0x8(%rbp), %rax
movss 0x1ac(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x33c(%rax)
movq -0x8(%rbp), %rax
movss 0x1b0(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x340(%rax)
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x344(%rax)
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x348(%rax)
movq -0x8(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x34c(%rax)
movq -0x8(%rbp), %rax
movss 0x1b4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x350(%rax)
movq -0x8(%rbp), %rax
movss 0x1b8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x354(%rax)
movq -0x8(%rbp), %rax
movss 0x1bc(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x358(%rax)
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x35c(%rax)
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x360(%rax)
movq -0x8(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x364(%rax)
movq 0x4cc07(%rip), %rax     # 0x82600
movq 0x90(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)