LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SP_info_player_start
void SP_info_player_start(edict_t *self)
{
	if (!coop->value)
		return;
	if(Q_stricmp(level.mapname, "security") == 0)
	{
		// invoke one of our gross, ugly, disgusting hacks
		self->think = SP_CreateCoopSpots;
		self->nextthink = level.time + FRAMETIME;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq 0x2cd0d(%rip), %rax     # 0x82f60
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x56267
jp 0x56267
jmp 0x562b5
movq 0x2cb32(%rip), %rdi     # 0x82da0
addq $0x48, %rdi
leaq 0x1db19(%rip), %rsi     # 0x73d92
callq 0x186f0
cmpl $0x0, %eax
jne 0x562b5
movq -0x8(%rbp), %rax
leaq 0x32(%rip), %rcx        # 0x562c0
movq %rcx, 0x210(%rax)
movss 0x19ff7(%rip), %xmm0    # 0x70294
movq 0x2cafc(%rip), %rax     # 0x82da0
addss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x200(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SP_CreateCoopSpots
static void SP_CreateCoopSpots (edict_t *self)
{
	edict_t	*spot;

	if(Q_stricmp(level.mapname, "security") == 0)
	{
		spot = G_Spawn();
		spot->classname = "info_player_coop";
		spot->s.origin[0] = 188 - 64;
		spot->s.origin[1] = -164;
		spot->s.origin[2] = 80;
		spot->targetname = "jail3";
		spot->s.angles[1] = 90;

		spot = G_Spawn();
		spot->classname = "info_player_coop";
		spot->s.origin[0] = 188 + 64;
		spot->s.origin[1] = -164;
		spot->s.origin[2] = 80;
		spot->targetname = "jail3";
		spot->s.angles[1] = 90;

		spot = G_Spawn();
		spot->classname = "info_player_coop";
		spot->s.origin[0] = 188 + 128;
		spot->s.origin[1] = -164;
		spot->s.origin[2] = 80;
		spot->targetname = "jail3";
		spot->s.angles[1] = 90;

		return;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq 0x2cacd(%rip), %rdi     # 0x82da0
addq $0x48, %rdi
leaq 0x1dab4(%rip), %rsi     # 0x73d92
callq 0x186f0
cmpl $0x0, %eax
jne 0x5643f
callq 0x19950
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x1eb74(%rip), %rcx     # 0x74e74
movq %rcx, 0x138(%rax)
movq -0x10(%rbp), %rax
movss 0x1b109(%rip), %xmm0    # 0x7141c
movss %xmm0, 0x4(%rax)
movq -0x10(%rbp), %rax
movss 0x200d8(%rip), %xmm0    # 0x763fc
movss %xmm0, 0x8(%rax)
movq -0x10(%rbp), %rax
movss 0x200c3(%rip), %xmm0    # 0x763f8
movss %xmm0, 0xc(%rax)
movq -0x10(%rbp), %rax
leaq 0x20fbe(%rip), %rcx     # 0x77303
movq %rcx, 0x158(%rax)
movq -0x10(%rbp), %rax
movss 0x1b0cc(%rip), %xmm0    # 0x71424
movss %xmm0, 0x14(%rax)
callq 0x19950
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x1eb03(%rip), %rcx     # 0x74e74
movq %rcx, 0x138(%rax)
movq -0x10(%rbp), %rax
movss 0x20080(%rip), %xmm0    # 0x76404
movss %xmm0, 0x4(%rax)
movq -0x10(%rbp), %rax
movss 0x20067(%rip), %xmm0    # 0x763fc
movss %xmm0, 0x8(%rax)
movq -0x10(%rbp), %rax
movss 0x20052(%rip), %xmm0    # 0x763f8
movss %xmm0, 0xc(%rax)
movq -0x10(%rbp), %rax
leaq 0x20f4d(%rip), %rcx     # 0x77303
movq %rcx, 0x158(%rax)
movq -0x10(%rbp), %rax
movss 0x1b05b(%rip), %xmm0    # 0x71424
movss %xmm0, 0x14(%rax)
callq 0x19950
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x1ea92(%rip), %rcx     # 0x74e74
movq %rcx, 0x138(%rax)
movq -0x10(%rbp), %rax
movss 0x2000b(%rip), %xmm0    # 0x76400
movss %xmm0, 0x4(%rax)
movq -0x10(%rbp), %rax
movss 0x1fff6(%rip), %xmm0    # 0x763fc
movss %xmm0, 0x8(%rax)
movq -0x10(%rbp), %rax
movss 0x1ffe1(%rip), %xmm0    # 0x763f8
movss %xmm0, 0xc(%rax)
movq -0x10(%rbp), %rax
leaq 0x20edc(%rip), %rcx     # 0x77303
movq %rcx, 0x158(%rax)
movq -0x10(%rbp), %rax
movss 0x1afea(%rip), %xmm0    # 0x71424
movss %xmm0, 0x14(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SP_info_player_deathmatch
void SP_info_player_deathmatch(edict_t *self)
{
	if (!deathmatch->value)
	{
		G_FreeEdict (self);
		return;
	}
	SP_misc_teleporter_dest (self);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq 0x2ca5d(%rip), %rax     # 0x82ec0
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x56480
jp 0x56480
movq -0x8(%rbp), %rdi
callq 0x19cd0
jmp 0x56489
movq -0x8(%rbp), %rdi
callq 0x18550
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SP_FixCoopSpots
static void SP_FixCoopSpots (edict_t *self)
{
	edict_t	*spot;
	vec3_t	d;

	spot = NULL;

	while(1)
	{
		spot = G_Find(spot, FOFS(classname), "info_player_start");
		if (!spot)
			return;
		if (!spot->targetname)
			continue;
		VectorSubtract(self->s.origin, spot->s.origin, d);
		if (VectorLength(d) < 384)
		{
			if ((!self->targetname) || Q_stricmp(self->targetname, spot->targetname) != 0)
			{
//				gi.dprintf("FixCoopSpots changed %s at %s targetname from %s to %s\n", self->classname, vtos(self->s.origin), self->targetname, spot->targetname);
				self->targetname = spot->targetname;
			}
			return;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %eax, %eax
addq $0x138, %rax            # imm = 0x138
movl %eax, %esi
leaq 0x19e60(%rip), %rdx     # 0x70539
callq 0x19660
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x566ee
jmp 0x567a7
movq -0x10(%rbp), %rax
cmpq $0x0, 0x158(%rax)
jne 0x566fe
jmp 0x566c4
movq -0x8(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x10(%rbp), %rax
subss 0x4(%rax), %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
subss 0x8(%rax), %xmm0
movss %xmm0, -0x18(%rbp)
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x10(%rbp), %rax
subss 0xc(%rax), %xmm0
movss %xmm0, -0x14(%rbp)
leaq -0x1c(%rbp), %rdi
callq 0x194e0
movaps %xmm0, %xmm1
movss 0x1fcb1(%rip), %xmm0    # 0x76408
ucomiss %xmm1, %xmm0
jbe 0x567a2
movq -0x8(%rbp), %rax
cmpq $0x0, 0x158(%rax)
je 0x5678a
movq -0x8(%rbp), %rax
movq 0x158(%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x158(%rax), %rsi
callq 0x186f0
cmpl $0x0, %eax
je 0x567a0
movq -0x10(%rbp), %rax
movq 0x158(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x158(%rax)
jmp 0x567a7
jmp 0x566c4
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SP_info_player_red
void SP_info_player_red(edict_t *self)
{
	vec3_t	end, angles;
	
	// If we have no facing for this spawn point...
	//  Turn it to face the flag
	if (!self->s.angles[1] && redflag)
	{
		VectorSubtract(redflag->s.origin, self->s.origin, end);
		vectoangles(end, angles);
		
		self->s.angles[1] = angles[1];
	}
	self->classname = "info_player_red";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x56852
jp 0x56852
movq 0x2c01e(%rip), %rax     # 0x827f8
cmpq $0x0, (%rax)
je 0x56852
movq 0x2c011(%rip), %rax     # 0x827f8
movq (%rax), %rax
movss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
subss 0x4(%rax), %xmm0
movss %xmm0, -0x14(%rbp)
movq 0x2bff4(%rip), %rax     # 0x827f8
movq (%rax), %rax
movss 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
subss 0x8(%rax), %xmm0
movss %xmm0, -0x10(%rbp)
movq 0x2bfd7(%rip), %rax     # 0x827f8
movq (%rax), %rax
movss 0xc(%rax), %xmm0
movq -0x8(%rbp), %rax
subss 0xc(%rax), %xmm0
movss %xmm0, -0xc(%rbp)
leaq -0x14(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x192a0
movss -0x1c(%rbp), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x14(%rax)
movq -0x8(%rbp), %rax
leaq 0x1b6d6(%rip), %rcx     # 0x71f33
movq %rcx, 0x138(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SP_info_player_blue
void SP_info_player_blue(edict_t *self)
{
	vec3_t	end, angles;
	
	// If we have no facing for this spawn point...
	//  Turn it to face the flag
	if (!self->s.angles[1] && blueflag)
	{
		VectorSubtract(blueflag->s.origin, self->s.origin, end);
		vectoangles(end, angles);
		
		self->s.angles[1] = angles[1];
	}
	self->classname = "info_player_blue";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movss 0x14(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x56912
jp 0x56912
movq 0x2bfc6(%rip), %rax     # 0x82860
cmpq $0x0, (%rax)
je 0x56912
movq 0x2bfb9(%rip), %rax     # 0x82860
movq (%rax), %rax
movss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
subss 0x4(%rax), %xmm0
movss %xmm0, -0x14(%rbp)
movq 0x2bf9c(%rip), %rax     # 0x82860
movq (%rax), %rax
movss 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
subss 0x8(%rax), %xmm0
movss %xmm0, -0x10(%rbp)
movq 0x2bf7f(%rip), %rax     # 0x82860
movq (%rax), %rax
movss 0xc(%rax), %xmm0
movq -0x8(%rbp), %rax
subss 0xc(%rax), %xmm0
movss %xmm0, -0xc(%rbp)
leaq -0x14(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x192a0
movss -0x1c(%rbp), %xmm0
movq -0x8(%rbp), %rax
movss %xmm0, 0x14(%rax)
movq -0x8(%rbp), %rax
leaq 0x1b626(%rip), %rcx     # 0x71f43
movq %rcx, 0x138(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: IsFemale
qboolean IsFemale (edict_t *ent)
{
	char		*info;

	if (!ent->client)
		return false;

	info = Info_ValueForKey (ent->client->pers.userinfo, "gender");
	if (info[0] == 'f' || info[0] == 'F')
		return true;
	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x58(%rax)
jne 0x56980
movl $0x0, -0x4(%rbp)
jmp 0x569c7
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdi
addq $0xc0, %rdi
leaq 0x1fc8c(%rip), %rsi     # 0x76622
callq 0x18cb0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x66, %eax
je 0x569b7
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x46, %eax
jne 0x569c0
movl $0x1, -0x4(%rbp)
jmp 0x569c7
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: IsNeutral
qboolean IsNeutral (edict_t *ent)
{
	char		*info;

	if (!ent->client)
		return false;

	info = Info_ValueForKey (ent->client->pers.userinfo, "gender");
	if (info[0] != 'f' && info[0] != 'F' && info[0] != 'm' && info[0] != 'M')
		return true;
	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x58(%rax)
jne 0x569f0
movl $0x0, -0x4(%rbp)
jmp 0x56a4f
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdi
addq $0xc0, %rdi
leaq 0x1fc1c(%rip), %rsi     # 0x76622
callq 0x18cb0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x66, %eax
je 0x56a48
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x46, %eax
je 0x56a48
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x6d, %eax
je 0x56a48
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x4d, %eax
je 0x56a48
movl $0x1, -0x4(%rbp)
jmp 0x56a4f
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: InitClientPersistent
void InitClientPersistent (gclient_t *client)
{
	gitem_t		*item;

	memset (&client->pers, 0, sizeof(client->pers));
	
	// CTF CODE -- LM_JORM
	item = FindItem("Grappling Hook");
	client->pers.inventory[ITEM_INDEX(item)] = 1;
	// END CTF CODE -- LM_JORM
	
	
	item = FindItem("Blaster");
	client->pers.selected_item = ITEM_INDEX(item);
	client->pers.inventory[client->pers.selected_item] = 1;

	client->pers.weapon = item;

	client->pers.health			= 100;
	client->pers.max_health		= 100;

	client->pers.max_bullets	= 200;
	client->pers.max_shells		= 100;
	client->pers.max_rockets	= 50;
	client->pers.max_grenades	= 50;
	client->pers.max_cells		= 200;
	client->pers.max_slugs		= 50;

	client->pers.connected = true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
addq $0xc0, %rdi
xorl %esi, %esi
movl $0x698, %edx            # imm = 0x698
callq 0x188f0
leaq 0x1802d(%rip), %rdi     # 0x707d7
callq 0x18a90
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x2a67a(%rip), %rcx     # 0x82e40
subq %rcx, %rax
movl $0x88, %ecx
cqto
idivq %rcx
movq %rax, %rcx
movq -0x18(%rbp), %rax
movl $0x1, 0x318(%rax,%rcx,4)
leaq 0x1aedf(%rip), %rdi     # 0x736cb
callq 0x18a90
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x2a640(%rip), %rcx     # 0x82e40
subq %rcx, %rax
movl $0x88, %ecx
cqto
idivq %rcx
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x314(%rax)
movq -0x8(%rbp), %rax
movq -0x8(%rbp), %rcx
movslq 0x314(%rcx), %rcx
movl $0x1, 0x318(%rax,%rcx,4)
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x730(%rax)
movq -0x8(%rbp), %rax
movl $0x64, 0x308(%rax)
movq -0x8(%rbp), %rax
movl $0x64, 0x30c(%rax)
movq -0x8(%rbp), %rax
movl $0xc8, 0x718(%rax)
movq -0x8(%rbp), %rax
movl $0x64, 0x71c(%rax)
movq -0x8(%rbp), %rax
movl $0x32, 0x720(%rax)
movq -0x8(%rbp), %rax
movl $0x32, 0x724(%rax)
movq -0x8(%rbp), %rax
movl $0xc8, 0x728(%rax)
movq -0x8(%rbp), %rax
movl $0x32, 0x72c(%rax)
movq -0x8(%rbp), %rax
movl $0x1, 0x304(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: InitClientResp
void InitClientResp (gclient_t *client)
{
	//surt
	//	  int teamnum, radio, extra_flags;
	//	  qboolean	goodskin;	// Flags that skin has been approved, no need to forcecommand
	//	  int 		pingalertfloor;
	//	  int 		pingalertceiling;
	//	  int 	compass;
	stats_player_s *playertemp;
	
	ctftemp = client->ctf;
	playertemp = client->p_stats_player;
	
	memset (&client->resp, 0, sizeof(client->resp));
	client->resp.enterframe = level.framenum;
	
	client->ctf = ctftemp;
	client->p_stats_player = playertemp;

	if ((int)ctfflags->value & CTF_TEAM_RESET)
	{
		//if (client->ctf.teamnum != CTF_TEAM_OBSERVER)
		//bat
		if (client->ctf.teamnum != CTF_TEAM_OBSERVER && 
			client->ctf.teamnum != CTF_TEAM_OBSERVER_RED &&
			client->ctf.teamnum != CTF_TEAM_OBSERVER_BLUE)
				client->ctf.teamnum = CTF_TEAM_UNDEFINED; // LM_JORM -- This will cause us to be on a new team
	}
	//surt above is allowed as a special case for now, otherwise only set teamnum
	//in ctf_SetEntTeam
	
	client->resp.coop_respawn = client->pers;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
addq $0x1100, %rsi           # imm = 0x1100
leaq 0x5288a(%rip), %rdi     # 0xab178
movl $0x8038, %edx           # imm = 0x8038
callq 0x18dc0
movq -0x8(%rbp), %rax
movq 0x9138(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
addq $0x758, %rdi            # imm = 0x758
xorl %esi, %esi
movl $0x6b0, %edx            # imm = 0x6B0
callq 0x188f0
movq 0x2a47b(%rip), %rax     # 0x82da0
movl (%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xdf0(%rax)
movq -0x8(%rbp), %rdi
addq $0x1100, %rdi           # imm = 0x1100
leaq 0x52835(%rip), %rsi     # 0xab178
movl $0x8038, %edx           # imm = 0x8038
callq 0x18dc0
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x9138(%rax)
movq 0x2a1f5(%rip), %rax     # 0x82b58
movq (%rax), %rax
cvttss2si 0x20(%rax), %eax
andl $0x4, %eax
cmpl $0x0, %eax
je 0x589aa
movq -0x8(%rbp), %rax
cmpl $-0x1, 0x1100(%rax)
je 0x589a8
movq -0x8(%rbp), %rax
cmpl $-0x3, 0x1100(%rax)
je 0x589a8
movq -0x8(%rbp), %rax
cmpl $-0x2, 0x1100(%rax)
je 0x589a8
movq -0x8(%rbp), %rax
movl $0x0, 0x1100(%rax)
jmp 0x589aa
movq -0x8(%rbp), %rdi
addq $0x758, %rdi            # imm = 0x758
movq -0x8(%rbp), %rsi
addq $0xc0, %rsi
movl $0x698, %edx            # imm = 0x698
callq 0x18dc0
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SaveClientData
void SaveClientData (void)
{
	int		i;
	edict_t	*ent;

	for (i=0 ; i<game.maxclients ; i++)
	{
		ent = &g_edicts[1+i];
		if (!ent->inuse)
			continue;
		game.clients[i].pers.health = ent->health;
		game.clients[i].pers.max_health = ent->max_health;
		game.clients[i].pers.savedFlags = (ent->flags & (FL_GODMODE|FL_NOTARGET|FL_POWER_ARMOR));
		if (coop->value)
			game.clients[i].pers.score = ent->client->resp.score;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
movq 0x2a35b(%rip), %rcx     # 0x82d40
cmpl 0x610(%rcx), %eax
jge 0x58b06
movq 0x29b60(%rip), %rax     # 0x82558
movq (%rax), %rax
movl -0x4(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
imulq $0x4a8, %rcx, %rcx      # imm = 0x4A8
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x60(%rax)
jne 0x58a21
jmp 0x58af8
movq -0x10(%rbp), %rax
movl 0x254(%rax), %ecx
movq 0x2a30e(%rip), %rax     # 0x82d40
movq 0x408(%rax), %rax
movslq -0x4(%rbp), %rdx
imulq $0x9140, %rdx, %rdx     # imm = 0x9140
addq %rdx, %rax
movl %ecx, 0x308(%rax)
movq -0x10(%rbp), %rax
movl 0x258(%rax), %ecx
movq 0x2a2e2(%rip), %rax     # 0x82d40
movq 0x408(%rax), %rax
movslq -0x4(%rbp), %rdx
imulq $0x9140, %rdx, %rdx     # imm = 0x9140
addq %rdx, %rax
movl %ecx, 0x30c(%rax)
movq -0x10(%rbp), %rax
movl 0x11c(%rax), %ecx
andl $0x1030, %ecx           # imm = 0x1030
movq 0x2a2b0(%rip), %rax     # 0x82d40
movq 0x408(%rax), %rax
movslq -0x4(%rbp), %rdx
imulq $0x9140, %rdx, %rdx     # imm = 0x9140
addq %rdx, %rax
movl %ecx, 0x310(%rax)
movq 0x2a4ae(%rip), %rax     # 0x82f60
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x58ac6
jp 0x58ac6
jmp 0x58af6
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movl 0xdf4(%rax), %ecx
movq 0x2a265(%rip), %rax     # 0x82d40
movq 0x408(%rax), %rax
movslq -0x4(%rbp), %rdx
imulq $0x9140, %rdx, %rdx     # imm = 0x9140
addq %rdx, %rax
movl %ecx, 0x744(%rax)
jmp 0x58af8
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x589db
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: FetchClientEntData
void FetchClientEntData (edict_t *ent)
{
	ent->health = ent->client->pers.health;
	ent->max_health = ent->client->pers.max_health;
	ent->flags |= ent->client->pers.savedFlags;
	if (coop->value)
		ent->client->resp.score = ent->client->pers.score;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl 0x308(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x254(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl 0x30c(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x258(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl 0x310(%rax), %ecx
movq -0x8(%rbp), %rax
orl 0x11c(%rax), %ecx
movl %ecx, 0x11c(%rax)
movq 0x2a3f3(%rip), %rax     # 0x82f60
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x58b81
jp 0x58b81
jmp 0x58b9d
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl 0x744(%rax), %ecx
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl %ecx, 0xdf4(%rax)
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: PlayersRangeFromSpot
float	PlayersRangeFromSpot (edict_t *spot)
{
	edict_t	*player;
	float	bestplayerdistance;
	vec3_t	v;
	int		n;
	float	playerdistance;


	bestplayerdistance = 9999999;

	for (n = 1; n <= maxclients->value; n++)
	{
		player = &g_edicts[n];

		if (!player->inuse)
			continue;

		if (player->health <= 0)
			continue;

		VectorSubtract (spot->s.origin, player->s.origin, v);
		playerdistance = VectorLength (v);

		if (playerdistance < bestplayerdistance)
			bestplayerdistance = playerdistance;
	}

	return bestplayerdistance;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movss 0x176d8(%rip), %xmm0    # 0x7028c
movss %xmm0, -0x14(%rbp)
movl $0x1, -0x24(%rbp)
cvtsi2ssl -0x24(%rbp), %xmm1
movq 0x29964(%rip), %rax     # 0x82530
movq (%rax), %rax
movss 0x20(%rax), %xmm0
ucomiss %xmm1, %xmm0
jb 0x58c90
movq 0x29974(%rip), %rax     # 0x82558
movq (%rax), %rax
movslq -0x24(%rbp), %rcx
imulq $0x4a8, %rcx, %rcx      # imm = 0x4A8
addq %rcx, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x60(%rax)
jne 0x58c05
jmp 0x58c82
movq -0x10(%rbp), %rax
cmpl $0x0, 0x254(%rax)
jg 0x58c14
jmp 0x58c82
movq -0x8(%rbp), %rax
movss 0x4(%rax), %xmm0
movq -0x10(%rbp), %rax
subss 0x4(%rax), %xmm0
movss %xmm0, -0x20(%rbp)
movq -0x8(%rbp), %rax
movss 0x8(%rax), %xmm0
movq -0x10(%rbp), %rax
subss 0x8(%rax), %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm0
movq -0x10(%rbp), %rax
subss 0xc(%rax), %xmm0
movss %xmm0, -0x18(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x194e0
movss %xmm0, -0x28(%rbp)
movss -0x28(%rbp), %xmm1
movss -0x14(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x58c80
movss -0x28(%rbp), %xmm0
movss %xmm0, -0x14(%rbp)
jmp 0x58c82
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x58bc0
movss -0x14(%rbp), %xmm0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SelectRandomDeathmatchSpawnPoint
edict_t *SelectRandomDeathmatchSpawnPoint (void)
{
	edict_t	*spot, *spot1, *spot2;
	int		count = 0;
	int		selection;
	float	range, range1, range2;

	spot = NULL;
	range1 = range2 = 99999;
	spot1 = spot2 = NULL;

	while ((spot = G_Find (spot, FOFS(classname), "info_player_deathmatch")) != NULL)
	{
		count++;
		range = PlayersRangeFromSpot(spot);
		if (range < range1)
		{
			range1 = range;
			spot1 = spot;
		}
		else if (range < range2)
		{
			range2 = range;
			spot2 = spot;
		}
	}

	if (!count)
		return NULL;

	if (count <= 2)
	{
		spot1 = spot2 = NULL;
	}
	else
		count -= 2;

	selection = rand() % count;

	spot = NULL;
	do
	{
		spot = G_Find (spot, FOFS(classname), "info_player_deathmatch");
		if (spot == spot1 || spot == spot2)
			selection++;
	} while(selection--);

	return spot;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movl $0x0, -0x24(%rbp)
movq $0x0, -0x10(%rbp)
movss 0x1d751(%rip), %xmm0    # 0x76410
movss %xmm0, -0x34(%rbp)
movss 0x1d744(%rip), %xmm0    # 0x76410
movss %xmm0, -0x30(%rbp)
movq $0x0, -0x20(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x10(%rbp), %rdi
xorl %eax, %eax
addq $0x138, %rax            # imm = 0x138
movl %eax, %esi
leaq 0x1782c(%rip), %rdx     # 0x70522
callq 0x19660
movq %rax, -0x10(%rbp)
cmpq $0x0, %rax
je 0x58d67
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rdi
callq 0x19640
movss %xmm0, -0x2c(%rbp)
movss -0x2c(%rbp), %xmm1
movss -0x30(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x58d3f
movss -0x2c(%rbp), %xmm0
movss %xmm0, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x58d62
movss -0x2c(%rbp), %xmm1
movss -0x34(%rbp), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x58d60
movss -0x2c(%rbp), %xmm0
movss %xmm0, -0x34(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x58d62
jmp 0x58ce1
cmpl $0x0, -0x24(%rbp)
jne 0x58d7a
movq $0x0, -0x8(%rbp)
jmp 0x58e04
cmpl $0x2, -0x24(%rbp)
jg 0x58d92
movq $0x0, -0x20(%rbp)
movq $0x0, -0x18(%rbp)
jmp 0x58d9b
movl -0x24(%rbp), %eax
subl $0x2, %eax
movl %eax, -0x24(%rbp)
callq 0x19c80
cltd
idivl -0x24(%rbp)
movl %edx, -0x28(%rbp)
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rdi
xorl %eax, %eax
addq $0x138, %rax            # imm = 0x138
movl %eax, %esi
leaq 0x1775e(%rip), %rdx     # 0x70522
callq 0x19660
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
je 0x58de1
movq -0x10(%rbp), %rax
cmpq -0x20(%rbp), %rax
jne 0x58dea
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x58dec
movl -0x28(%rbp), %eax
movl %eax, %ecx
addl $-0x1, %ecx
movl %ecx, -0x28(%rbp)
cmpl $0x0, %eax
jne 0x58daf
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SelectFarthestDeathmatchSpawnPoint
edict_t *SelectFarthestDeathmatchSpawnPoint (void)
{
	edict_t	*bestspot;
	float	bestdistance, bestplayerdistance;
	edict_t	*spot;


	spot = NULL;
	bestspot = NULL;
	bestdistance = 0;
	while ((spot = G_Find (spot, FOFS(classname), "info_player_deathmatch")) != NULL)
	{
		bestplayerdistance = PlayersRangeFromSpot (spot);

		if (bestplayerdistance > bestdistance)
		{
			bestspot = spot;
			bestdistance = bestplayerdistance;
		}
	}

	if (bestspot)
	{
		return bestspot;
	}

	// if there is a player just spawned on each and every start spot
	// we have no choice to turn one into a telefrag meltdown
	spot = G_Find (NULL, FOFS(classname), "info_player_deathmatch");

	return spot;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq $0x0, -0x20(%rbp)
movq $0x0, -0x10(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x14(%rbp)
movq -0x20(%rbp), %rdi
xorl %eax, %eax
addq $0x138, %rax            # imm = 0x138
movl %eax, %esi
leaq 0x176dd(%rip), %rdx     # 0x70522
callq 0x19660
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
je 0x58e81
movq -0x20(%rbp), %rdi
callq 0x19640
movss %xmm0, -0x18(%rbp)
movss -0x18(%rbp), %xmm0
ucomiss -0x14(%rbp), %xmm0
jbe 0x58e7f
movq -0x20(%rbp), %rax
movq %rax, -0x10(%rbp)
movss -0x18(%rbp), %xmm0
movss %xmm0, -0x14(%rbp)
jmp 0x58e30
cmpq $0x0, -0x10(%rbp)
je 0x58e92
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x58eb9
xorl %eax, %eax
movl %eax, %edi
movq %rdi, %rax
addq $0x138, %rax            # imm = 0x138
movl %eax, %esi
leaq 0x1767a(%rip), %rdx     # 0x70522
callq 0x19660
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SelectTeamSpawnPoint
edict_t *SelectTeamSpawnPoint (edict_t *ent)
{
	edict_t	*bestspot;
	float	bestdistance, bestplayerdistance;
	edict_t	*spot;
	char	*spawntype;
	
	if (ent->client->ctf.teamnum == CTF_TEAM_RED) // RED team
		spawntype = "info_player_red";
	else // BLUE team
		spawntype = "info_player_blue";
	
	spot = NULL;
	bestspot = NULL;
	bestdistance = 0;
	while ((spot = G_Find (spot, FOFS(classname), spawntype)) != NULL)
	{
		bestplayerdistance = PlayersRangeFromSpot (spot);
		
		if (bestplayerdistance > bestdistance)
		{
			bestspot = spot;
			bestdistance = bestplayerdistance;
		}
	}
	
	if (bestspot)
	{
		return bestspot;
	}
	
	// if there is a player just spawned on each and every start spot
	// we have no choice to turn one into a telefrag meltdown
	spot = G_Find (NULL, FOFS(classname), spawntype);
	
	return spot;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
cmpl $0x1, 0x1100(%rax)
jne 0x58efa
leaq 0x1903f(%rip), %rax     # 0x71f33
movq %rax, -0x30(%rbp)
jmp 0x58f05
leaq 0x19042(%rip), %rax     # 0x71f43
movq %rax, -0x30(%rbp)
movq $0x0, -0x28(%rbp)
movq $0x0, -0x18(%rbp)
xorps %xmm0, %xmm0
movss %xmm0, -0x1c(%rbp)
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rdx
xorl %eax, %eax
addq $0x138, %rax            # imm = 0x138
movl %eax, %esi
callq 0x19660
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
je 0x58f6b
movq -0x28(%rbp), %rdi
callq 0x19640
movss %xmm0, -0x20(%rbp)
movss -0x20(%rbp), %xmm0
ucomiss -0x1c(%rbp), %xmm0
jbe 0x58f69
movq -0x28(%rbp), %rax
movq %rax, -0x18(%rbp)
movss -0x20(%rbp), %xmm0
movss %xmm0, -0x1c(%rbp)
jmp 0x58f1d
cmpq $0x0, -0x18(%rbp)
je 0x58f7c
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x58fa0
movq -0x30(%rbp), %rdx
xorl %eax, %eax
movl %eax, %edi
movq %rdi, %rax
addq $0x138, %rax            # imm = 0x138
movl %eax, %esi
callq 0x19660
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SelectAnySpawnPoint
edict_t *SelectAnySpawnPoint (edict_t *ent)
{
	float	distance1, distance2;
	edict_t	*spot1, *spot2;
	
	
	if ( (int)(dmflags->value) & DF_SPAWN_FARTHEST)
		spot1 = SelectFarthestDeathmatchSpawnPoint ();
	else
		spot1 = SelectRandomDeathmatchSpawnPoint ();
	
	if (!spot1)
		return NULL;
	
	distance1 = PlayersRangeFromSpot (spot1);
	
	
	spot2 = SelectTeamSpawnPoint(ent);
	if (!spot2) // Do we have any team spawn points?
		return spot1;
	distance2 = PlayersRangeFromSpot (spot2);
	
	if (distance1 > distance2) // Is deathmatch better than team?
		return spot1;
	else
		return spot2;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq 0x29655(%rip), %rax     # 0x82618
movq (%rax), %rax
cvttss2si 0x20(%rax), %eax
andl $0x200, %eax            # imm = 0x200
cmpl $0x0, %eax
je 0x58fe0
callq 0x18110
movq %rax, -0x20(%rbp)
jmp 0x58fe9
callq 0x19090
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x58ffa
movq $0x0, -0x8(%rbp)
jmp 0x59051
movq -0x20(%rbp), %rdi
callq 0x19640
movss %xmm0, -0x14(%rbp)
movq -0x10(%rbp), %rdi
callq 0x194f0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x59026
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x59051
movq -0x28(%rbp), %rdi
callq 0x19640
movss %xmm0, -0x18(%rbp)
movss -0x14(%rbp), %xmm0
ucomiss -0x18(%rbp), %xmm0
jbe 0x59049
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x59051
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: SelectCoopSpawnPoint
edict_t *SelectCoopSpawnPoint (edict_t *ent)
{
	int		index;
	edict_t	*spot = NULL;
	char	*target;

	index = ent->client - game.clients;

	// player 0 starts in normal player spawn point
	if (!index)
		return NULL;

	spot = NULL;

	// assume there are four coop spots at each spawnpoint
	while (1)
	{
		spot = G_Find (spot, FOFS(classname), "info_player_coop");
		if (!spot)
			return NULL;	// we didn't have enough...

		target = spot->targetname;
		if (!target)
			target = "";
		if ( Q_stricmp(game.spawnpoint, target) == 0 )
		{	// this is a coop spawn point for one of the clients here
			index--;
			if (!index)
				return spot;		// this is it
		}
	}


	return spot;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movq 0x29c7d(%rip), %rcx     # 0x82d40
movq 0x408(%rcx), %rcx
subq %rcx, %rax
movl $0x9140, %ecx           # imm = 0x9140
cqto
idivq %rcx
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x590ed
movq $0x0, -0x8(%rbp)
jmp 0x59181
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rdi
xorl %eax, %eax
addq $0x138, %rax            # imm = 0x138
movl %eax, %esi
leaq 0x1bd6a(%rip), %rdx     # 0x74e74
callq 0x19660
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x59124
movq $0x0, -0x8(%rbp)
jmp 0x59181
movq -0x20(%rbp), %rax
movq 0x158(%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x59145
leaq 0x17e3f(%rip), %rax     # 0x70f80
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rsi
movq 0x29bf0(%rip), %rdi     # 0x82d40
addq $0x410, %rdi            # imm = 0x410
callq 0x186f0
cmpl $0x0, %eax
jne 0x5917c
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x5917a
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x59181
jmp 0x5917c
jmp 0x590f5
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: InitBodyQue
void InitBodyQue (void)
{
	int		i;
	edict_t	*ent;

	level.body_que = 0;
	for (i=0; i<BODY_QUEUE_SIZE ; i++)
	{
		ent = G_Spawn();
		ent->classname = "bodyque";
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq 0x299b1(%rip), %rax     # 0x82da0
movl $0x0, 0x150(%rax)
movl $0x0, -0x4(%rbp)
cmpl $0x8, -0x4(%rbp)
jge 0x5942c
callq 0x19950
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
leaq 0x19751(%rip), %rcx     # 0x72b6b
movq %rcx, 0x138(%rax)
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x59400
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: body_die
void body_die (edict_t *self, edict_t *inflictor, edict_t *attacker, int damage, vec3_t point)
{
	int	n;

	if (self->health < -40)
	{
		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);
		self->s.origin[2] -= 48;
		ThrowClientHead (self, damage);
		self->takedamage = DAMAGE_NO;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq %r8, -0x28(%rbp)
movq -0x8(%rbp), %rax
cmpl $-0x28, 0x254(%rax)
jge 0x59514
movq 0x2918d(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x1afbc(%rip), %rdi     # 0x74446
movq 0x2916f(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0x40(%rbp), %rdi
movl %eax, %edx
movq -0x38(%rbp), %rax
movl $0x4, %esi
movss 0x16a41(%rip), %xmm1    # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
movl $0x0, -0x2c(%rbp)
cmpl $0x4, -0x2c(%rbp)
jge 0x594e0
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %edx
leaq 0x1af88(%rip), %rsi     # 0x74456
xorl %ecx, %ecx
callq 0x18960
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x594ba
movq -0x8(%rbp), %rax
movss 0xc(%rax), %xmm0
movss 0x16dbf(%rip), %xmm1    # 0x702b0
subss %xmm1, %xmm0
movss %xmm0, 0xc(%rax)
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x18f30
movq -0x8(%rbp), %rax
movl $0x0, 0x27c(%rax)
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: respawn
void respawn (edict_t *self)
{

	if(matchstate == MATCH_RAILGUN_INPLAY)
	{
		//Drop_All(self);
		self->movetype = MOVETYPE_NOCLIP;
		self->solid = SOLID_NOT;
		self->svflags |= SVF_NOCLIENT;
		self->health = 0;
		return;
	}

	if (deathmatch->value || coop->value)
	{
		// spectator's don't leave bodies
		if (self->movetype != MOVETYPE_NOCLIP)
			CopyToBodyQue (self);
		self->svflags &= ~SVF_NOCLIENT;
		Menu_Free (self); // free the menu rather than lose it during the memset
		PutClientInServer (self);
		// add a teleportation effect
		self->s.event = EV_PLAYER_TELEPORT;

		// hold in place briefly
		self->client->ps.pmove.pm_flags = PMF_TIME_TELEPORT;
		self->client->ps.pmove.pm_time = 14;

		//bat changed to avoid the overflows.
		self->client->respawn_time = level.time;
		//self->client->respawn_time = level.time + (0.2 * Respawn_Count);

		// Set the squadboard status to "respawned"...
		strncpy (self->client->pers.squadStatus, RESPAWNED_STATUS_STR, MAX_STATUS_LEN); // ADC
		self->client->pers.squadStatus[MAX_STATUS_LEN-1] = 0; // ADC

		return;
	}

	// restart the entire server
	gi.AddCommandString ("menu_loadgame\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq 0x28fd5(%rip), %rax     # 0x827d8
cmpl $0x6, (%rax)
jne 0x5984a
movq -0x8(%rbp), %rax
movl $0x1, 0x118(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x108(%rax)
movq -0x8(%rbp), %rax
movl 0xc8(%rax), %ecx
orl $0x1, %ecx
movl %ecx, 0xc8(%rax)
movq -0x8(%rbp), %rax
movl $0x0, 0x254(%rax)
jmp 0x59947
movq 0x2966f(%rip), %rax     # 0x82ec0
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x59881
jp 0x59881
movq 0x296f6(%rip), %rax     # 0x82f60
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x59881
jp 0x59881
jmp 0x59933
movq -0x8(%rbp), %rax
cmpl $0x1, 0x118(%rax)
je 0x59897
movq -0x8(%rbp), %rdi
callq 0x18e90
movq -0x8(%rbp), %rax
movl 0xc8(%rax), %ecx
andl $-0x2, %ecx
movl %ecx, 0xc8(%rax)
movq -0x8(%rbp), %rdi
callq 0x18a00
movq -0x8(%rbp), %rdi
callq 0x18af0
movq -0x8(%rbp), %rax
movl $0x6, 0x50(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movb $0x20, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movb $0xe, 0x11(%rax)
movq 0x294ba(%rip), %rax     # 0x82da0
movss 0x4(%rax), %xmm0
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movss %xmm0, 0xf28(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rdi
addq $0xc0, %rdi
addq $0x220, %rdi            # imm = 0x220
leaq 0x1d73b(%rip), %rsi     # 0x77053
movl $0x20, %edx
callq 0x181e0
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movb $0x0, 0x2ff(%rax)
jmp 0x59947
leaq 0x1d723(%rip), %rdi     # 0x7705d
movq 0x28cbf(%rip), %rax     # 0x82600
callq *0x150(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: Team_To_Join
int Team_To_Join(edict_t *ent)
{
int	red, blue;
edict_t	*player;

	red = blue = 0;
	player = ctf_findplayer(NULL, ent, CTF_TEAM_ANYTEAM);
	while (player)
	{
		if (player->client->ctf.teamnum == CTF_TEAM_RED)
			red++;
		else if (player->client->ctf.teamnum == CTF_TEAM_BLUE)
			blue++;

		player = ctf_findplayer(player, ent, CTF_TEAM_ANYTEAM);
	}


	if(red == blue) // Even teams
	{
		if(redscore > bluescore)
			return(CTF_TEAM_BLUE);
		else 
			return(CTF_TEAM_RED);
	}
	else if(red > blue)
		return(CTF_TEAM_BLUE);
	else // if (blue > red)
		return(CTF_TEAM_RED);

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x18(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x10(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edi
movl $0xfffffffb, %edx       # imm = 0xFFFFFFFB
callq 0x19340
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x5aaa7
movq -0x20(%rbp), %rax
movq 0x58(%rax), %rax
cmpl $0x1, 0x1100(%rax)
jne 0x5aa73
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5aa8f
movq -0x20(%rbp), %rax
movq 0x58(%rax), %rax
cmpl $0x2, 0x1100(%rax)
jne 0x5aa8d
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x5aa8f
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0xfffffffb, %edx       # imm = 0xFFFFFFFB
callq 0x19340
movq %rax, -0x20(%rbp)
jmp 0x5aa50
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
jne 0x5aad5
movq 0x28122(%rip), %rax     # 0x82bd8
movl (%rax), %eax
movq 0x27f89(%rip), %rcx     # 0x82a48
cmpl (%rcx), %eax
jle 0x5aacc
movl $0x2, -0x4(%rbp)
jmp 0x5aaed
movl $0x1, -0x4(%rbp)
jmp 0x5aaed
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
jle 0x5aae6
movl $0x2, -0x4(%rbp)
jmp 0x5aaed
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: ClientSetSkin
void ClientSetSkin(edict_t *ent, char *skin)
{
	char	*newskin, *s;
	int 	playernum;
	
	
	if (!SkinListInUse())
	{
		ClientOldSetSkin(ent, skin);
		return;
	}
	
	// get skin
	s = Info_ValueForKey (ent->client->pers.userinfo, "skin");
	
	if (!SkinValid(ent, skin))
	{
		if (SkinValid(ent, s))
			newskin = s;
		else
			newskin = SkinRandom(ent);
	}
	else
		newskin = skin;
	
	playernum = ent-g_edicts-1;
	
	// combine name and skin into a configstring
	gi.configstring (CS_PLAYERSKINS+playernum, va("%s\\%s", ent->client->pers.netname, newskin) );
	
	
	Info_SetValueForKey (ent->client->pers.userinfo, "skin", newskin);
	ent->client->ctf.goodskin = false; // We need to re-force our skin
	return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, %al
callq 0x18f60
cmpl $0x0, %eax
jne 0x5ab2e
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x19410
jmp 0x5ac33
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rdi
addq $0xc0, %rdi
leaq 0x147ec(%rip), %rsi     # 0x6f330
callq 0x18cb0
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x196c0
cmpl $0x0, %eax
jne 0x5ab8a
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x196c0
cmpl $0x0, %eax
je 0x5ab7b
movq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x5ab88
movq -0x8(%rbp), %rdi
callq 0x187d0
movq %rax, -0x18(%rbp)
jmp 0x5ab92
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x279bb(%rip), %rcx     # 0x82558
movq (%rcx), %rcx
subq %rcx, %rax
movl $0x4a8, %ecx            # imm = 0x4A8
cqto
idivq %rcx
subq $0x1, %rax
movl %eax, -0x24(%rbp)
movq 0x27a45(%rip), %rax     # 0x82600
movq 0x30(%rax), %rax
movq %rax, -0x30(%rbp)
movl -0x24(%rbp), %eax
addl $0x520, %eax            # imm = 0x520
movl %eax, -0x34(%rbp)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rsi
addq $0xc0, %rsi
addq $0x200, %rsi            # imm = 0x200
movq -0x18(%rbp), %rdx
leaq 0x1d188(%rip), %rdi     # 0x77d77
movb $0x0, %al
callq 0x19560
movl -0x34(%rbp), %edi
movq %rax, %rsi
movq -0x30(%rbp), %rax
callq *%rax
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rdi
addq $0xc0, %rdi
movq -0x18(%rbp), %rdx
leaq 0x14714(%rip), %rsi     # 0x6f330
callq 0x185b0
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0x110c(%rax)
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: TeamJoin
void TeamJoin (edict_t *ent)
{
int Old_Team;
int New_Team;

	Old_Team = ent->client->ctf.teamnum;
	New_Team = Team_To_Join(ent);
	
	if(Old_Team > CTF_TEAM_UNDEFINED)
	{
		ctf_SetEntTeam(ent, Old_Team);
		ClientSetSkin(ent, NULL);
	}
	else //they are observing
	{		
		if(Old_Team <= CTF_TEAM_OBSERVER)
		{
			ent->client->ctf.New_Team = New_Team;
			ForceCommand(ent, "spectator 0");
		}
		else
		{
			ctf_SetEntTeam(ent, New_Team);
			ClientSetSkin(ent, NULL);
		}

		//sprintf(DBuffer, "tj t %d p %d r %d", ent->client->ctf.teamnum,
		//	ent->client->pers.spectator, ent->client->resp.spectator);
		//Debug_Show(DBuffer);

		//ForceCommand(ent, "spectator 0");

	}	
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl 0x1100(%rax), %eax
movl %eax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0x18dd0
movl %eax, -0x10(%rbp)
cmpl $0x0, -0xc(%rbp)
jle 0x5b2aa
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x18240
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x19930
jmp 0x5b2ee
cmpl $-0x1, -0xc(%rbp)
jg 0x5b2d3
movl -0x10(%rbp), %ecx
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl %ecx, 0x1104(%rax)
movq -0x8(%rbp), %rdi
leaq 0x16506(%rip), %rsi     # 0x717d2
callq 0x18d80
jmp 0x5b2ec
movq -0x8(%rbp), %rdi
movl -0x10(%rbp), %esi
callq 0x18240
movq -0x8(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x19930
jmp 0x5b2ee
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: CheckBlock
unsigned CheckBlock (void *b, int c)
{
	int	v,i;
	v = 0;
	for (i=0 ; i<c ; i++)
		v+= ((byte *)b)[i];
	return v;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x5be1e
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
movzbl (%rax,%rcx), %eax
addl -0x10(%rbp), %eax
movl %eax, -0x10(%rbp)
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5bdf9
movl -0x10(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_client.c
// Function: Num_Of_Players
int Num_Of_Players(edict_t *ent, int Ctf_Team)
{
int red, blue;
edict_t		*player;

	player = ctf_findplayer(NULL, ent, CTF_TEAM_ANYTEAM);
	
	red = 0;
	blue = 0;

	while (player)
	{
		if(player->client->ctf.teamnum == CTF_TEAM_RED)
			red++;
		else if (player->client->ctf.teamnum == CTF_TEAM_BLUE)
			blue++;
		player = ctf_findplayer(player, ent, CTF_TEAM_ANYTEAM);
	}

	if(Ctf_Team == CTF_TEAM_BLUE)
		return(blue);
	else if(Ctf_Team == CTF_TEAM_RED)
		return(red);
	else
		return(0);

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edi
movl $0xfffffffb, %edx       # imm = 0xFFFFFFFB
callq 0x19340
movq %rax, -0x28(%rbp)
movl $0x0, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x5d55a
movq -0x28(%rbp), %rax
movq 0x58(%rax), %rax
cmpl $0x1, 0x1100(%rax)
jne 0x5d526
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x5d542
movq -0x28(%rbp), %rax
movq 0x58(%rax), %rax
cmpl $0x2, 0x1100(%rax)
jne 0x5d540
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x5d542
movq -0x28(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0xfffffffb, %edx       # imm = 0xFFFFFFFB
callq 0x19340
movq %rax, -0x28(%rbp)
jmp 0x5d503
cmpl $0x2, -0x14(%rbp)
jne 0x5d568
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x5d57d
cmpl $0x1, -0x14(%rbp)
jne 0x5d576
movl -0x18(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x5d57d
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_hud.c
// Function: Cmd_Score_f
void Cmd_Score_f (edict_t *ent)
{
	ent->client->showinventory = false;
	ent->client->showhelp = false;
    ent->client->showctfhud = false;
    ent->client->showmod = false;
    ent->client->showmenu = false;
	ent->client->showsquadboard = false; // ADC

	if (!deathmatch->value && !coop->value)
		return;

	if (ent->client->showscores)
	{
		ent->client->showscores = false;
		return;
	}

	ent->client->showscores = true;
	DeathmatchScoreboard (ent);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xe28(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xe2c(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xf78(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xf74(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xf80(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xe34(%rax)
movq 0x22b51(%rip), %rax     # 0x82ec0
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x6039c
jp 0x6039c
movq 0x22bd8(%rip), %rax     # 0x82f60
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x6039c
jp 0x6039c
jmp 0x603dc
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
cmpl $0x0, 0xe24(%rax)
je 0x603c1
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xe24(%rax)
jmp 0x603dc
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x1, 0xe24(%rax)
movq -0x8(%rbp), %rdi
callq 0x19c90
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_hud.c
// Function: Cmd_Squadboard_f
void Cmd_Squadboard_f (edict_t *ent)
{
	ent->client->showhelp = false;
	ent->client->showinventory = false;
	ent->client->showctfhud = false;
	ent->client->showmod = false;
	ent->client->showmenu = false;
	ent->client->showscores = false;

	if (!deathmatch->value && !coop->value)
		return;

	if (ent->client->showsquadboard)
	{
		ent->client->showsquadboard = false;
		return;
	}

	ent->client->showsquadboard = true;
	Squadboard (ent);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xe2c(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xe28(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xf78(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xf74(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xf80(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xe24(%rax)
movq 0x22a51(%rip), %rax     # 0x82ec0
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x6049c
jp 0x6049c
movq 0x22ad8(%rip), %rax     # 0x82f60
movq (%rax), %rax
movss 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomiss %xmm1, %xmm0
jne 0x6049c
jp 0x6049c
jmp 0x604dc
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
cmpl $0x0, 0xe34(%rax)
je 0x604c1
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x0, 0xe34(%rax)
jmp 0x604dc
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rax
movl $0x1, 0xe34(%rax)
movq -0x8(%rbp), %rdi
callq 0x197a0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)