// File: /workspace/github_c_makefile_star2_O0/QwazyWabbitWOS[P]lmctf60/p_view.c
// Function: P_WorldEffects
void P_WorldEffects (void)
{
	qboolean	breather;
	qboolean	envirosuit;
	int			waterlevel, old_waterlevel;

	if (current_player->movetype == MOVETYPE_NOCLIP)
	{
		current_player->air_finished = level.time + 12;	// don't need air
		return;
	}

	waterlevel = current_player->waterlevel;
	old_waterlevel = current_client->old_waterlevel;
	current_client->old_waterlevel = waterlevel;

	breather = current_client->breather_framenum > level.framenum;
	envirosuit = current_client->enviro_framenum > level.framenum;

	//
	// if just entered a water volume, play a sound
	//
	if (!old_waterlevel && waterlevel)
	{
		PlayerNoise(current_player, current_player->s.origin, PNOISE_SELF);
		if (current_player->watertype & CONTENTS_LAVA)
			gi.sound (current_player, CHAN_BODY, gi.soundindex("player/lava_in.wav"), 1, ATTN_NORM, 0);
		else if (current_player->watertype & CONTENTS_SLIME)
			gi.sound (current_player, CHAN_BODY, gi.soundindex("player/watr_in.wav"), 1, ATTN_NORM, 0);
		else if (current_player->watertype & CONTENTS_WATER)
			gi.sound (current_player, CHAN_BODY, gi.soundindex("player/watr_in.wav"), 1, ATTN_NORM, 0);
		current_player->flags |= FL_INWATER;

		// clear damage_debounce, so the pain sound will play immediately
		current_player->damage_debounce_time = level.time - 1;
	}

	//
	// if just completely exited a water volume, play a sound
	//
	if (old_waterlevel && ! waterlevel)
	{
		PlayerNoise(current_player, current_player->s.origin, PNOISE_SELF);
		gi.sound (current_player, CHAN_BODY, gi.soundindex("player/watr_out.wav"), 1, ATTN_NORM, 0);
		current_player->flags &= ~FL_INWATER;
	}

	//
	// check for head just going under water
	//
	if (old_waterlevel != 3 && waterlevel == 3)
	{
		gi.sound (current_player, CHAN_BODY, gi.soundindex("player/watr_un.wav"), 1, ATTN_NORM, 0);
	}

	//
	// check for head just coming out of water
	//
	if (old_waterlevel == 3 && waterlevel != 3)
	{
		if (current_player->air_finished < level.time)
		{	// gasp for air
			gi.sound (current_player, CHAN_VOICE, gi.soundindex("player/gasp1.wav"), 1, ATTN_NORM, 0);
			PlayerNoise(current_player, current_player->s.origin, PNOISE_SELF);
		}
		else  if (current_player->air_finished < level.time + 11)
		{	// just break surface
			gi.sound (current_player, CHAN_VOICE, gi.soundindex("player/gasp2.wav"), 1, ATTN_NORM, 0);
		}
	}

	//
	// check for drowning
	//
	if (waterlevel == 3)
	{
		// breather or envirosuit give air
		if (breather || envirosuit)
		{
			current_player->air_finished = level.time + 10;

			if (((int)(current_client->breather_framenum - level.framenum) % 25) == 0)
			{
				if (!current_client->breather_sound)
					gi.sound (current_player, CHAN_AUTO, gi.soundindex("player/u_breath1.wav"), 1, ATTN_NORM, 0);
				else
					gi.sound (current_player, CHAN_AUTO, gi.soundindex("player/u_breath2.wav"), 1, ATTN_NORM, 0);
				current_client->breather_sound ^= 1;
				PlayerNoise(current_player, current_player->s.origin, PNOISE_SELF);
				//FIXME: release a bubble?
			}
		}

		// if out of air, start drowning
		if (current_player->air_finished < level.time)
		{	// drown!
			if (current_player->client->next_drown_time < level.time 
				&& current_player->health > 0)
			{
				current_player->client->next_drown_time = level.time + 1;

				// take more damage the longer underwater
				current_player->dmg += 2;
				if (current_player->dmg > 15)
					current_player->dmg = 15;

				// play a gurp sound instead of a normal pain sound
				if (current_player->health <= current_player->dmg)
					gi.sound (current_player, CHAN_VOICE, gi.soundindex("player/drown1.wav"), 1, ATTN_NORM, 0);
				else if (rand()&1)
					gi.sound (current_player, CHAN_VOICE, gi.soundindex("*gurp1.wav"), 1, ATTN_NORM, 0);
				else
					gi.sound (current_player, CHAN_VOICE, gi.soundindex("*gurp2.wav"), 1, ATTN_NORM, 0);

				current_player->pain_debounce_time = level.time;

				T_Damage (current_player, world, world, vec3_origin, current_player->s.origin, vec3_origin, current_player->dmg, 0, DAMAGE_NO_ARMOR, MOD_WATER);
			}
		}
	}
	else
	{
		current_player->air_finished = level.time + 12;
		current_player->dmg = 2;
	}

	//
	// check for sizzle damage
	//
	if (waterlevel && (current_player->watertype&(CONTENTS_LAVA|CONTENTS_SLIME)) )
	{
		if (current_player->watertype & CONTENTS_LAVA)
		{
			if (current_player->health > 0
				&& current_player->pain_debounce_time <= level.time
				&& current_client->invincible_framenum < level.framenum)
			{
				if (rand()&1)
					gi.sound (current_player, CHAN_VOICE, gi.soundindex("player/burn1.wav"), 1, ATTN_NORM, 0);
				else
					gi.sound (current_player, CHAN_VOICE, gi.soundindex("player/burn2.wav"), 1, ATTN_NORM, 0);
				current_player->pain_debounce_time = level.time + 1;
			}

			if (envirosuit)	// take 1/3 damage with envirosuit
				T_Damage (current_player, world, world, vec3_origin, current_player->s.origin, vec3_origin, 1*waterlevel, 0, 0, MOD_LAVA);
			else
				T_Damage (current_player, world, world, vec3_origin, current_player->s.origin, vec3_origin, 3*waterlevel, 0, 0, MOD_LAVA);
		}

		if (current_player->watertype & CONTENTS_SLIME)
		{
			if (!envirosuit)
			{	// no damage from slime with envirosuit
				T_Damage (current_player, world, world, vec3_origin, current_player->s.origin, vec3_origin, 1*waterlevel, 0, 0, MOD_SLIME);
			}
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq 0x4f89e(%rip), %rax     # 0xb3250
cmpl $0x1, 0x118(%rax)
jne 0x639e3
movss 0xc531(%rip), %xmm0     # 0x6fef4
movq 0x1f3d6(%rip), %rax     # 0x82da0
addss 0x4(%rax), %xmm0
movq 0x4f87a(%rip), %rax     # 0xb3250
movss %xmm0, 0x1dc(%rax)
jmp 0x64480
movq 0x4f866(%rip), %rax     # 0xb3250
movl 0x30c(%rax), %eax
movl %eax, -0xc(%rbp)
movq 0x4f85e(%rip), %rax     # 0xb3258
movl 0xee8(%rax), %eax
movl %eax, -0x10(%rbp)
movl -0xc(%rbp), %ecx
movq 0x4f84b(%rip), %rax     # 0xb3258
movl %ecx, 0xee8(%rax)
movq 0x4f83e(%rip), %rax     # 0xb3258
movss 0xf0c(%rax), %xmm0
movq 0x1f377(%rip), %rax     # 0x82da0
cvtsi2ssl (%rax), %xmm1
ucomiss %xmm1, %xmm0
seta %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
movq 0x4f816(%rip), %rax     # 0xb3258
movss 0xf10(%rax), %xmm0
movq 0x1f34f(%rip), %rax     # 0x82da0
cvtsi2ssl (%rax), %xmm1
ucomiss %xmm1, %xmm0
seta %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x8(%rbp)
cmpl $0x0, -0x10(%rbp)
jne 0x63bf5
cmpl $0x0, -0xc(%rbp)
je 0x63bf5
movq 0x4f7d2(%rip), %rdi     # 0xb3250
movq 0x4f7cb(%rip), %rsi     # 0xb3250
addq $0x4, %rsi
xorl %edx, %edx
callq 0x19080
movq 0x4f7b9(%rip), %rax     # 0xb3250
movl 0x308(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x63af4
movq 0x1eb54(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0x18(%rbp)
movq 0x4f795(%rip), %rax     # 0xb3250
movq %rax, -0x20(%rbp)
leaq 0x13dee(%rip), %rdi     # 0x778b4
movq 0x1eb33(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0x20(%rbp), %rdi
movl %eax, %edx
movq -0x18(%rbp), %rax
movl $0x4, %esi
movss 0xc405(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
jmp 0x63bb8
movq 0x4f755(%rip), %rax     # 0xb3250
movl 0x308(%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x63b55
movq 0x1eaf0(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0x28(%rbp)
movq 0x4f731(%rip), %rax     # 0xb3250
movq %rax, -0x30(%rbp)
leaq 0x11f12(%rip), %rdi     # 0x75a3c
movq 0x1eacf(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0x30(%rbp), %rdi
movl %eax, %edx
movq -0x28(%rbp), %rax
movl $0x4, %esi
movss 0xc3a1(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
jmp 0x63bb6
movq 0x4f6f4(%rip), %rax     # 0xb3250
movl 0x308(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x63bb4
movq 0x1ea8f(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0x38(%rbp)
movq 0x4f6d0(%rip), %rax     # 0xb3250
movq %rax, -0x40(%rbp)
leaq 0x11eb1(%rip), %rdi     # 0x75a3c
movq 0x1ea6e(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0x40(%rbp), %rdi
movl %eax, %edx
movq -0x38(%rbp), %rax
movl $0x4, %esi
movss 0xc340(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
jmp 0x63bb6
jmp 0x63bb8
movq 0x4f691(%rip), %rax     # 0xb3250
movl 0x11c(%rax), %ecx
orl $0x8, %ecx
movl %ecx, 0x11c(%rax)
movq 0x1f1cb(%rip), %rax     # 0x82da0
movss 0x4(%rax), %xmm0
movss 0xc30a(%rip), %xmm1     # 0x6feec
subss %xmm1, %xmm0
movq 0x4f663(%rip), %rax     # 0xb3250
movss %xmm0, 0x248(%rax)
cmpl $0x0, -0x10(%rbp)
je 0x63c7a
cmpl $0x0, -0xc(%rbp)
jne 0x63c7a
movq 0x4f648(%rip), %rdi     # 0xb3250
movq 0x4f641(%rip), %rsi     # 0xb3250
addq $0x4, %rsi
xorl %edx, %edx
callq 0x19080
movq 0x1e9df(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0x48(%rbp)
movq 0x4f620(%rip), %rax     # 0xb3250
movq %rax, -0x50(%rbp)
leaq 0x11e14(%rip), %rdi     # 0x75a4f
movq 0x1e9be(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0x50(%rbp), %rdi
movl %eax, %edx
movq -0x48(%rbp), %rax
movl $0x4, %esi
movss 0xc290(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
movq 0x4f5e5(%rip), %rax     # 0xb3250
movl 0x11c(%rax), %ecx
andl $-0x9, %ecx
movl %ecx, 0x11c(%rax)
cmpl $0x3, -0x10(%rbp)
je 0x63cd0
cmpl $0x3, -0xc(%rbp)
jne 0x63cd0
movq 0x1e973(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0x58(%rbp)
movq 0x4f5b4(%rip), %rax     # 0xb3250
movq %rax, -0x60(%rbp)
leaq 0x11dbc(%rip), %rdi     # 0x75a63
movq 0x1e952(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0x60(%rbp), %rdi
movl %eax, %edx
movq -0x58(%rbp), %rax
movl $0x4, %esi
movss 0xc224(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
cmpl $0x3, -0x10(%rbp)
jne 0x63ddf
cmpl $0x3, -0xc(%rbp)
je 0x63ddf
movq 0x4f565(%rip), %rax     # 0xb3250
movss 0x1dc(%rax), %xmm1
movq 0x1f0a6(%rip), %rax     # 0x82da0
movss 0x4(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x63d69
movq 0x1e8f5(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0x68(%rbp)
movq 0x4f536(%rip), %rax     # 0xb3250
movq %rax, -0x70(%rbp)
leaq 0x11cf5(%rip), %rdi     # 0x75a1a
movq 0x1e8d4(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0x70(%rbp), %rdi
movl %eax, %edx
movq -0x68(%rbp), %rax
movl $0x2, %esi
movss 0xc1a6(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
movq 0x4f4fb(%rip), %rdi     # 0xb3250
movq 0x4f4f4(%rip), %rsi     # 0xb3250
addq $0x4, %rsi
xorl %edx, %edx
callq 0x19080
jmp 0x63ddd
movq 0x4f4e0(%rip), %rax     # 0xb3250
movss 0x1dc(%rax), %xmm1
movss 0x13ac0(%rip), %xmm0    # 0x77840
movq 0x1f019(%rip), %rax     # 0x82da0
addss 0x4(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x63ddb
movq 0x1e868(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0x78(%rbp)
movq 0x4f4a9(%rip), %rax     # 0xb3250
movq %rax, -0x80(%rbp)
leaq 0x11c79(%rip), %rdi     # 0x75a2b
movq 0x1e847(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0x80(%rbp), %rdi
movl %eax, %edx
movq -0x78(%rbp), %rax
movl $0x2, %esi
movss 0xc119(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
jmp 0x63ddd
jmp 0x63ddf
cmpl $0x3, -0xc(%rbp)
jne 0x641a8
cmpl $0x0, -0x4(%rbp)
jne 0x63df9
cmpl $0x0, -0x8(%rbp)
je 0x63f38
movss 0xc0ef(%rip), %xmm0     # 0x6fef0
movq 0x1ef98(%rip), %rax     # 0x82da0
addss 0x4(%rax), %xmm0
movq 0x4f43c(%rip), %rax     # 0xb3250
movss %xmm0, 0x1dc(%rax)
movq 0x4f435(%rip), %rax     # 0xb3258
movss 0xf0c(%rax), %xmm0
movq 0x1ef6e(%rip), %rax     # 0x82da0
cvtsi2ssl (%rax), %xmm1
subss %xmm1, %xmm0
cvttss2si %xmm0, %eax
movl $0x19, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0x63f36
movq 0x4f402(%rip), %rax     # 0xb3258
cmpl $0x0, 0xeec(%rax)
jne 0x63eb4
movq 0x1e79a(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0x88(%rbp)
movq 0x4f3d8(%rip), %rax     # 0xb3250
movq %rax, -0x90(%rbp)
leaq 0x11bf0(%rip), %rdi     # 0x75a76
movq 0x1e773(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0x90(%rbp), %rdi
movl %eax, %edx
movq -0x88(%rbp), %rax
xorl %esi, %esi
movss 0xc042(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
jmp 0x63f07
movq 0x1e745(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0x98(%rbp)
movq 0x4f383(%rip), %rax     # 0xb3250
movq %rax, -0xa0(%rbp)
leaq 0x11bb0(%rip), %rdi     # 0x75a8b
movq 0x1e71e(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0xa0(%rbp), %rdi
movl %eax, %edx
movq -0x98(%rbp), %rax
xorl %esi, %esi
movss 0xbfed(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
movq 0x4f34a(%rip), %rax     # 0xb3258
movl 0xeec(%rax), %ecx
xorl $0x1, %ecx
movl %ecx, 0xeec(%rax)
movq 0x4f32c(%rip), %rdi     # 0xb3250
movq 0x4f325(%rip), %rsi     # 0xb3250
addq $0x4, %rsi
xorl %edx, %edx
callq 0x19080
jmp 0x63f38
movq 0x4f311(%rip), %rax     # 0xb3250
movss 0x1dc(%rax), %xmm1
movq 0x1ee52(%rip), %rax     # 0x82da0
movss 0x4(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x641a6
movq 0x4f2ed(%rip), %rax     # 0xb3250
movq 0x58(%rax), %rax
movss 0xee4(%rax), %xmm1
movq 0x1ee2a(%rip), %rax     # 0x82da0
movss 0x4(%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x641a4
movq 0x4f2c5(%rip), %rax     # 0xb3250
cmpl $0x0, 0x254(%rax)
jle 0x641a4
movss 0xbf4c(%rip), %xmm0     # 0x6feec
movq 0x1edf9(%rip), %rax     # 0x82da0
addss 0x4(%rax), %xmm0
movq 0x4f29d(%rip), %rax     # 0xb3250
movq 0x58(%rax), %rax
movss %xmm0, 0xee4(%rax)
movq 0x4f28a(%rip), %rax     # 0xb3250
movl 0x280(%rax), %ecx
addl $0x2, %ecx
movl %ecx, 0x280(%rax)
movq 0x4f274(%rip), %rax     # 0xb3250
cmpl $0xf, 0x280(%rax)
jle 0x63ff6
movq 0x4f264(%rip), %rax     # 0xb3250
movl $0xf, 0x280(%rax)
movq 0x4f253(%rip), %rax     # 0xb3250
movl 0x254(%rax), %eax
movq 0x4f246(%rip), %rcx     # 0xb3250
cmpl 0x280(%rcx), %eax
jg 0x6406d
movq 0x1e5e7(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0xa8(%rbp)
movq 0x4f225(%rip), %rax     # 0xb3250
movq %rax, -0xb0(%rbp)
leaq 0x1388e(%rip), %rdi     # 0x778c7
movq 0x1e5c0(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0xb0(%rbp), %rdi
movl %eax, %edx
movq -0xa8(%rbp), %rax
movl $0x2, %esi
movss 0xbe8c(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
jmp 0x6412a
callq 0x19c80
andl $0x1, %eax
cmpl $0x0, %eax
je 0x640d2
movq 0x1e57f(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0xb8(%rbp)
movq 0x4f1bd(%rip), %rax     # 0xb3250
movq %rax, -0xc0(%rbp)
leaq 0x11828(%rip), %rdi     # 0x758c9
movq 0x1e558(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0xc0(%rbp), %rdi
movl %eax, %edx
movq -0xb8(%rbp), %rax
movl $0x2, %esi
movss 0xbe24(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
jmp 0x64128
movq 0x1e527(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0xc8(%rbp)
movq 0x4f165(%rip), %rax     # 0xb3250
movq %rax, -0xd0(%rbp)
leaq 0x117db(%rip), %rdi     # 0x758d4
movq 0x1e500(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0xd0(%rbp), %rdi
movl %eax, %edx
movq -0xc8(%rbp), %rax
movl $0x2, %esi
movss 0xbdcc(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
jmp 0x6412a
movq 0x1ec6f(%rip), %rax     # 0x82da0
movss 0x4(%rax), %xmm0
movq 0x4f113(%rip), %rax     # 0xb3250
movss %xmm0, 0x244(%rax)
movq 0x4f104(%rip), %rdi     # 0xb3250
movq 0x1e405(%rip), %rax     # 0x82558
movq (%rax), %rsi
movq 0x1e3fb(%rip), %rax     # 0x82558
movq (%rax), %rdx
movq 0x4f0e9(%rip), %r8      # 0xb3250
addq $0x4, %r8
movq 0x4f0de(%rip), %rax     # 0xb3250
movl 0x280(%rax), %eax
movq 0x1e5e9(%rip), %r9      # 0x82768
xorl %ecx, %ecx
movq %r9, %rcx
movl %eax, (%rsp)
movl $0x0, 0x8(%rsp)
movl $0x2, 0x10(%rsp)
movl $0x11, 0x18(%rsp)
callq 0x192c0
jmp 0x641a6
jmp 0x641dc
movss 0xbd44(%rip), %xmm0     # 0x6fef4
movq 0x1ebe9(%rip), %rax     # 0x82da0
addss 0x4(%rax), %xmm0
movq 0x4f08d(%rip), %rax     # 0xb3250
movss %xmm0, 0x1dc(%rax)
movq 0x4f07e(%rip), %rax     # 0xb3250
movl $0x2, 0x280(%rax)
cmpl $0x0, -0xc(%rbp)
je 0x64480
movq 0x4f063(%rip), %rax     # 0xb3250
movl 0x308(%rax), %eax
andl $0x18, %eax
cmpl $0x0, %eax
je 0x64480
movq 0x4f04a(%rip), %rax     # 0xb3250
movl 0x308(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x64409
movq 0x4f031(%rip), %rax     # 0xb3250
cmpl $0x0, 0x254(%rax)
jle 0x64351
movq 0x4f01d(%rip), %rax     # 0xb3250
movss 0x244(%rax), %xmm1
movq 0x1eb5e(%rip), %rax     # 0x82da0
movss 0x4(%rax), %xmm0
ucomiss %xmm1, %xmm0
jb 0x64351
movq 0x4f001(%rip), %rax     # 0xb3258
movss 0xf08(%rax), %xmm1
movq 0x1eb3a(%rip), %rax     # 0x82da0
cvtsi2ssl (%rax), %xmm0
ucomiss %xmm1, %xmm0
jbe 0x64351
callq 0x19c80
andl $0x1, %eax
cmpl $0x0, %eax
je 0x642d8
movq 0x1e379(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0xd8(%rbp)
movq 0x4efb7(%rip), %rax     # 0xb3250
movq %rax, -0xe0(%rbp)
leaq 0x13632(%rip), %rdi     # 0x778d9
movq 0x1e352(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0xe0(%rbp), %rdi
movl %eax, %edx
movq -0xd8(%rbp), %rax
movl $0x2, %esi
movss 0xbc1e(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
jmp 0x6432e
movq 0x1e321(%rip), %rax     # 0x82600
movq 0x20(%rax), %rax
movq %rax, -0xe8(%rbp)
movq 0x4ef5f(%rip), %rax     # 0xb3250
movq %rax, -0xf0(%rbp)
leaq 0x135eb(%rip), %rdi     # 0x778ea
movq 0x1e2fa(%rip), %rax     # 0x82600
callq *0x48(%rax)
movq -0xf0(%rbp), %rdi
movl %eax, %edx
movq -0xe8(%rbp), %rax
movl $0x2, %esi
movss 0xbbc6(%rip), %xmm1     # 0x6feec
xorps %xmm2, %xmm2
movaps %xmm1, %xmm0
callq *%rax
movss 0xbbb6(%rip), %xmm0     # 0x6feec
movq 0x1ea63(%rip), %rax     # 0x82da0
addss 0x4(%rax), %xmm0
movq 0x4ef07(%rip), %rax     # 0xb3250
movss %xmm0, 0x244(%rax)
cmpl $0x0, -0x8(%rbp)
je 0x643b1
movq 0x4eef2(%rip), %rdi     # 0xb3250
movq 0x1e1f3(%rip), %rax     # 0x82558
movq (%rax), %rsi
movq 0x1e1e9(%rip), %rax     # 0x82558
movq (%rax), %rdx
movq 0x4eed7(%rip), %r8      # 0xb3250
addq $0x4, %r8
movl -0xc(%rbp), %eax
shll $0x0, %eax
movq 0x1e3de(%rip), %r9      # 0x82768
xorl %ecx, %ecx
movq %r9, %rcx
movl %eax, (%rsp)
movl $0x0, 0x8(%rsp)
movl $0x0, 0x10(%rsp)
movl $0x13, 0x18(%rsp)
callq 0x192c0
jmp 0x64407
movq 0x4ee98(%rip), %rdi     # 0xb3250
movq 0x1e199(%rip), %rax     # 0x82558
movq (%rax), %rsi
movq 0x1e18f(%rip), %rax     # 0x82558
movq (%rax), %rdx
movq 0x4ee7d(%rip), %r8      # 0xb3250
addq $0x4, %r8
imull $0x3, -0xc(%rbp), %eax
movq 0x1e386(%rip), %r9      # 0x82768
xorl %ecx, %ecx
movq %r9, %rcx
movl %eax, (%rsp)
movl $0x0, 0x8(%rsp)
movl $0x0, 0x10(%rsp)
movl $0x13, 0x18(%rsp)
callq 0x192c0
jmp 0x64409
movq 0x4ee40(%rip), %rax     # 0xb3250
movl 0x308(%rax), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x6447e
cmpl $0x0, -0x8(%rbp)
jne 0x6447c
movq 0x4ee25(%rip), %rdi     # 0xb3250
movq 0x1e126(%rip), %rax     # 0x82558
movq (%rax), %rsi
movq 0x1e11c(%rip), %rax     # 0x82558
movq (%rax), %rdx
movq 0x4ee0a(%rip), %r8      # 0xb3250
addq $0x4, %r8
movl -0xc(%rbp), %eax
shll $0x0, %eax
movq 0x1e311(%rip), %r9      # 0x82768
xorl %ecx, %ecx
movq %r9, %rcx
movl %eax, (%rsp)
movl $0x0, 0x8(%rsp)
movl $0x0, 0x10(%rsp)
movl $0x12, 0x18(%rsp)
callq 0x192c0
jmp 0x6447e
jmp 0x64480
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
nopl (%rax)