LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: func_explosive_spawn
void func_explosive_spawn (edict_t *self, edict_t *other, edict_t *activator)
{
	self->solid = SOLID_BSP;
	self->svflags &= ~SVF_NOCLIENT;
	self->use = NULL;
	KillBox (self);
	gi.linkentity (self);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl $0x3, 0x108(%rdi)
andb $-0x2, 0xc8(%rdi)
movq $0x0, 0x228(%rdi)
callq 0x18a90
movq 0x3469f(%rip), %rax     # 0x69600
movq %rbx, %rdi
popq %rbx
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_func_explosive
void SP_func_explosive (edict_t *self)
{
	/*
	if (deathmatch->value)
	{	// auto-remove for deathmatch
		G_FreeEdict (self);
		return;
	}
	*/

	// LM_JORM
	if (!self->speed)
	{	// auto-remove for deathmatch
		G_FreeEdict (self);
		return;
	}
	// LM_JORM

	self->movetype = MOVETYPE_PUSH;

	gi.modelindex ("models/objects/debris1/tris.md2");
	gi.modelindex ("models/objects/debris2/tris.md2");

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

	if (self->spawnflags & 1)
	{
		self->svflags |= SVF_NOCLIENT;
		self->solid = SOLID_NOT;
		self->use = func_explosive_spawn;
	}
	else
	{
		self->solid = SOLID_BSP;
		if (self->targetname)
			self->use = func_explosive_use;
	}

	if (self->spawnflags & 2)
		self->s.effects |= EF_ANIM_ALL;
	if (self->spawnflags & 4)
		self->s.effects |= EF_ANIM_ALLFAST;

	if (self->use != func_explosive_use)
	{
//		if (!self->health)
		//surt health might be less than 0 on respawn
		if (self->health <= 0)
			self->health = 100;
		self->die = func_explosive_explode;
		self->takedamage = DAMAGE_YES;
	}

	gi.linkentity (self);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movss 0x190(%rdi), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x34f85
jnp 0x34fe4
movl $0x2, 0x118(%rbx)
movq 0x3466a(%rip), %r15     # 0x69600
leaq 0x2348b(%rip), %rdi     # 0x58428
callq *0x40(%r15)
leaq 0x22725(%rip), %rdi     # 0x576cd
callq *0x40(%r15)
movq 0x120(%rbx), %rsi
movq %rbx, %rdi
movq %r15, %r14
callq *0x58(%r15)
movl 0x140(%rbx), %eax
testb $0x1, %al
jne 0x34ff1
movl $0x3, 0x108(%rbx)
cmpq $0x0, 0x158(%rbx)
je 0x35010
movq 0x34d1e(%rip), %rcx     # 0x69d00
jmp 0x35009
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x19a60
orb $0x1, 0xc8(%rbx)
movl $0x0, 0x108(%rbx)
movq 0x34d1f(%rip), %rcx     # 0x69d28
movq %rcx, 0x228(%rbx)
testb $0x2, %al
je 0x35018
orb $0x10, 0x41(%rbx)
testb $0x4, %al
je 0x35020
orb $0x20, 0x41(%rbx)
movq 0x228(%rbx), %rax
cmpq 0x34cd2(%rip), %rax     # 0x69d00
je 0x3505b
cmpl $0x0, 0x254(%rbx)
jg 0x35043
movl $0x64, 0x254(%rbx)
movq 0x34636(%rip), %rax     # 0x69680
movq %rax, 0x238(%rbx)
movl $0x1, 0x27c(%rbx)
movq %rbx, %rdi
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: barrel_touch
void barrel_touch (edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)

{
	float	ratio;
	vec3_t	v;

	if ((!other->groundentity) || (other->groundentity == self))
		return;

	ratio = (float)other->mass / (float)self->mass;
	VectorSubtract (self->s.origin, other->s.origin, v);
	M_walkmove (self, vectoyaw(v), 20 * ratio * FRAMETIME);
}

// Assembly:
movq 0x2b8(%rsi), %rax
testq %rax, %rax
sete %cl
cmpq %rdi, %rax
sete %al
orb %cl, %al
jne 0x350fc
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
cvtsi2ssl 0x1d8(%rsi), %xmm1
cvtsi2ssl 0x1d8(%rdi), %xmm0
divss %xmm0, %xmm1
movss %xmm1, (%rsp)
movss 0x4(%rdi), %xmm0
subss 0x4(%rsi), %xmm0
leaq 0x4(%rsp), %rdi
movss %xmm0, (%rdi)
movss 0x8(%rbx), %xmm0
subss 0x8(%rsi), %xmm0
movss %xmm0, 0x4(%rdi)
movss 0xc(%rbx), %xmm0
subss 0xc(%rsi), %xmm0
movss %xmm0, 0x8(%rdi)
callq 0x18070
movss (%rsp), %xmm1
mulss 0x1fb29(%rip), %xmm1    # 0x54c10
mulss 0x1f1a1(%rip), %xmm1    # 0x54290
movq %rbx, %rdi
callq 0x18490
addq $0x10, %rsp
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: barrel_delay
void barrel_delay (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
	self->takedamage = DAMAGE_NO;
	self->nextthink = level.time + 2 * FRAMETIME;
	self->think = barrel_explode;
	self->activator = attacker;
}

// Assembly:
movl $0x0, 0x27c(%rdi)
movq 0x33fa1(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x210c8(%rip), %xmm0    # 0x56ed4
movss %xmm0, 0x200(%rdi)
movq 0x33cfd(%rip), %rax     # 0x69b18
movq %rax, 0x210(%rdi)
movq %rdx, 0x2b0(%rdi)
retq
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_explobox
void SP_misc_explobox (edict_t *self)
{
	if (deathmatch->value)
	{	// auto-remove for deathmatch
		G_FreeEdict (self);
		return;
	}

	gi.modelindex ("models/objects/debris1/tris.md2");
	gi.modelindex ("models/objects/debris2/tris.md2");
	gi.modelindex ("models/objects/debris3/tris.md2");

	self->solid = SOLID_BBOX;
	self->movetype = MOVETYPE_STEP;

	self->model = "models/objects/barrels/tris.md2";
	self->s.modelindex = gi.modelindex (self->model);
	VectorSet (self->mins, -16, -16, 0);
	VectorSet (self->maxs, 16, 16, 40);

	if (!self->mass)
		self->mass = 400;
	if (!self->health)
		self->health = 10;
	if (!self->dmg)
		self->dmg = 150;

	self->die = barrel_delay;
	self->takedamage = DAMAGE_YES;
	self->monsterinfo.aiflags = AI_NOSTEP;

	self->touch = barrel_touch;

#ifdef MONSTERS_OK
	self->think = M_droptofloor;
#endif
	self->nextthink = level.time + 2 * FRAMETIME;

	gi.linkentity (self);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x34087(%rip), %rax     # 0x69ec0
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x35e4b
jnp 0x35e58
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x19a60
movq 0x337a1(%rip), %r15     # 0x69600
leaq 0x225c2(%rip), %rdi     # 0x58428
callq *0x40(%r15)
leaq 0x2185c(%rip), %rdi     # 0x576cd
callq *0x40(%r15)
leaq 0x225cc(%rip), %rdi     # 0x58448
callq *0x40(%r15)
movl $0x2, 0x108(%rbx)
movl $0x5, 0x118(%rbx)
leaq 0x225cd(%rip), %rdi     # 0x58468
movq %rdi, 0x120(%rbx)
movq %r15, %r14
callq *0x40(%r15)
movl %eax, 0x28(%rbx)
movaps 0x223cd(%rip), %xmm0    # 0x58280
movups %xmm0, 0xcc(%rbx)
movabsq $0x4220000041800000, %rax # imm = 0x4220000041800000
movq %rax, 0xdc(%rbx)
cmpl $0x0, 0x1d8(%rbx)
jne 0x35ede
movl $0x190, 0x1d8(%rbx)     # imm = 0x190
cmpl $0x0, 0x254(%rbx)
jne 0x35ef1
movl $0xa, 0x254(%rbx)
cmpl $0x0, 0x280(%rbx)
jne 0x35f04
movl $0x96, 0x280(%rbx)
movq 0x33a75(%rip), %rax     # 0x69980
movq %rax, 0x238(%rbx)
movl $0x1, 0x27c(%rbx)
movl $0x400, 0x3c0(%rbx)     # imm = 0x400
movq 0x33fdb(%rip), %rax     # 0x69f08
movq %rax, 0x220(%rbx)
movq 0x33e65(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x20f8c(%rip), %xmm0    # 0x56ed4
movss %xmm0, 0x200(%rbx)
movq %rbx, %rdi
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_blackhole
void SP_misc_blackhole (edict_t *ent)
{
	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_NOT;
	VectorSet (ent->mins, -64, -64, 0);
	VectorSet (ent->maxs, 64, 64, 8);
	ent->s.modelindex = gi.modelindex ("models/objects/black/tris.md2");
	ent->s.renderfx = RF_TRANSLUCENT;
	ent->use = misc_blackhole_use;
	ent->think = misc_blackhole_think;
	ent->nextthink = level.time + 2 * FRAMETIME;
	gi.linkentity (ent);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %eax, %eax
movl %eax, 0x118(%rdi)
movl %eax, 0x108(%rdi)
movaps 0x22310(%rip), %xmm0    # 0x582c0
movups %xmm0, 0xcc(%rdi)
movabsq $0x4100000042800000, %rax # imm = 0x4100000042800000
movq %rax, 0xdc(%rdi)
movq 0x33631(%rip), %r14     # 0x69600
leaq 0x224b2(%rip), %rdi     # 0x58488
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
movl $0x20, 0x44(%rbx)
movq 0x335bd(%rip), %rax     # 0x695a8
movq %rax, 0x228(%rbx)
movq 0x33e97(%rip), %rax     # 0x69e90
movq %rax, 0x210(%rbx)
movq 0x33d99(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x20ec0(%rip), %xmm0    # 0x56ed4
movss %xmm0, 0x200(%rbx)
movq %rbx, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_eastertank
void SP_misc_eastertank (edict_t *ent)
{
	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_BBOX;
	VectorSet (ent->mins, -32, -32, -16);
	VectorSet (ent->maxs, 32, 32, 32);
	ent->s.modelindex = gi.modelindex ("models/monsters/tank/tris.md2");
	ent->s.frame = 254;
	ent->think = misc_eastertank_think;
	ent->nextthink = level.time + 2 * FRAMETIME;
	gi.linkentity (ent);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x0, 0x118(%rdi)
movl $0x2, 0x108(%rdi)
movaps 0x2224c(%rip), %xmm0    # 0x582d0
movups %xmm0, 0xcc(%rdi)
movabsq $0x4200000042000000, %rax # imm = 0x4200000042000000
movq %rax, 0xdc(%rdi)
movq 0x3355d(%rip), %r14     # 0x69600
leaq 0x223fc(%rip), %rdi     # 0x584a6
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
movl $0xfe, 0x38(%rbx)
movq 0x33a01(%rip), %rax     # 0x69ac0
movq %rax, 0x210(%rbx)
movq 0x33cd3(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x20dfa(%rip), %xmm0    # 0x56ed4
movss %xmm0, 0x200(%rbx)
movq %rbx, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_easterchick
void SP_misc_easterchick (edict_t *ent)
{
	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_BBOX;
	VectorSet (ent->mins, -32, -32, 0);
	VectorSet (ent->maxs, 32, 32, 32);
	ent->s.modelindex = gi.modelindex ("models/monsters/bitch/tris.md2");
	ent->s.frame = 208;
	ent->think = misc_easterchick_think;
	ent->nextthink = level.time + 2 * FRAMETIME;
	gi.linkentity (ent);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x0, 0x118(%rdi)
movl $0x2, 0x108(%rdi)
movaps 0x22196(%rip), %xmm0    # 0x582e0
movups %xmm0, 0xcc(%rdi)
movabsq $0x4200000042000000, %rax # imm = 0x4200000042000000
movq %rax, 0xdc(%rdi)
movq 0x33497(%rip), %r14     # 0x69600
leaq 0x22354(%rip), %rdi     # 0x584c4
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
movl $0xd0, 0x38(%rbx)
movq 0x33633(%rip), %rax     # 0x697b8
movq %rax, 0x210(%rbx)
movq 0x33c0d(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x20d34(%rip), %xmm0    # 0x56ed4
movss %xmm0, 0x200(%rbx)
movq %rbx, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_easterchick2
void SP_misc_easterchick2 (edict_t *ent)
{
	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_BBOX;
	VectorSet (ent->mins, -32, -32, 0);
	VectorSet (ent->maxs, 32, 32, 32);
	ent->s.modelindex = gi.modelindex ("models/monsters/bitch/tris.md2");
	ent->s.frame = 248;
	ent->think = misc_easterchick2_think;
	ent->nextthink = level.time + 2 * FRAMETIME;
	gi.linkentity (ent);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x0, 0x118(%rdi)
movl $0x2, 0x108(%rdi)
movaps 0x220d0(%rip), %xmm0    # 0x582e0
movups %xmm0, 0xcc(%rdi)
movabsq $0x4200000042000000, %rax # imm = 0x4200000042000000
movq %rax, 0xdc(%rdi)
movq 0x333d1(%rip), %r14     # 0x69600
leaq 0x2228e(%rip), %rdi     # 0x584c4
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
movl $0xf8, 0x38(%rbx)
movq 0x331ad(%rip), %rax     # 0x693f8
movq %rax, 0x210(%rbx)
movq 0x33b47(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x20c6e(%rip), %xmm0    # 0x56ed4
movss %xmm0, 0x200(%rbx)
movq %rbx, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: commander_body_think
void commander_body_think (edict_t *self)
{
	if (++self->s.frame < 24)
		self->nextthink = level.time + FRAMETIME;
	else
		self->nextthink = 0;

	if (self->s.frame == 22)
		gi.sound (self, CHAN_BODY, gi.soundindex ("tank/thud.wav"), 1, ATTN_NORM, 0);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x38(%rdi), %ecx
leal 0x1(%rcx), %eax
movl %eax, 0x38(%rdi)
cmpl $0x17, %ecx
jl 0x3629b
xorps %xmm0, %xmm0
jmp 0x362af
movq 0x33afe(%rip), %rcx     # 0x69da0
movss 0x4(%rcx), %xmm0
addss 0x1dfe1(%rip), %xmm0    # 0x54290
movss %xmm0, 0x200(%rbx)
cmpl $0x16, %eax
jne 0x362f5
movq 0x3333d(%rip), %rax     # 0x69600
movq 0x20(%rax), %r14
leaq 0x2214c(%rip), %rdi     # 0x5841a
callq *0x48(%rax)
movss 0x1dc4f(%rip), %xmm0    # 0x53f28
xorps %xmm2, %xmm2
movq %rbx, %rdi
movl $0x4, %esi
movl %eax, %edx
movaps %xmm0, %xmm1
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_monster_commander_body
void SP_monster_commander_body (edict_t *self)
{
	self->movetype = MOVETYPE_NONE;
	self->solid = SOLID_BBOX;
	self->model = "models/monsters/commandr/tris.md2";
	self->s.modelindex = gi.modelindex (self->model);
	VectorSet (self->mins, -32, -32, 0);
	VectorSet (self->maxs, 32, 32, 48);
	self->use = commander_body_use;
	self->takedamage = DAMAGE_YES;
	self->flags = FL_GODMODE;
	self->s.renderfx |= RF_FRAMELERP;
	gi.linkentity (self);

	gi.soundindex ("tank/thud.wav");
	gi.soundindex ("tank/pain.wav");

	self->think = commander_body_drop;
	self->nextthink = level.time + 5 * FRAMETIME;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x0, 0x118(%rdi)
movl $0x2, 0x108(%rdi)
leaq 0x2214b(%rip), %rdi     # 0x584f1
movq %rdi, 0x120(%rbx)
movq 0x3324c(%rip), %r14     # 0x69600
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
movaps 0x21f1e(%rip), %xmm0    # 0x582e0
movups %xmm0, 0xcc(%rbx)
movabsq $0x4240000042000000, %rax # imm = 0x4240000042000000
movq %rax, 0xdc(%rbx)
movq 0x337c7(%rip), %rax     # 0x69ba8
movq %rax, 0x228(%rbx)
movl $0x1, 0x27c(%rbx)
movl $0x10, 0x11c(%rbx)
orb $0x40, 0x44(%rbx)
movq %rbx, %rdi
callq *0x90(%r14)
leaq 0x22009(%rip), %rdi     # 0x5841a
callq *0x48(%r14)
leaq 0x220c7(%rip), %rdi     # 0x584e3
callq *0x48(%r14)
movq 0x331c9(%rip), %rax     # 0x695f0
movq %rax, 0x210(%rbx)
movq 0x3396b(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x1efc2(%rip), %xmm0    # 0x55404
movss %xmm0, 0x200(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_banner
void SP_misc_banner (edict_t *ent)
{
	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_NOT;
	ent->s.modelindex = gi.modelindex ("models/objects/banner/tris.md2");
	ent->s.frame = rand() % 16;
	gi.linkentity (ent);

	ent->think = misc_banner_think;
	ent->nextthink = level.time + FRAMETIME;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %eax, %eax
movl %eax, 0x118(%rdi)
movl %eax, 0x108(%rdi)
movq 0x3315b(%rip), %r14     # 0x69600
leaq 0x21f2c(%rip), %rdi     # 0x583d8
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
callq 0x19a20
leal 0xf(%rax), %ecx
testl %eax, %eax
cmovnsl %eax, %ecx
andl $-0x10, %ecx
subl %ecx, %eax
movl %eax, 0x38(%rbx)
movq %rbx, %rdi
callq *0x90(%r14)
movq 0x33257(%rip), %rax     # 0x69730
movq %rax, 0x210(%rbx)
movq 0x338b9(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x1dd9c(%rip), %xmm0    # 0x54290
movss %xmm0, 0x200(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_ctf_banner
void SP_misc_ctf_banner (edict_t *ent)
{
	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_NOT;
	ent->s.modelindex = gi.modelindex ("models/ctf/banner/tris.md2");
	if (ent->spawnflags & 1) // team2
		ent->s.skinnum = 1;

	ent->s.frame = rand() % 16;
	gi.linkentity (ent);

	ent->think = misc_ctf_banner_think;
	ent->nextthink = level.time + FRAMETIME;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %eax, %eax
movl %eax, 0x118(%rdi)
movl %eax, 0x108(%rdi)
movq 0x330a8(%rip), %r14     # 0x69600
leaq 0x21fb4(%rip), %rdi     # 0x58513
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
testb $0x1, 0x140(%rbx)
je 0x36576
movl $0x1, 0x3c(%rbx)
callq 0x19a20
leal 0xf(%rax), %ecx
testl %eax, %eax
cmovnsl %eax, %ecx
andl $-0x10, %ecx
subl %ecx, %eax
movl %eax, 0x38(%rbx)
movq %rbx, %rdi
callq *0x90(%r14)
movq 0x3384c(%rip), %rax     # 0x69de8
movq %rax, 0x210(%rbx)
movq 0x337f6(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x1dcd9(%rip), %xmm0    # 0x54290
movss %xmm0, 0x200(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_ctf_small_banner
void SP_misc_ctf_small_banner (edict_t *ent)
{
	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_NOT;
	ent->s.modelindex = gi.modelindex ("models/ctf/banner/small.md2");
	if (ent->spawnflags & 1) // team2
		ent->s.skinnum = 1;

	ent->s.frame = rand() % 16;
	gi.linkentity (ent);

	ent->think = misc_ctf_banner_think;
	ent->nextthink = level.time + FRAMETIME;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %eax, %eax
movl %eax, 0x118(%rdi)
movl %eax, 0x108(%rdi)
movq 0x3301d(%rip), %r14     # 0x69600
leaq 0x21f44(%rip), %rdi     # 0x5852e
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
testb $0x1, 0x140(%rbx)
je 0x36601
movl $0x1, 0x3c(%rbx)
callq 0x19a20
leal 0xf(%rax), %ecx
testl %eax, %eax
cmovnsl %eax, %ecx
andl $-0x10, %ecx
subl %ecx, %eax
movl %eax, 0x38(%rbx)
movq %rbx, %rdi
callq *0x90(%r14)
movq 0x337c1(%rip), %rax     # 0x69de8
movq %rax, 0x210(%rbx)
movq 0x3376b(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x1dc4e(%rip), %xmm0    # 0x54290
movss %xmm0, 0x200(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: misc_deadsoldier_die
void misc_deadsoldier_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
	int		n;

	if (self->health > -80)
		return;

	gi.sound (self, CHAN_BODY, gi.soundindex ("misc/udeath.wav"), 1, ATTN_NORM, 0);
	for (n= 0; n < 4; n++)
		ThrowGib (self, "models/objects/gibs/sm_meat/tris.md2", damage, GIB_ORGANIC);
	ThrowHead (self, "models/objects/gibs/head2/tris.md2", damage, GIB_ORGANIC);
}

// Assembly:
cmpl $-0x50, 0x254(%rdi)
jle 0x3665c
retq
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl %ecx, %ebx
movq %rdi, %r14
movq 0x32f91(%rip), %rax     # 0x69600
movq 0x20(%rax), %r15
leaq 0x21ed0(%rip), %rdi     # 0x5854a
callq *0x48(%rax)
movl $0x4, %ebp
movss 0x1d89e(%rip), %xmm0    # 0x53f28
xorps %xmm2, %xmm2
movq %r14, %rdi
movl $0x4, %esi
movl %eax, %edx
movaps %xmm0, %xmm1
callq *%r15
leaq 0x21eb6(%rip), %r15     # 0x5855a
movq %r14, %rdi
movq %r15, %rsi
movl %ebx, %edx
xorl %ecx, %ecx
callq 0x188e0
decl %ebp
jne 0x366a4
leaq 0x21c71(%rip), %rsi     # 0x5832f
movq %r14, %rdi
movl %ebx, %edx
xorl %ecx, %ecx
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x19660
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_deadsoldier
void SP_misc_deadsoldier (edict_t *ent)
{
	if (deathmatch->value)
	{	// auto-remove for deathmatch
		G_FreeEdict (ent);
		return;
	}

	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_BBOX;
	ent->s.modelindex=gi.modelindex ("models/deadbods/dude/tris.md2");

	// Defaults to frame 0
	if (ent->spawnflags & 2)
		ent->s.frame = 1;
	else if (ent->spawnflags & 4)
		ent->s.frame = 2;
	else if (ent->spawnflags & 8)
		ent->s.frame = 3;
	else if (ent->spawnflags & 16)
		ent->s.frame = 4;
	else if (ent->spawnflags & 32)
		ent->s.frame = 5;
	else
		ent->s.frame = 0;

	VectorSet (ent->mins, -16, -16, 0);
	VectorSet (ent->maxs, 16, 16, 16);
	ent->deadflag = DEAD_DEAD;
	ent->takedamage = DAMAGE_YES;
	ent->svflags |= SVF_MONSTER|SVF_DEADMONSTER;
	ent->die = misc_deadsoldier_die;
	ent->monsterinfo.aiflags |= AI_GOOD_GUY;

	gi.linkentity (ent);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x337de(%rip), %rax     # 0x69ec0
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x366f4
jnp 0x36703
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x19a60
movl $0x0, 0x118(%rbx)
movl $0x2, 0x108(%rbx)
movq 0x32ee2(%rip), %rax     # 0x69600
leaq 0x21e5a(%rip), %rdi     # 0x5857f
movq %rax, %r14
callq *0x40(%rax)
movl %eax, 0x28(%rbx)
movl 0x140(%rbx), %eax
testb $0x2, %al
jne 0x36751
testb $0x4, %al
jne 0x3675a
testb $0x8, %al
jne 0x36763
testb $0x10, %al
jne 0x3676c
testb $0x20, %al
jne 0x36775
movl $0x0, 0x38(%rbx)
jmp 0x3677c
movl $0x1, 0x38(%rbx)
jmp 0x3677c
movl $0x2, 0x38(%rbx)
jmp 0x3677c
movl $0x3, 0x38(%rbx)
jmp 0x3677c
movl $0x4, 0x38(%rbx)
jmp 0x3677c
movl $0x5, 0x38(%rbx)
movaps 0x21afd(%rip), %xmm0    # 0x58280
movups %xmm0, 0xcc(%rbx)
movabsq $0x4180000041800000, %rax # imm = 0x4180000041800000
movq %rax, 0xdc(%rbx)
movl $0x2, 0x260(%rbx)
movl $0x1, 0x27c(%rbx)
orb $0x6, 0xc8(%rbx)
movq 0x3318b(%rip), %rax     # 0x69948
movq %rax, 0x238(%rbx)
orb $0x1, 0x3c1(%rbx)
movq %rbx, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_viper
void SP_misc_viper (edict_t *ent)
{
	if (!ent->target)
	{
		gi.dprintf ("misc_viper without a target at %s\n", vtos(ent->absmin));
		G_FreeEdict (ent);
		return;
	}

	if (!ent->speed)
		ent->speed = 300;

	ent->movetype = MOVETYPE_PUSH;
	ent->solid = SOLID_NOT;
	ent->s.modelindex = gi.modelindex ("models/ships/viper/tris.md2");
	VectorSet (ent->mins, -16, -16, 0);
	VectorSet (ent->maxs, 16, 16, 32);

	ent->think = func_train_find;
	ent->nextthink = level.time + FRAMETIME;
	ent->use = misc_viper_use;
	ent->svflags |= SVF_NOCLIENT;
	ent->moveinfo.accel = ent->moveinfo.decel = ent->moveinfo.speed = ent->speed;

	gi.linkentity (ent);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
cmpq $0x0, 0x150(%rdi)
je 0x368e3
movss 0x190(%rbx), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x36829
jp 0x36829
movl $0x43960000, 0x190(%rbx) # imm = 0x43960000
movl $0x2, 0x118(%rbx)
movl $0x0, 0x108(%rbx)
movq 0x32dbc(%rip), %r14     # 0x69600
leaq 0x21d75(%rip), %rdi     # 0x585c0
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
movaps 0x21a27(%rip), %xmm0    # 0x58280
movups %xmm0, 0xcc(%rbx)
movabsq $0x4200000041800000, %rax # imm = 0x4200000041800000
movq %rax, 0xdc(%rbx)
movq 0x332c8(%rip), %rax     # 0x69b40
movq %rax, 0x210(%rbx)
movq 0x3351a(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x1d9fd(%rip), %xmm0    # 0x54290
movss %xmm0, 0x200(%rbx)
movq 0x33756(%rip), %rax     # 0x69ff8
movq %rax, 0x228(%rbx)
orb $0x1, 0xc8(%rbx)
movss 0x190(%rbx), %xmm0
movss %xmm0, 0x378(%rbx)
movss %xmm0, 0x37c(%rbx)
movss %xmm0, 0x374(%rbx)
movq %rbx, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
movq 0x32d16(%rip), %rax     # 0x69600
movq 0x8(%rax), %r14
leaq 0xe4(%rbx), %rdi
callq 0x190a0
leaq 0x21c9c(%rip), %rdi     # 0x5859d
movq %rax, %rsi
xorl %eax, %eax
callq *%r14
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x19a60
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_bigviper
void SP_misc_bigviper (edict_t *ent)
{
	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_BBOX;
	VectorSet (ent->mins, -176, -120, -24);
	VectorSet (ent->maxs, 176, 120, 72);
	ent->s.modelindex = gi.modelindex ("models/ships/bigviper/tris.md2");
	gi.linkentity (ent);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x0, 0x118(%rdi)
movl $0x2, 0x108(%rdi)
movaps 0x219b6(%rip), %xmm0    # 0x582f0
movups %xmm0, 0xcc(%rdi)
movabsq $0x4290000042f00000, %rax # imm = 0x4290000042F00000
movq %rax, 0xdc(%rdi)
movq 0x32ca7(%rip), %r14     # 0x69600
leaq 0x21c7c(%rip), %rdi     # 0x585dc
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
movq %rbx, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: misc_viper_bomb_touch
void misc_viper_bomb_touch (edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
{
	G_UseTargets (self, self->activator);

	self->s.origin[2] = self->absmin[2] + 1;
	T_RadiusDamage (self, self, self->dmg, NULL, self->dmg+40, MOD_BOMB);
	BecomeExplosion2 (self);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x2b0(%rdi), %rsi
callq 0x198f0
movss 0xec(%rbx), %xmm0
addss 0x1d58e(%rip), %xmm0    # 0x53f28
movss %xmm0, 0xc(%rbx)
movl 0x280(%rbx), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
addl $0x28, %eax
cvtsi2ss %eax, %xmm1
movq %rbx, %rdi
movq %rbx, %rsi
xorl %edx, %edx
movl $0x1b, %ecx
callq 0x180c0
movq %rbx, %rdi
popq %rbx
jmp 0x18890
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: misc_viper_bomb_prethink
void misc_viper_bomb_prethink (edict_t *self)
{
	vec3_t	v;
	float	diff;

	self->groundentity = NULL;

	diff = self->timestamp - level.time;
	if (diff < -1.0)
		diff = -1.0;

	VectorScale (self->moveinfo.dir, 1.0 + diff, v);
	v[2] = diff;

	diff = self->s.angles[2];
	vectoangles (v, self->s.angles);
	self->s.angles[2] = diff + 10;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movq $0x0, 0x2b8(%rdi)
movss 0x144(%rdi), %xmm0
movq 0x333ae(%rip), %rax     # 0x69da0
subss 0x4(%rax), %xmm0
movss 0x20201(%rip), %xmm1    # 0x56c00
maxss %xmm0, %xmm1
movss %xmm1, 0x8(%rsp)
addq $0x38c, %rdi            # imm = 0x38C
movss 0x1d510(%rip), %xmm0    # 0x53f28
addss %xmm1, %xmm0
leaq 0xc(%rsp), %r14
movq %r14, %rsi
callq 0x189d0
movss 0x8(%rsp), %xmm0
movss %xmm0, 0x8(%r14)
leaq 0x10(%rbx), %rsi
movss 0x18(%rbx), %xmm0
movss %xmm0, 0x8(%rsp)
movq %r14, %rdi
callq 0x190d0
movss 0x8(%rsp), %xmm0
addss 0x1d4ba(%rip), %xmm0    # 0x53f14
movss %xmm0, 0x18(%rbx)
addq $0x18, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: misc_viper_bomb_use
void misc_viper_bomb_use (edict_t *self, edict_t *other, edict_t *activator)
{
	edict_t	*viper;

	self->solid = SOLID_BBOX;
	self->svflags &= ~SVF_NOCLIENT;
	self->s.effects |= EF_ROCKET;
	self->use = NULL;
	self->movetype = MOVETYPE_TOSS;
	self->prethink = misc_viper_bomb_prethink;
	self->touch = misc_viper_bomb_touch;
	self->activator = activator;

	viper = G_Find (NULL, FOFS(classname), "misc_viper");
	VectorScale (viper->moveinfo.dir, viper->moveinfo.speed, self->velocity);

	self->timestamp = level.time;
	VectorCopy (viper->moveinfo.dir, self->moveinfo.dir);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x2, 0x108(%rdi)
andb $-0x2, 0xc8(%rdi)
orb $0x10, 0x40(%rdi)
movq $0x0, 0x228(%rdi)
movl $0x7, 0x118(%rdi)
movq 0x32cd9(%rip), %rax     # 0x69778
movq %rax, 0x208(%rdi)
movq 0x33083(%rip), %rax     # 0x69b30
movq %rax, 0x220(%rdi)
movq %rdx, 0x2b0(%rdi)
leaq 0x21b39(%rip), %rdx     # 0x585fb
xorl %edi, %edi
movl $0x138, %esi            # imm = 0x138
callq 0x19430
movq %rax, %r14
leaq 0x38c(%rax), %rdi
movss 0x378(%rax), %xmm0
leaq 0x1c0(%rbx), %rsi
callq 0x189d0
movq 0x332ad(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
movss %xmm0, 0x144(%rbx)
movss 0x38c(%r14), %xmm0
movss %xmm0, 0x38c(%rbx)
movss 0x390(%r14), %xmm0
movss %xmm0, 0x390(%rbx)
movss 0x394(%r14), %xmm0
movss %xmm0, 0x394(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_viper_bomb
void SP_misc_viper_bomb (edict_t *self)
{
	self->movetype = MOVETYPE_NONE;
	self->solid = SOLID_NOT;
	VectorSet (self->mins, -8, -8, -8);
	VectorSet (self->maxs, 8, 8, 8);

	self->s.modelindex = gi.modelindex ("models/objects/bomb/tris.md2");

	if (!self->dmg)
		self->dmg = 1000;

	self->use = misc_viper_bomb_use;
	self->svflags |= SVF_NOCLIENT;

	gi.linkentity (self);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
xorl %ebp, %ebp
movl %ebp, 0x118(%rdi)
movl %ebp, 0x108(%rdi)
movaps 0x21739(%rip), %xmm0    # 0x58290
movups %xmm0, 0xcc(%rdi)
movabsq $0x4100000041000000, %rax # imm = 0x4100000041000000
movq %rax, 0xdc(%rdi)
movq 0x32a8a(%rip), %rax     # 0x69600
leaq 0x21a89(%rip), %rdi     # 0x58606
movq %rax, %r14
callq *0x40(%rax)
movl %eax, 0x28(%rbx)
cmpl %ebp, 0x280(%rbx)
jne 0x36b98
movl $0x3e8, 0x280(%rbx)     # imm = 0x3E8
movq 0x33041(%rip), %rax     # 0x69be0
movq %rax, 0x228(%rbx)
orb $0x1, 0xc8(%rbx)
movq %rbx, %rdi
movq %r14, %rax
popq %rbx
popq %r14
popq %rbp
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_strogg_ship
void SP_misc_strogg_ship (edict_t *ent)
{
	if (!ent->target)
	{
		gi.dprintf ("%s without a target at %s\n", ent->classname, vtos(ent->absmin));
		G_FreeEdict (ent);
		return;
	}

	if (!ent->speed)
		ent->speed = 300;

	ent->movetype = MOVETYPE_PUSH;
	ent->solid = SOLID_NOT;
	ent->s.modelindex = gi.modelindex ("models/ships/strogg1/tris.md2");
	VectorSet (ent->mins, -16, -16, 0);
	VectorSet (ent->maxs, 16, 16, 32);

	ent->think = func_train_find;
	ent->nextthink = level.time + FRAMETIME;
	ent->use = misc_strogg_ship_use;
	ent->svflags |= SVF_NOCLIENT;
	ent->moveinfo.accel = ent->moveinfo.decel = ent->moveinfo.speed = ent->speed;

	gi.linkentity (ent);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
cmpq $0x0, 0x150(%rdi)
je 0x36cc1
movss 0x190(%rbx), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x36c09
jp 0x36c09
movl $0x43960000, 0x190(%rbx) # imm = 0x43960000
movl $0x2, 0x118(%rbx)
movl $0x0, 0x108(%rbx)
movq 0x329dc(%rip), %r14     # 0x69600
leaq 0x21a13(%rip), %rdi     # 0x5863e
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
movaps 0x21647(%rip), %xmm0    # 0x58280
movups %xmm0, 0xcc(%rbx)
movabsq $0x4200000041800000, %rax # imm = 0x4200000041800000
movq %rax, 0xdc(%rbx)
movq 0x32ee8(%rip), %rax     # 0x69b40
movq %rax, 0x210(%rbx)
movq 0x3313a(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x1d61d(%rip), %xmm0    # 0x54290
movss %xmm0, 0x200(%rbx)
movq 0x32876(%rip), %rax     # 0x694f8
movq %rax, 0x228(%rbx)
orb $0x1, 0xc8(%rbx)
movss 0x190(%rbx), %xmm0
movss %xmm0, 0x378(%rbx)
movss %xmm0, 0x37c(%rbx)
movss %xmm0, 0x374(%rbx)
movq %rbx, %rdi
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
jmpq *0x90(%rax)
movq 0x32938(%rip), %rax     # 0x69600
movq 0x8(%rax), %r15
movq 0x138(%rbx), %r14
leaq 0xe4(%rbx), %rdi
callq 0x190a0
leaq 0x2193d(%rip), %rdi     # 0x58623
movq %r14, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq *%r15
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x19a60
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_satellite_dish
void SP_misc_satellite_dish (edict_t *ent)
{
	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_BBOX;
	VectorSet (ent->mins, -64, -64, 0);
	VectorSet (ent->maxs, 64, 64, 128);
	ent->s.modelindex = gi.modelindex ("models/objects/satellite/tris.md2");
	ent->use = misc_satellite_dish_use;
	gi.linkentity (ent);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x0, 0x118(%rdi)
movl $0x2, 0x108(%rdi)
movaps 0x21543(%rip), %xmm0    # 0x582c0
movups %xmm0, 0xcc(%rdi)
movabsq $0x4300000042800000, %rax # imm = 0x4300000042800000
movq %rax, 0xdc(%rdi)
movq 0x32864(%rip), %r14     # 0x69600
leaq 0x218b9(%rip), %rdi     # 0x5865c
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
movq 0x32cd7(%rip), %rax     # 0x69a88
movq %rax, 0x228(%rbx)
movq %rbx, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_light_mine1
void SP_light_mine1 (edict_t *ent)
{
	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_BBOX;
	ent->s.modelindex = gi.modelindex ("models/objects/minelite/light1/tris.md2");
	gi.linkentity (ent);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x0, 0x118(%rdi)
movl $0x2, 0x108(%rdi)
movq 0x32813(%rip), %r14     # 0x69600
leaq 0x2188a(%rip), %rdi     # 0x5867e
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
movq %rbx, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_light_mine2
void SP_light_mine2 (edict_t *ent)
{
	ent->movetype = MOVETYPE_NONE;
	ent->solid = SOLID_BBOX;
	ent->s.modelindex = gi.modelindex ("models/objects/minelite/light2/tris.md2");
	gi.linkentity (ent);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x0, 0x118(%rdi)
movl $0x2, 0x108(%rdi)
movq 0x327d0(%rip), %r14     # 0x69600
leaq 0x2186f(%rip), %rdi     # 0x586a6
callq *0x40(%r14)
movl %eax, 0x28(%rbx)
movq %rbx, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_gib_arm
void SP_misc_gib_arm (edict_t *ent)
{
	gi.setmodel (ent, "models/objects/gibs/arm/tris.md2");
	ent->solid = SOLID_NOT;
	ent->s.effects |= EF_GIB;
	ent->takedamage = DAMAGE_YES;
	ent->die = gib_die;
	ent->movetype = MOVETYPE_TOSS;
	ent->svflags |= SVF_MONSTER;
	ent->deadflag = DEAD_DEAD;
	ent->avelocity[0] = random()*200;
	ent->avelocity[1] = random()*200;
	ent->avelocity[2] = random()*200;
	ent->think = G_FreeEdict;
	ent->nextthink = level.time + 30;
	gi.linkentity (ent);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x327a1(%rip), %r14     # 0x69600
leaq 0x21868(%rip), %rsi     # 0x586ce
callq *0x58(%r14)
movl $0x0, 0x108(%rbx)
orb $0x2, 0x40(%rbx)
movl $0x1, 0x27c(%rbx)
movq 0x32daf(%rip), %rax     # 0x69c38
movq %rax, 0x238(%rbx)
movl $0x7, 0x118(%rbx)
orb $0x4, 0xc8(%rbx)
movl $0x2, 0x260(%rbx)
callq 0x19a20
movl $0x7fff, %ebp           # imm = 0x7FFF
andl %ebp, %eax
cvtsi2ss %eax, %xmm0
divss 0x1d3c5(%rip), %xmm0    # 0x54288
mulss 0x1d3d9(%rip), %xmm0    # 0x542a4
movss %xmm0, 0x1cc(%rbx)
callq 0x19a20
andl %ebp, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
divss 0x1d39f(%rip), %xmm0    # 0x54288
mulss 0x1d3b3(%rip), %xmm0    # 0x542a4
movss %xmm0, 0x1d0(%rbx)
callq 0x19a20
andl %ebp, %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
divss 0x1d379(%rip), %xmm0    # 0x54288
mulss 0x1d38d(%rip), %xmm0    # 0x542a4
movss %xmm0, 0x1d4(%rbx)
movq 0x3250a(%rip), %rax     # 0x69430
movq %rax, 0x210(%rbx)
movq 0x32e6c(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x1d353(%rip), %xmm0    # 0x54294
movss %xmm0, 0x200(%rbx)
movq %rbx, %rdi
movq %r14, %rax
popq %rbx
popq %r14
popq %rbp
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_target_character
void SP_target_character (edict_t *self)
{
	self->movetype = MOVETYPE_PUSH;
	gi.setmodel (self, self->model);
	self->solid = SOLID_BSP;
	self->s.frame = 12;
	gi.linkentity (self);
	return;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl $0x2, 0x118(%rdi)
movq 0x3247f(%rip), %r14     # 0x69600
movq 0x120(%rdi), %rsi
callq *0x58(%r14)
movl $0x3, 0x108(%rbx)
movl $0xc, 0x38(%rbx)
movq %rbx, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: target_string_use
void target_string_use (edict_t *self, edict_t *other, edict_t *activator)
{
	edict_t *e;
	size_t	n;
	size_t	len;
	char	c;

	len = strlen(self->message);
	for (e = self->teammaster; e; e = e->teamchain)
	{
		if (!e->count)
			continue;
		n = (size_t)e->count - 1;
		if (n > len)
		{
			e->s.frame = 12;
			continue;
		}

		c = self->message[n];
		if (c >= '0' && c <= '9')
			e->s.frame = c - '0';
		else if (c == '-')
			e->s.frame = 10;
		else if (c == ':')
			e->s.frame = 11;
		else
			e->s.frame = 12;
	}
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
movq 0x130(%rdi), %rbx
movq %rbx, %rdi
callq 0x18680
movq 0x2d0(%r14), %rcx
testq %rcx, %rcx
je 0x37227
movslq 0x290(%rcx), %rdx
testq %rdx, %rdx
je 0x3721e
decq %rdx
cmpq %rax, %rdx
jbe 0x371ef
movl $0xc, 0x38(%rcx)
jmp 0x3721e
movzbl (%rbx,%rdx), %edx
leal -0x30(%rdx), %esi
cmpb $0x9, %sil
ja 0x37204
addl $-0x30, %edx
movl %edx, 0x38(%rcx)
jmp 0x3721e
cmpl $0x3a, %edx
je 0x37217
cmpl $0x2d, %edx
jne 0x371e6
movl $0xa, 0x38(%rcx)
jmp 0x3721e
movl $0xb, 0x38(%rcx)
movq 0x2c8(%rcx), %rcx
jmp 0x371cd
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: func_clock_format_countdown
static void func_clock_format_countdown (edict_t *self)
{
	if (self->style == 0)
	{
		Com_sprintf (self->message, CLOCK_MESSAGE_SIZE, "%2i", self->health);
		return;
	}

	if (self->style == 1)
	{
		Com_sprintf(self->message, CLOCK_MESSAGE_SIZE, "%2i:%2i", self->health / 60, self->health % 60);
		if (self->message[3] == ' ')
			self->message[3] = '0';
		return;
	}

	if (self->style == 2)
	{
		Com_sprintf(self->message, CLOCK_MESSAGE_SIZE, "%2i:%2i:%2i", self->health / 3600, (self->health - (self->health / 3600) * 3600) / 60, self->health % 60);
		if (self->message[3] == ' ')
			self->message[3] = '0';
		if (self->message[6] == ' ')
			self->message[6] = '0';
		return;
	}
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl 0x32c(%rdi), %eax
cmpl $0x2, %eax
je 0x374d0
cmpl $0x1, %eax
je 0x37477
testl %eax, %eax
jne 0x37570
movq 0x130(%rbx), %rdi
movl 0x254(%rbx), %ecx
leaq 0x212d0(%rip), %rdx     # 0x5873a
movl $0x10, %esi
xorl %eax, %eax
popq %rbx
jmp 0x18e10
movq 0x130(%rbx), %rdi
movslq 0x254(%rbx), %r8
imulq $-0x77777777, %r8, %rcx # imm = 0x88888889
shrq $0x20, %rcx
addl %r8d, %ecx
movl %ecx, %eax
shrl $0x1f, %eax
sarl $0x5, %ecx
addl %eax, %ecx
imull $0x3c, %ecx, %eax
subl %eax, %r8d
leaq 0x2128c(%rip), %rdx     # 0x58736
movl $0x10, %esi
xorl %eax, %eax
callq 0x18e10
movq 0x130(%rbx), %rax
cmpb $0x20, 0x3(%rax)
jne 0x37570
movb $0x30, 0x3(%rax)
jmp 0x37570
movq 0x130(%rbx), %rdi
movslq 0x254(%rbx), %r9
imulq $-0x6e5d4c3b, %r9, %rcx # imm = 0x91A2B3C5
shrq $0x20, %rcx
addl %r9d, %ecx
movl %ecx, %eax
shrl $0x1f, %eax
sarl $0xb, %ecx
addl %eax, %ecx
imull $0xfffff1f0, %ecx, %eax # imm = 0xFFFFF1F0
addl %r9d, %eax
movslq %eax, %r8
imulq $-0x77777777, %r8, %rax # imm = 0x88888889
shrq $0x20, %rax
addl %eax, %r8d
movl %r8d, %eax
shrl $0x1f, %eax
sarl $0x5, %r8d
addl %eax, %r8d
imulq $-0x77777777, %r9, %rax # imm = 0x88888889
shrq $0x20, %rax
addl %r9d, %eax
movl %eax, %edx
shrl $0x1f, %edx
sarl $0x5, %eax
addl %edx, %eax
imull $0x3c, %eax, %eax
subl %eax, %r9d
leaq 0x211f0(%rip), %rdx     # 0x58732
movl $0x10, %esi
xorl %eax, %eax
callq 0x18e10
movq 0x130(%rbx), %rax
cmpb $0x20, 0x3(%rax)
jne 0x3755f
movb $0x30, 0x3(%rax)
movq 0x130(%rbx), %rax
cmpb $0x20, 0x6(%rax)
jne 0x37570
movb $0x30, 0x6(%rax)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: func_clock_use
void func_clock_use (edict_t *self, edict_t *other, edict_t *activator)
{
	if (!(self->spawnflags & 8))
		self->use = NULL;
	if (self->activator)
		return;
	self->activator = activator;
	self->think (self);
}

// Assembly:
testb $0x8, 0x140(%rdi)
jne 0x37586
movq $0x0, 0x228(%rdi)
cmpq $0x0, 0x2b0(%rdi)
je 0x37591
retq
movq %rdx, 0x2b0(%rdi)
jmpq *0x210(%rdi)
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_func_clock
void SP_func_clock (edict_t *self)
{
	if (!self->target)
	{
		gi.dprintf("%s with no target at %s\n", self->classname, vtos(self->s.origin));
		G_FreeEdict (self);
		return;
	}

	if ((self->spawnflags & 2) && (!self->count))
	{
		gi.dprintf("%s with no count at %s\n", self->classname, vtos(self->s.origin));
		G_FreeEdict (self);
		return;
	}

	if ((self->spawnflags & 1) && (!self->count))
		self->count = 60*60;;

	func_clock_reset (self);

	self->message = gi.TagMalloc (CLOCK_MESSAGE_SIZE, TAG_LEVEL);

	self->think = func_clock_think;

	if (self->spawnflags & 4)
		self->use = func_clock_use;
	else
		self->nextthink = level.time + 1;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
cmpq $0x0, 0x150(%rdi)
je 0x375d8
movl 0x140(%rbx), %eax
testb $0x2, %al
je 0x375c7
cmpl $0x0, 0x290(%rbx)
je 0x376b7
testb $0x1, %al
jne 0x375ff
movq $0x0, 0x2b0(%rbx)
jmp 0x37621
movq 0x32021(%rip), %rax     # 0x69600
movq 0x8(%rax), %r15
movq 0x138(%rbx), %r14
leaq 0x4(%rbx), %rdi
callq 0x190a0
leaq 0x21144(%rip), %rdi     # 0x5873e
jmp 0x376d9
cmpl $0x0, 0x290(%rbx)
jne 0x37612
movl $0xe10, 0x290(%rbx)     # imm = 0xE10
movq $0x0, 0x2b0(%rbx)
testb $0x1, %al
jne 0x37636
testb $0x2, %al
je 0x37650
movl 0x290(%rbx), %eax
movl %eax, 0x254(%rbx)
xorps %xmm0, %xmm0
jmp 0x37648
movl $0x0, 0x254(%rbx)
cvtsi2ssl 0x290(%rbx), %xmm0
movss %xmm0, 0x2f8(%rbx)
movq 0x31fa9(%rip), %rax     # 0x69600
movl $0x10, %edi
movl $0x2fe, %esi            # imm = 0x2FE
callq *0x108(%rax)
movq %rax, 0x130(%rbx)
movq 0x31d9b(%rip), %rax     # 0x69410
movq %rax, 0x210(%rbx)
testb $0x4, 0x140(%rbx)
jne 0x376a3
movq 0x32714(%rip), %rax     # 0x69da0
movss 0x4(%rax), %xmm0
addss 0x1c88f(%rip), %xmm0    # 0x53f28
movss %xmm0, 0x200(%rbx)
jmp 0x376b1
movq 0x32586(%rip), %rax     # 0x69c30
movq %rax, 0x228(%rbx)
popq %rbx
popq %r14
popq %r15
retq
movq 0x31f42(%rip), %rax     # 0x69600
movq 0x8(%rax), %r15
movq 0x138(%rbx), %r14
leaq 0x4(%rbx), %rdi
callq 0x190a0
leaq 0x2107e(%rip), %rdi     # 0x58757
movq %r14, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq *%r15
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x19a60
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: teleporter_touch
void teleporter_touch (edict_t *self, edict_t *other, cplane_t *plane, csurface_t *surf)
{
	edict_t		*dest;
	int			i;

	if (!other->client)
		return;
	dest = G_Find (NULL, FOFS(targetname), self->target);
	if (!dest)
	{
		gi.dprintf ("Couldn't find destination\n");
		return;
	}

	// unlink to make sure it can't possibly interfere with KillBox
	gi.unlinkentity (other);

	VectorCopy (dest->s.origin, other->s.origin);
	VectorCopy (dest->s.origin, other->s.old_origin);
	other->s.origin[2] += 10;

	// clear the velocity and hold them in place briefly
	VectorClear (other->velocity);
	other->client->ps.pmove.pm_time = 160>>3;		// hold time
	other->client->ps.pmove.pm_flags |= PMF_TIME_TELEPORT;

	// draw the teleport splash at source and on the player
	self->owner->s.event = EV_PLAYER_TELEPORT;
	other->s.event = EV_PLAYER_TELEPORT;

	// set angles
	for (i=0 ; i<3 ; i++)
	{
		other->client->ps.pmove.delta_angles[i] = ANGLE2SHORT(dest->s.angles[i] - other->client->resp.cmd_angles[i]);
	}

	VectorClear (other->s.angles);
	VectorClear (other->client->ps.viewangles);
	VectorClear (other->client->v_angle);

	// kill anything at the destination
	KillBox (other);

	gi.linkentity (other);
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
cmpq $0x0, 0x58(%rsi)
je 0x37836
movq %rsi, %rbx
movq %rdi, %r15
movq 0x150(%rdi), %rdx
xorl %edi, %edi
movl $0x158, %esi            # imm = 0x158
callq 0x19430
testq %rax, %rax
je 0x37842
movq %rax, %r14
movq 0x31ed0(%rip), %rax     # 0x69600
movq %rbx, %rdi
movq %rax, %r12
callq *0x98(%rax)
movss 0x4(%r14), %xmm0
movss %xmm0, 0x4(%rbx)
movss 0x8(%r14), %xmm0
movss %xmm0, 0x8(%rbx)
movss 0xc(%r14), %xmm0
movss %xmm0, 0xc(%rbx)
movss 0x4(%r14), %xmm1
movss %xmm1, 0x1c(%rbx)
movss 0x8(%r14), %xmm1
movss %xmm1, 0x20(%rbx)
movss 0xc(%r14), %xmm1
movss %xmm1, 0x24(%rbx)
addss 0x1c78e(%rip), %xmm0    # 0x53f14
movss %xmm0, 0xc(%rbx)
movl $0x0, 0x1c8(%rbx)
movq $0x0, 0x1c0(%rbx)
movq 0x58(%rbx), %rax
movb $0x14, 0x11(%rax)
orb $0x20, 0x10(%rax)
movq 0x110(%r15), %rcx
movl $0x6, %edx
movl %edx, 0x50(%rcx)
movl %edx, 0x50(%rbx)
xorl %ecx, %ecx
movss 0x1d558(%rip), %xmm0    # 0x54d20
movss 0x1d554(%rip), %xmm1    # 0x54d24
movss 0x10(%r14,%rcx,4), %xmm2
subss 0xdf8(%rax,%rcx,4), %xmm2
mulss %xmm0, %xmm2
divss %xmm1, %xmm2
cvttss2si %xmm2, %edx
movw %dx, 0x14(%rax,%rcx,2)
incq %rcx
cmpq $0x3, %rcx
jne 0x377d0
xorl %ecx, %ecx
movl %ecx, 0x18(%rbx)
movq %rcx, 0x10(%rbx)
movl %ecx, 0x24(%rax)
movq %rcx, 0x1c(%rax)
movl %ecx, 0xec4(%rax)
movq %rcx, 0xebc(%rax)
movq %rbx, %rdi
callq 0x18a90
movq %rbx, %rdi
movq %r12, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmpq *0x90(%rax)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq 0x31db7(%rip), %rax     # 0x69600
movq 0x8(%rax), %rcx
leaq 0x20f1b(%rip), %rdi     # 0x5876f
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
jmpq *%rcx
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_teleporter
void SP_misc_teleporter (edict_t *ent)
{
	edict_t		*trig;

	if (!ent->target)
	{
		gi.dprintf ("teleporter without a target.\n");
		G_FreeEdict (ent);
		return;
	}

	gi.setmodel (ent, "models/objects/dmspot/tris.md2");
	ent->s.skinnum = 1;
	ent->s.effects = EF_TELEPORTER;
	ent->s.sound = gi.soundindex ("world/amb10.wav");
	ent->solid = SOLID_BBOX;

	VectorSet (ent->mins, -32, -32, -24);
	VectorSet (ent->maxs, 32, 32, -16);
	gi.linkentity (ent);

	trig = G_Spawn ();
	trig->touch = teleporter_touch;
	trig->solid = SOLID_TRIGGER;
	trig->target = ent->target;
	trig->owner = ent;
	VectorCopy (ent->s.origin, trig->s.origin);
	VectorSet (trig->mins, -8, -8, 8);
	VectorSet (trig->maxs, 8, 8, 24);
	gi.linkentity (trig);
	
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
cmpq $0x0, 0x150(%rdi)
je 0x3795e
movq 0x31d81(%rip), %r14     # 0x69600
leaq 0x20f22(%rip), %rsi     # 0x587a8
movq %rbx, %rdi
callq *0x58(%r14)
movabsq $0x2000000000001, %rax  # imm = 0x2000000000001
movq %rax, 0x3c(%rbx)
leaq 0x20f25(%rip), %rdi     # 0x587c7
callq *0x48(%r14)
movl %eax, 0x4c(%rbx)
movl $0x2, 0x108(%rbx)
movaps 0x20a46(%rip), %xmm0    # 0x58300
movups %xmm0, 0xcc(%rbx)
movabsq $-0x3e7fffffbe000000, %rax # imm = 0xC180000042000000
movq %rax, 0xdc(%rbx)
movq %rbx, %rdi
callq *0x90(%r14)
callq 0x19710
movq 0x32100(%rip), %rcx     # 0x699e8
movq %rcx, 0x220(%rax)
movl $0x1, 0x108(%rax)
movq 0x150(%rbx), %rcx
movq %rcx, 0x150(%rax)
movq %rbx, 0x110(%rax)
movss 0x4(%rbx), %xmm0
movss %xmm0, 0x4(%rax)
movss 0x8(%rbx), %xmm0
movss %xmm0, 0x8(%rax)
movss 0xc(%rbx), %xmm0
movss %xmm0, 0xc(%rax)
movaps 0x209dd(%rip), %xmm0    # 0x58310
movups %xmm0, 0xcc(%rax)
movabsq $0x41c0000041000000, %rcx # imm = 0x41C0000041000000
movq %rcx, 0xdc(%rax)
movq %rax, %rdi
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *0x90(%rax)
movq 0x31c9b(%rip), %rcx     # 0x69600
leaq 0x20e1e(%rip), %rdi     # 0x5878a
xorl %eax, %eax
callq *0x8(%rcx)
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x19a60
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_misc.c
// Function: SP_misc_teleporter_dest
void SP_misc_teleporter_dest (edict_t *ent)
{
	if (!(ent->spawnflags & 1))
		gi.setmodel (ent, "models/objects/dmspot/tris.md2");

	ent->s.skinnum = 0;

	if (!(ent->spawnflags & 2))
	{
		ent->solid = SOLID_BBOX;
	//	ent->s.effects |= EF_FLIES;
	}
	VectorSet (ent->mins, -32, -32, -24);
	VectorSet (ent->maxs, 32, 32, -16);
	gi.linkentity (ent);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
testb $0x1, 0x140(%rdi)
jne 0x379a1
movq 0x31c6c(%rip), %rax     # 0x69600
leaq 0x20e0d(%rip), %rsi     # 0x587a8
movq %rbx, %rdi
callq *0x58(%rax)
movl $0x0, 0x3c(%rbx)
testb $0x2, 0x140(%rbx)
jne 0x379bb
movl $0x2, 0x108(%rbx)
movaps 0x2093e(%rip), %xmm0    # 0x58300
movups %xmm0, 0xcc(%rbx)
movabsq $-0x3e7fffffbe000000, %rax # imm = 0xC180000042000000
movq %rax, 0xdc(%rbx)
movq 0x31c1f(%rip), %rax     # 0x69600
movq %rbx, %rdi
popq %rbx
jmpq *0x90(%rax)
nop
// File: /workspace/github_c_makefile_star2_O1/QwazyWabbitWOS[P]lmctf60/g_phys.c
// Function: SV_RunThink
qboolean SV_RunThink (edict_t *ent)
{
	float	thinktime;

	thinktime = ent->nextthink;
	if (thinktime <= 0)
		return true;
	if (thinktime > level.time+0.001)
		return true;
	
	ent->nextthink = 0;
	if (!ent->think) {
		gi.error("NULL ent->think");
		return false;
	}
	ent->think (ent);

	return false;
}

// Assembly:
pushq %rbx
movss 0x200(%rdi), %xmm0
movl $0x1, %ebx
xorps %xmm1, %xmm1
ucomiss %xmm0, %xmm1
jae 0x37af1
cvtss2sd %xmm0, %xmm0
movq 0x322f6(%rip), %rax     # 0x69da0
xorps %xmm1, %xmm1
cvtss2sd 0x4(%rax), %xmm1
addsd 0x20d1e(%rip), %xmm1    # 0x587d8
ucomisd %xmm1, %xmm0
ja 0x37af1
movl $0x0, 0x200(%rdi)
movq 0x210(%rdi), %rax
testq %rax, %rax
je 0x37adc
callq *%rax
xorl %ebx, %ebx
jmp 0x37af1
movq 0x31b1d(%rip), %rcx     # 0x69600
leaq 0x20d4a(%rip), %rdi     # 0x58834
xorl %ebx, %ebx
xorl %eax, %eax
callq *0x38(%rcx)
movl %ebx, %eax
popq %rbx
retq