// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/g_func.c
// Function: SP_func_door_rotating
void SP_func_door_rotating (edict_t *ent)
{
	VectorClear (ent->s.angles);

	// set the axis of rotation
	VectorClear(ent->movedir);
	if (ent->spawnflags & DOOR_X_AXIS)
		ent->movedir[2] = 1.0;
	else if (ent->spawnflags & DOOR_Y_AXIS)
		ent->movedir[0] = 1.0;
	else // Z_AXIS
		ent->movedir[1] = 1.0;

	// check for reverse rotation
	if (ent->spawnflags & DOOR_REVERSE)
		VectorNegate (ent->movedir, ent->movedir);

	if (!st.distance)
	{
		gi.dprintf("%s at %s with no distance set\n", ent->classname, vtos(ent->s.origin));
		st.distance = 90;
	}

	VectorCopy (ent->s.angles, ent->pos1);
	VectorMA (ent->s.angles, st.distance, ent->movedir, ent->pos2);
	ent->moveinfo.distance = st.distance;

	ent->movetype = MOVETYPE_PUSH;
	ent->solid = SOLID_BSP;
	gi.setmodel (ent, ent->model);

	ent->blocked = door_blocked;
	ent->use = door_use;

	if (!ent->speed)
		ent->speed = 100;
	if (!ent->accel)
		ent->accel = ent->speed;
	if (!ent->decel)
		ent->decel = ent->speed;

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

	if (ent->sounds != 1)
	{
		ent->moveinfo.sound_start = gi.soundindex  ("doors/dr1_strt.wav");
		ent->moveinfo.sound_middle = gi.soundindex  ("doors/dr1_mid.wav");
		ent->moveinfo.sound_end = gi.soundindex  ("doors/dr1_end.wav");
	}

	// if it starts open, switch the positions
	if (ent->spawnflags & DOOR_START_OPEN)
	{
		VectorCopy (ent->pos2, ent->s.angles);
		VectorCopy (ent->pos1, ent->pos2);
		VectorCopy (ent->s.angles, ent->pos1);
		VectorNegate (ent->movedir, ent->movedir);
	}

	if (ent->health)
	{
		ent->takedamage = DAMAGE_YES;
		ent->die = door_killed;
		ent->max_health = ent->health;
	}
	
	if (ent->targetname && ent->message)
	{
		gi.soundindex ("misc/talk.wav");
		ent->touch = door_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->s.origin, ent->moveinfo.start_origin);
	VectorCopy (ent->pos1, ent->moveinfo.start_angles);
	VectorCopy (ent->s.origin, ent->moveinfo.end_origin);
	VectorCopy (ent->pos2, ent->moveinfo.end_angles);

	if (ent->spawnflags & 16)
		ent->s.effects |= EF_ANIM_ALL;

	// to simplify logic elsewhere, make non-teamed doors into a team of one
	if (!ent->team)
		ent->teammaster = ent;

	gi.linkentity (ent);

	ent->nextthink = level.time + FRAMETIME;
	if (ent->health || ent->targetname)
		ent->think = Think_CalcMoveSpeed;
	else
		ent->think = Think_SpawnDoorTrigger;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %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
xorps %xmm0, %xmm0
movss %xmm0, 0x1a4(%rax)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x1a0(%rax)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movss %xmm0, 0x19c(%rax)
movq -0x8(%rbp), %rax
movl 0x140(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
je 0x36f45
movq -0x8(%rbp), %rax
movss 0x38fb1(%rip), %xmm0    # 0x6feec
movss %xmm0, 0x1a4(%rax)
jmp 0x36f85
movq -0x8(%rbp), %rax
movl 0x140(%rax), %eax
andl $0x80, %eax
cmpl $0x0, %eax
je 0x36f6f
movq -0x8(%rbp), %rax
movss 0x38f87(%rip), %xmm0    # 0x6feec
movss %xmm0, 0x19c(%rax)
jmp 0x36f83
movq -0x8(%rbp), %rax
movss 0x38f71(%rip), %xmm0    # 0x6feec
movss %xmm0, 0x1a0(%rax)
jmp 0x36f85
movq -0x8(%rbp), %rax
movl 0x140(%rax), %eax
andl $0x2, %eax
cmpl $0x0, %eax
je 0x37006
movq -0x8(%rbp), %rax
movss 0x19c(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x19c(%rax)
movq -0x8(%rbp), %rax
movss 0x1a0(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1a0(%rax)
movq -0x8(%rbp), %rax
movss 0x1a4(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1a4(%rax)
movq 0x4b65b(%rip), %rax     # 0x82668
cmpl $0x0, 0x24(%rax)
jne 0x37062
movq 0x4b5e6(%rip), %rax     # 0x82600
movq 0x8(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x138(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
addq $0x4, %rdi
callq 0x19260
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rcx
movq %rax, %rdx
leaq 0x3bc2b(%rip), %rdi     # 0x72c7b
movb $0x0, %al
callq *%rcx
movq 0x4b60d(%rip), %rax     # 0x82668
movl $0x5a, 0x24(%rax)
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1a8(%rax)
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1ac(%rax)
movq -0x8(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1b0(%rax)
movq -0x8(%rbp), %rdi
addq $0x10, %rdi
movq 0x4b5b8(%rip), %rax     # 0x82668
cvtsi2ssl 0x24(%rax), %xmm0
movq -0x8(%rbp), %rsi
addq $0x19c, %rsi            # imm = 0x19C
movq -0x8(%rbp), %rdx
addq $0x1b4, %rdx            # imm = 0x1B4
callq 0x199c0
movq 0x4b591(%rip), %rax     # 0x82668
cvtsi2ssl 0x24(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x380(%rax)
movq -0x8(%rbp), %rax
movl $0x2, 0x118(%rax)
movq -0x8(%rbp), %rax
movl $0x3, 0x108(%rax)
movq 0x4b4f5(%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 0x4b345(%rip), %rcx     # 0x82470
movq %rcx, 0x218(%rax)
movq -0x8(%rbp), %rax
movq 0x4b883(%rip), %rcx     # 0x829c0
movq %rcx, 0x228(%rax)
movq -0x8(%rbp), %rax
movss 0x190(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x3716e
jp 0x3716e
movq -0x8(%rbp), %rax
movss 0x3ba1a(%rip), %xmm0    # 0x72b80
movss %xmm0, 0x190(%rax)
movq -0x8(%rbp), %rax
movss 0x194(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x3719c
jp 0x3719c
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 0x371ca
jp 0x371ca
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 0x371f4
jp 0x371f4
movq -0x8(%rbp), %rax
movss 0x38d24(%rip), %xmm0    # 0x6ff10
movss %xmm0, 0x2f8(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x280(%rax)
jne 0x3720f
movq -0x8(%rbp), %rax
movl $0x2, 0x280(%rax)
movq -0x8(%rbp), %rax
cmpl $0x1, 0x28c(%rax)
je 0x37273
leaq 0x3ba13(%rip), %rdi     # 0x72c36
movq 0x4b3d6(%rip), %rax     # 0x82600
callq *0x48(%rax)
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x368(%rax)
leaq 0x3ba09(%rip), %rdi     # 0x72c49
movq 0x4b3b9(%rip), %rax     # 0x82600
callq *0x48(%rax)
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x36c(%rax)
leaq 0x3b9fe(%rip), %rdi     # 0x72c5b
movq 0x4b39c(%rip), %rax     # 0x82600
callq *0x48(%rax)
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x370(%rax)
movq -0x8(%rbp), %rax
movl 0x140(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x373be
movq -0x8(%rbp), %rax
movss 0x1b4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x10(%rax)
movq -0x8(%rbp), %rax
movss 0x1b8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x14(%rax)
movq -0x8(%rbp), %rax
movss 0x1bc(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x18(%rax)
movq -0x8(%rbp), %rax
movss 0x1a8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1b4(%rax)
movq -0x8(%rbp), %rax
movss 0x1ac(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1b8(%rax)
movq -0x8(%rbp), %rax
movss 0x1b0(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1bc(%rax)
movq -0x8(%rbp), %rax
movss 0x10(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1a8(%rax)
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1ac(%rax)
movq -0x8(%rbp), %rax
movss 0x18(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1b0(%rax)
movq -0x8(%rbp), %rax
movss 0x19c(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x19c(%rax)
movq -0x8(%rbp), %rax
movss 0x1a0(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1a0(%rax)
movq -0x8(%rbp), %rax
movss 0x1a4(%rax), %xmm0
movd %xmm0, %eax
xorl $0x80000000, %eax       # imm = 0x80000000
movd %eax, %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x1a4(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x254(%rax)
je 0x373ff
movq -0x8(%rbp), %rax
movl $0x1, 0x27c(%rax)
movq -0x8(%rbp), %rax
movq 0x4aff4(%rip), %rcx     # 0x823d8
movq %rcx, 0x238(%rax)
movq -0x8(%rbp), %rax
movl 0x254(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x258(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x158(%rax)
je 0x3743e
movq -0x8(%rbp), %rax
cmpq $0x0, 0x130(%rax)
je 0x3743e
leaq 0x3b84b(%rip), %rdi     # 0x72c6d
movq 0x4b1d7(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0x8(%rbp), %rax
movq 0x4bb31(%rip), %rcx     # 0x82f68
movq %rcx, 0x220(%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 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x338(%rax)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x33c(%rax)
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x340(%rax)
movq -0x8(%rbp), %rax
movss 0x1a8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x344(%rax)
movq -0x8(%rbp), %rax
movss 0x1ac(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x348(%rax)
movq -0x8(%rbp), %rax
movss 0x1b0(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x34c(%rax)
movq -0x8(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x350(%rax)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x354(%rax)
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x358(%rax)
movq -0x8(%rbp), %rax
movss 0x1b4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x35c(%rax)
movq -0x8(%rbp), %rax
movss 0x1b8(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x360(%rax)
movq -0x8(%rbp), %rax
movss 0x1bc(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x364(%rax)
movq -0x8(%rbp), %rax
movl 0x140(%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x375dc
movq -0x8(%rbp), %rax
movl 0x40(%rax), %ecx
orl $0x1000, %ecx           # imm = 0x1000
movl %ecx, 0x40(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x168(%rax)
jne 0x375f9
movq -0x8(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x2d0(%rax)
movq 0x4b000(%rip), %rax     # 0x82600
movq 0x90(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movss 0x38c7f(%rip), %xmm0    # 0x70294
movq 0x4b784(%rip), %rax     # 0x82da0
addss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x200(%rax)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x254(%rax)
jne 0x37648
movq -0x8(%rbp), %rax
cmpq $0x0, 0x158(%rax)
je 0x3765c
movq -0x8(%rbp), %rax
movq 0x4b7bd(%rip), %rcx     # 0x82e10
movq %rcx, 0x210(%rax)
jmp 0x3766e
movq -0x8(%rbp), %rax
movq 0x4b4d1(%rip), %rcx     # 0x82b38
movq %rcx, 0x210(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)