// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/g_func.c
// Function: SP_func_plat
void SP_func_plat (edict_t *ent)
{
	VectorClear (ent->s.angles);
	ent->solid = SOLID_BSP;
	ent->movetype = MOVETYPE_PUSH;

	gi.setmodel (ent, ent->model);

	ent->blocked = plat_blocked;

	if (!ent->speed)
		ent->speed = 20;
	else
		ent->speed *= 0.1f;

	if (!ent->accel)
		ent->accel = 5;
	else
		ent->accel *= 0.1f;

	if (!ent->decel)
		ent->decel = 5;
	else
		ent->decel *= 0.1f;

	if (!ent->dmg)
		ent->dmg = 2;

	if (!st.lip)
		st.lip = 8;

	// pos1 is the top position, pos2 is the bottom
	VectorCopy (ent->s.origin, ent->pos1);
	VectorCopy (ent->s.origin, ent->pos2);
	if (st.height)
		ent->pos2[2] -= st.height;
	else
		ent->pos2[2] -= (ent->maxs[2] - ent->mins[2]) - st.lip;

	ent->use = Use_Plat;

	plat_spawn_inside_trigger (ent);	// the "start moving" trigger	

	if (ent->targetname)
	{
		ent->moveinfo.state = STATE_UP;
	}
	else
	{
		VectorCopy (ent->pos2, ent->s.origin);
		gi.linkentity (ent);
		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);

	ent->moveinfo.sound_start = gi.soundindex ("plats/pt1_strt.wav");
	ent->moveinfo.sound_middle = gi.soundindex ("plats/pt1_mid.wav");
	ent->moveinfo.sound_end = gi.soundindex ("plats/pt1_end.wav");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%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)
movq -0x8(%rbp), %rax
movl $0x3, 0x108(%rax)
movq -0x8(%rbp), %rax
movl $0x2, 0x118(%rax)
movq 0x4dcad(%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
movq 0x4dd55(%rip), %rcx     # 0x826c8
movq %rcx, 0x218(%rax)
movq -0x8(%rbp), %rax
movss 0x190(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x349a6
jp 0x349a6
movq -0x8(%rbp), %rax
movss 0x3c274(%rip), %xmm0    # 0x70c10
movss %xmm0, 0x190(%rax)
jmp 0x349c2
movq -0x8(%rbp), %rax
movss 0x3b8e2(%rip), %xmm0    # 0x70294
mulss 0x190(%rax), %xmm0
movss %xmm0, 0x190(%rax)
movq -0x8(%rbp), %rax
movss 0x194(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x349ee
jp 0x349ee
movq -0x8(%rbp), %rax
movss 0x3b524(%rip), %xmm0    # 0x6ff08
movss %xmm0, 0x194(%rax)
jmp 0x34a0a
movq -0x8(%rbp), %rax
movss 0x3b89a(%rip), %xmm0    # 0x70294
mulss 0x194(%rax), %xmm0
movss %xmm0, 0x194(%rax)
movq -0x8(%rbp), %rax
movss 0x198(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x34a36
jp 0x34a36
movq -0x8(%rbp), %rax
movss 0x3b4dc(%rip), %xmm0    # 0x6ff08
movss %xmm0, 0x198(%rax)
jmp 0x34a52
movq -0x8(%rbp), %rax
movss 0x3b852(%rip), %xmm0    # 0x70294
mulss 0x198(%rax), %xmm0
movss %xmm0, 0x198(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x280(%rax)
jne 0x34a6d
movq -0x8(%rbp), %rax
movl $0x2, 0x280(%rax)
movq 0x4dbf4(%rip), %rax     # 0x82668
cmpl $0x0, 0x20(%rax)
jne 0x34a88
movq 0x4dbe7(%rip), %rax     # 0x82668
movl $0x8, 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 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1b4(%rax)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1b8(%rax)
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1bc(%rax)
movq 0x4db5b(%rip), %rax     # 0x82668
cmpl $0x0, 0x28(%rax)
je 0x34b39
movq 0x4db4e(%rip), %rax     # 0x82668
cvtsi2ssl 0x28(%rax), %xmm1
movq -0x8(%rbp), %rax
movss 0x1bc(%rax), %xmm0
subss %xmm1, %xmm0
movss %xmm0, 0x1bc(%rax)
jmp 0x34b79
movq -0x8(%rbp), %rax
movss 0xe0(%rax), %xmm1
movq -0x8(%rbp), %rax
subss 0xd4(%rax), %xmm1
movq 0x4db10(%rip), %rax     # 0x82668
cvtsi2ssl 0x20(%rax), %xmm0
subss %xmm0, %xmm1
movq -0x8(%rbp), %rax
movss 0x1bc(%rax), %xmm0
subss %xmm1, %xmm0
movss %xmm0, 0x1bc(%rax)
movq -0x8(%rbp), %rax
movq 0x4e0c4(%rip), %rcx     # 0x82c48
movq %rcx, 0x228(%rax)
movq -0x8(%rbp), %rdi
callq 0x18860
movq -0x8(%rbp), %rax
cmpq $0x0, 0x158(%rax)
je 0x34bb2
movq -0x8(%rbp), %rax
movl $0x2, 0x388(%rax)
jmp 0x34c13
movq -0x8(%rbp), %rax
movss 0x1b4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x4(%rax)
movq -0x8(%rbp), %rax
movss 0x1b8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x8(%rax)
movq -0x8(%rbp), %rax
movss 0x1bc(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0xc(%rax)
movq 0x4da08(%rip), %rax     # 0x82600
movq 0x90(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
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)
leaq 0x3de28(%rip), %rdi     # 0x72bb0
movq 0x4d871(%rip), %rax     # 0x82600
callq *0x48(%rax)
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x368(%rax)
leaq 0x3de1e(%rip), %rdi     # 0x72bc3
movq 0x4d854(%rip), %rax     # 0x82600
callq *0x48(%rax)
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x36c(%rax)
leaq 0x3de13(%rip), %rdi     # 0x72bd5
movq 0x4d837(%rip), %rax     # 0x82600
callq *0x48(%rax)
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x370(%rax)
addq $0x10, %rsp
popq %rbp
retq
nop