// File: lotuskip[P]yuxtapa/server/network.cpp
// Function: Network::receive_n_handle()
bool Network::receive_n_handle()
{
	sockaddr_storage them;
	socklen_t addr_len = sizeof(them);
	unsigned char mid;
	list<Player>::iterator pit;
	char handled = 0;
	short msglen;
	unsigned short ush;
	string s;
	while(handled++ < 20 && // handle at most 20 messages; then return control
		(msglen = recvfrom(s_me, recv_buffer.getw(), BUFFER_SIZE, 0,
			(sockaddr *)&them, &addr_len)) != -1)
	{
		mid = recv_buffer.read_ch();
		switch(mid)
		{
		case MID_HELLO:
		{
			// Check that interaction versions match:
			if(recv_buffer.read_sh() != INTR_VERSION)
			{
				send_buffer.clear();
				send_buffer.add((unsigned char)MID_HELLO_VERSION);
				do_send_to(&them, addr_len);
				break;
			}
			string pl_passw = "";
			ush = recv_buffer.read_sh();
			if(ush != 0xFFFF) // indicates a password has been sent, too
				recv_buffer.read_str(pl_passw);
			recv_buffer.read_str(s); // read nick
			if(num_syms(s) > MAX_NICK_LEN)
			{
				/* Client passed version control but has too long nick??
				 * That means it's a tampered client! Ignore the bastard. */
				break;
			}
			ush = player_hello(ush, pl_passw, s, them, false);
			// Note: player_hello can call something that uses send_buffer!
			send_buffer.clear();
			if(ush == ID_STEAL)
			{
				send_buffer.add((unsigned char)MID_HELLO_STEAL);
				do_send_to(&them, addr_len);
				break;
			}
			/*else*/ if(ush == IP_BANNED)
			{
				send_buffer.add((unsigned char)MID_HELLO_BANNED);
				do_send_to(&them, addr_len);
				break;
			}
			/*else*/ if(ush == SERVER_FULL)
			{
				send_buffer.add((unsigned char)MID_HELLO_FULL);
				do_send_to(&them, addr_len);
				break;
			}
			/*else*/ if(ush == JOIN_OK_ID_OK)
				send_buffer.add((unsigned char)MID_HELLO);
			else
			{
				send_buffer.add((unsigned char)MID_HELLO_NEWID);
				send_buffer.add(ush);
				send_buffer.add(pl_passw);
			}
			do_send_to(&them, addr_len);
			// Send greeting:
			s = Config::greeting_str();
			construct_msg(s, DEF_MSG_COL);
			do_send_to(&them, addr_len);
			list<Player>::iterator pit = (--cur_players.end());
			if(intermission) // send the miniview to the new player
			{
				do_send_to(&them, addr_len, Game::get_miniview());
				Game::construct_team_msgs(pit);
			}
			else
				Game::send_flag_upds(pit);
			time(&(pit->last_switched_cl));

			Game::send_state_change(pit);
			Game::send_team_upds(pit);
			to_chat(pit->nick + " connected.");
			break;
		}
		case MID_BOTHELLO:
		{
			send_buffer.clear();
			// Check that interaction versions match:
			if(recv_buffer.read_sh() != INTR_VERSION)
			{
				send_buffer.add((unsigned char)MID_HELLO_VERSION);
				do_send_to(&them, addr_len);
				to_log("Incompatible bot connection.");
				break;
			}
			ush = recv_buffer.read_sh();
			if((ush = bot_connect(ush, them)) <= HIGHEST_VALID_ID)
			{
				send_buffer.add((unsigned char)MID_HELLO_NEWID);
				send_buffer.add(ush);
				send_buffer.add((unsigned short)Config::int_settings[Config::IS_TURNMS]);
				do_send_to(&them, addr_len);
			}
			break;
		}
		case MID_QUIT:
			if((pit = who_is_this()) != cur_players.end())
				Game::remove_player(pit, " disconnected.");
			break;
		case MID_SAY_ALOUD:
			if(!intermission && (pit = who_is_this()) != cur_players.end()
				&& pit->is_alive() && voices.find(pit->own_pc->getpos()) == voices.end())
			{
				recv_buffer.read_str(s);
				// A proper client wouldn't send too long messages:
				if(num_syms(s) > MSG_WIN_X-3)
					cheat_attempt(pit);
				else
				{
					add_voice(pit->own_pc->getpos(), s);
					event_set.insert(pit->own_pc->getpos());
				}
			}
			break;
		case MID_SAY_CHAT:
			if((pit = who_is_this()) != cur_players.end())
			{
				recv_buffer.read_str(s);
				// Check if it is a !command
				if(!s.empty() && s[0] == '!'
					&& process_cmd(pit, s))
					break;
				// (process_cmd returns true if the command should not be
				// broadcast)

				// Else, we forward the message to all clients (and add the
				// speakers nick to the end). Note that we are using the
				// "receive buffer" for sending, in order to avoid copying.
				if(!pit->muted)
				{
					*(recv_buffer.getw()+1) = *(recv_buffer.getw()+2) = 0;
					recv_buffer.set_amount(msglen);
					recv_buffer.add(pit->nick);
					recv_buffer.add((unsigned char)pit->team);
					broadcast(0xFFFF, recv_buffer);
				}
			}
			break;
		case MID_VIEW_UPD:
			if((pit = who_is_this()) != cur_players.end())
			{
				ush = recv_buffer.read_sh();
				// 't' is an ack from a client "I've received the view
				// update for turn t'. But the message might be delayed;
				// must check if the player has acted since:
				if(ush > pit->last_heard_of)
					pit->last_heard_of = ush;
			}
			break;
		case MID_TAKE_ACTION:
			if(!intermission && (pit = who_is_this()) != cur_players.end()
				&& pit->action_queue.size() < MAX_AXN_QUEUE_SIZE)
			{
				// First check sequentiality. If this action is "timestamped" earlier than
				// the latest action we have actually received from this player, ignore it!
				ush = recv_buffer.read_sh(); // turn
				if(ush >= pit->last_acted_on_turn)
				{
					// This is the latest we've heard from this client:
					if(ush > pit->last_heard_of)
						pit->last_heard_of = ush;

					unsigned char an = recv_buffer.read_ch(); // action number for the turn
					if(ush > pit->last_acted_on_turn || an > pit->last_axn_number)
					{
						// we accept this action, so update the values:
						pit->last_acted_on_turn = ush;
						pit->last_axn_number = an;

						// Now, construct the action:
						if((mid = recv_buffer.read_ch()) == XN_SHOOT) // contains two more values
						{
							// If either coordinate is too large by abs-val (out of screen), kick
							char xcoord = static_cast<char>(recv_buffer.read_ch());
							char ycoord = static_cast<char>(recv_buffer.read_ch());
							if(abs(xcoord) > VIEWSIZE/2 || abs(ycoord) > VIEWSIZE/2
								|| (!xcoord && !ycoord)) // both zero is bad, too
							{
#ifdef DEBUG
								to_log("Read illegal shot coordinates ("
									+ lex_cast(xcoord) + ","
									+ lex_cast(ycoord) + ")!");
#endif
								cheat_attempt(pit);
								break;
							}
							Game::player_action(pit, Axn(mid, xcoord, ycoord));
						}
						else if(mid == XN_MOVE || mid == XN_ZAP || mid == XN_HEAL
							|| mid == XN_CIRCLE_ATTACK || mid == XN_MINE) // one more value
						{
							char dir = static_cast<char>(recv_buffer.read_ch());
							if(dir > MAX_D || dir < 0 || (dir == MAX_D && mid != XN_HEAL))
							{
#ifdef DEBUG
								to_log("Read illegal direction "
									+ lex_cast(dir) + " in "
									+ lex_cast(mid) + "-type xn!");
#endif
								cheat_attempt(pit);
								break;
							}
							Game::player_action(pit, Axn(mid, dir));
						}
						else
							Game::player_action(pit, Axn(mid));
					}
					// else delivery order got messed up
				}
				// else delivery order got messed up
			}
			break;
		case MID_SPAWN_AXN:
			if((pit = who_is_this()) != cur_players.end())
				Game::class_switch(pit, e_Class(recv_buffer.read_ch()));
			break;
		case MID_TEAM_SWITCH:
			if((pit = who_is_this()) != cur_players.end())
				Game::team_switch(pit);
			break;
		case MID_TEAM_INFO:
			if((pit = who_is_this()) != cur_players.end())
				Game::send_team_info(pit);
			break;
		default: break;
		}
	}
	return (handled == 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x5c0, %rsp            # imm = 0x5C0
movl $0x80, -0x84(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x1b010
movb $0x0, -0x91(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x5770
movb -0x91(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x91(%rbp)
movsbl %al, %ecx
xorl %eax, %eax
cmpl $0x14, %ecx
movb %al, -0x449(%rbp)
jge 0x192be
movl 0x7605d(%rip), %eax     # 0x8f2b8
movl %eax, -0x45c(%rbp)
leaq 0x75840(%rip), %rdi     # 0x8eaa8
callq 0x5f710
movq %rax, -0x458(%rbp)
jmp 0x19276
movq -0x458(%rbp), %rsi
movl -0x45c(%rbp), %edi
movl $0x800, %edx            # imm = 0x800
xorl %ecx, %ecx
leaq -0x80(%rbp), %r8
leaq -0x84(%rbp), %r9
callq 0x53b0
movq %rax, -0x468(%rbp)
jmp 0x192a3
movq -0x468(%rbp), %rax
movw %ax, -0x94(%rbp)
cwtl
cmpl $-0x1, %eax
setne %al
movb %al, -0x449(%rbp)
movb -0x449(%rbp), %al
testb $0x1, %al
jne 0x192cd
jmp 0x1aa52
leaq 0x757d4(%rip), %rdi     # 0x8eaa8
callq 0x5f5a0
movb %al, -0x469(%rbp)
jmp 0x192e1
movb -0x469(%rbp), %al
movb %al, -0x85(%rbp)
movzbl -0x85(%rbp), %eax
movq %rax, -0x478(%rbp)
subq $0x9, %rax
ja 0x1aa4b
movq -0x478(%rbp), %rax
leaq 0x47f41(%rip), %rcx     # 0x61254
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1aa8c
leaq 0x7576e(%rip), %rdi     # 0x8eaa8
callq 0x5f560
movw %ax, -0x47a(%rbp)
jmp 0x19348
movw -0x47a(%rbp), %ax
movzwl %ax, %eax
cmpl $0x3, %eax
je 0x19395
leaq 0x74f3a(%rip), %rdi     # 0x8e298
callq 0x5f370
jmp 0x19365
leaq 0x74f2c(%rip), %rdi     # 0x8e298
movl $0x12, %esi
callq 0x5f390
jmp 0x19378
movl -0x84(%rbp), %esi
leaq 0x74f13(%rip), %rdx     # 0x8e298
leaq -0x80(%rbp), %rdi
callq 0x1aab0
jmp 0x19390
jmp 0x1aa4d
leaq -0xe9(%rbp), %rdi
movq %rdi, -0x488(%rbp)
callq 0x5930
movq -0x488(%rbp), %rdx
leaq 0x47f86(%rip), %rsi     # 0x6133c
leaq -0xe8(%rbp), %rdi
callq 0x18880
jmp 0x193c4
leaq -0xe9(%rbp), %rdi
callq 0x5590
leaq 0x756d1(%rip), %rdi     # 0x8eaa8
callq 0x5f560
movw %ax, -0x48a(%rbp)
jmp 0x193e5
movw -0x48a(%rbp), %ax
movw %ax, -0x96(%rbp)
movzwl -0x96(%rbp), %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0x19452
leaq 0x756a0(%rip), %rdi     # 0x8eaa8
leaq -0xe8(%rbp), %rsi
callq 0x5f5d0
jmp 0x19416
jmp 0x19452
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0xe9(%rbp), %rdi
callq 0x5590
jmp 0x1aa8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1980e
leaq 0x7564f(%rip), %rdi     # 0x8eaa8
leaq -0xb8(%rbp), %rsi
callq 0x5f5d0
jmp 0x19467
leaq -0xb8(%rbp), %rdi
callq 0x5fe20
movw %ax, -0x48c(%rbp)
jmp 0x1947c
movw -0x48c(%rbp), %ax
cwtl
cmpl $0xa, %eax
jle 0x19498
movl $0x4, -0xf0(%rbp)
jmp 0x197fd
movzwl -0x96(%rbp), %edi
leaq -0xe8(%rbp), %rsi
leaq -0xb8(%rbp), %rdx
leaq -0x80(%rbp), %rcx
xorl %r8d, %r8d
callq 0x22e50
movw %ax, -0x48e(%rbp)
jmp 0x194c2
movw -0x48e(%rbp), %ax
movw %ax, -0x96(%rbp)
leaq 0x74dc1(%rip), %rdi     # 0x8e298
callq 0x5f370
jmp 0x194de
movzwl -0x96(%rbp), %eax
cmpl $0xfffe, %eax           # imm = 0xFFFE
jne 0x19526
leaq 0x74da5(%rip), %rdi     # 0x8e298
movl $0x13, %esi
callq 0x5f390
jmp 0x194ff
movl -0x84(%rbp), %esi
leaq 0x74d8c(%rip), %rdx     # 0x8e298
leaq -0x80(%rbp), %rdi
callq 0x1aab0
jmp 0x19517
movl $0x4, -0xf0(%rbp)
jmp 0x197fd
movzwl -0x96(%rbp), %eax
cmpl $0xfffd, %eax           # imm = 0xFFFD
jne 0x1956e
leaq 0x74d5d(%rip), %rdi     # 0x8e298
movl $0x11, %esi
callq 0x5f390
jmp 0x19547
movl -0x84(%rbp), %esi
leaq 0x74d44(%rip), %rdx     # 0x8e298
leaq -0x80(%rbp), %rdi
callq 0x1aab0
jmp 0x1955f
movl $0x4, -0xf0(%rbp)
jmp 0x197fd
movzwl -0x96(%rbp), %eax
cmpl $0xfffc, %eax           # imm = 0xFFFC
jne 0x195b6
leaq 0x74d15(%rip), %rdi     # 0x8e298
movl $0x10, %esi
callq 0x5f390
jmp 0x1958f
movl -0x84(%rbp), %esi
leaq 0x74cfc(%rip), %rdx     # 0x8e298
leaq -0x80(%rbp), %rdi
callq 0x1aab0
jmp 0x195a7
movl $0x4, -0xf0(%rbp)
jmp 0x197fd
movzwl -0x96(%rbp), %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0x195d6
leaq 0x74ccd(%rip), %rdi     # 0x8e298
xorl %esi, %esi
callq 0x5f390
jmp 0x195d4
jmp 0x19615
leaq 0x74cbb(%rip), %rdi     # 0x8e298
movl $0x14, %esi
callq 0x5f390
jmp 0x195e9
movzwl -0x96(%rbp), %esi
leaq 0x74ca1(%rip), %rdi     # 0x8e298
callq 0x5f3d0
jmp 0x195fe
leaq 0x74c93(%rip), %rdi     # 0x8e298
leaq -0xe8(%rbp), %rsi
callq 0x5f440
jmp 0x19613
jmp 0x19615
movl -0x84(%rbp), %esi
leaq 0x74c76(%rip), %rdx     # 0x8e298
leaq -0x80(%rbp), %rdi
callq 0x1aab0
jmp 0x1962d
callq 0x1efa0
movq %rax, -0x498(%rbp)
jmp 0x1963b
movq -0x498(%rbp), %rsi
leaq -0xb8(%rbp), %rdi
callq 0x5050
jmp 0x19650
leaq -0xb8(%rbp), %rdi
movl $0xf, %esi
callq 0x1ab10
jmp 0x19663
movl -0x84(%rbp), %esi
leaq 0x74c28(%rip), %rdx     # 0x8e298
leaq -0x80(%rbp), %rdi
callq 0x1aab0
jmp 0x1967b
leaq 0x76bae(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x100(%rbp)
leaq -0x100(%rbp), %rdi
callq 0x1b030
movq (%rax), %rax
movq %rax, -0xf8(%rbp)
leaq 0x73e85(%rip), %rax     # 0x8d530
testb $0x1, (%rax)
je 0x19705
movl -0x84(%rbp), %eax
movl %eax, -0x4a4(%rbp)
callq 0x3a8b0
movq %rax, -0x4a0(%rbp)
jmp 0x196ca
movq -0x4a0(%rbp), %rdx
movl -0x4a4(%rbp), %esi
leaq -0x80(%rbp), %rdi
callq 0x1aab0
jmp 0x196e2
leaq -0x108(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x18a20
movq -0x108(%rbp), %rdi
callq 0x367a0
jmp 0x19703
jmp 0x19728
leaq -0x110(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x18a20
movq -0x110(%rbp), %rdi
callq 0x38370
jmp 0x19726
jmp 0x19728
leaq -0xf8(%rbp), %rdi
movq %rdi, -0x4b0(%rbp)
callq 0x1b050
movq %rax, %rdi
addq $0xb8, %rdi
callq 0x54c0
movq -0x4b0(%rbp), %rsi
leaq -0x118(%rbp), %rdi
callq 0x18a20
movq -0x118(%rbp), %rdi
callq 0x3b290
jmp 0x1976b
leaq -0x120(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x18a20
movq -0x120(%rbp), %rdi
callq 0x36ce0
jmp 0x1978c
leaq -0xf8(%rbp), %rdi
callq 0x1b050
movq %rax, %rsi
addq $0x88, %rsi
leaq 0x47b0d(%rip), %rdx     # 0x612b6
leaq -0x140(%rbp), %rdi
callq 0x1b080
jmp 0x197b7
leaq -0x140(%rbp), %rdi
callq 0x1acd0
jmp 0x197c5
leaq -0x140(%rbp), %rdi
callq 0x5a48
movl $0x4, -0xf0(%rbp)
jmp 0x197fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x5a48
jmp 0x1980e
leaq -0xe8(%rbp), %rdi
callq 0x5a48
jmp 0x1aa4d
leaq -0xe8(%rbp), %rdi
callq 0x5a48
jmp 0x1aa8c
leaq 0x74a72(%rip), %rdi     # 0x8e298
callq 0x5f370
jmp 0x1982d
leaq 0x75274(%rip), %rdi     # 0x8eaa8
callq 0x5f560
movw %ax, -0x4b2(%rbp)
jmp 0x19842
movw -0x4b2(%rbp), %ax
movzwl %ax, %eax
cmpl $0x3, %eax
je 0x1991d
leaq 0x74a3c(%rip), %rdi     # 0x8e298
movl $0x12, %esi
callq 0x5f390
jmp 0x19868
movl -0x84(%rbp), %esi
leaq 0x74a23(%rip), %rdx     # 0x8e298
leaq -0x80(%rbp), %rdi
callq 0x1aab0
jmp 0x19880
leaq -0x161(%rbp), %rdi
movq %rdi, -0x4c0(%rbp)
callq 0x5930
movq -0x4c0(%rbp), %rdx
leaq 0x47a21(%rip), %rsi     # 0x612c2
leaq -0x160(%rbp), %rdi
callq 0x18880
jmp 0x198af
leaq -0x160(%rbp), %rdi
callq 0x28d70
jmp 0x198bd
leaq -0x160(%rbp), %rdi
callq 0x5a48
leaq -0x161(%rbp), %rdi
callq 0x5590
jmp 0x1aa4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1990c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x5a48
leaq -0x161(%rbp), %rdi
callq 0x5590
jmp 0x1aa8c
leaq 0x75184(%rip), %rdi     # 0x8eaa8
callq 0x5f560
movw %ax, -0x4c2(%rbp)
jmp 0x19932
movw -0x4c2(%rbp), %ax
movw %ax, -0x96(%rbp)
movzwl -0x96(%rbp), %edi
leaq -0x80(%rbp), %rsi
callq 0x23c70
movw %ax, -0x4c4(%rbp)
jmp 0x19959
movw -0x4c4(%rbp), %ax
movw %ax, -0x96(%rbp)
movzwl %ax, %eax
cmpl $0xfffb, %eax           # imm = 0xFFFB
jg 0x199cc
leaq 0x74920(%rip), %rdi     # 0x8e298
movl $0x14, %esi
callq 0x5f390
jmp 0x19984
movzwl -0x96(%rbp), %esi
leaq 0x74906(%rip), %rdi     # 0x8e298
callq 0x5f3d0
jmp 0x19999
leaq 0x76070(%rip), %rax     # 0x8fa10
movzwl 0x14(%rax), %esi
leaq 0x748ed(%rip), %rdi     # 0x8e298
callq 0x5f3d0
jmp 0x199b2
movl -0x84(%rbp), %esi
leaq 0x748d9(%rip), %rdx     # 0x8e298
leaq -0x80(%rbp), %rdi
callq 0x1aab0
jmp 0x199ca
jmp 0x199cc
jmp 0x1aa4d
callq 0x1adc0
movq %rax, -0x4d0(%rbp)
jmp 0x199df
movq -0x4d0(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x170(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x7682e(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x178(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x178(%rbp), %rsi
callq 0x1b100
testb $0x1, %al
jne 0x19a2a
jmp 0x19aee
movq -0x90(%rbp), %rax
movq %rax, -0x180(%rbp)
leaq -0x1a1(%rbp), %rdi
movq %rdi, -0x4d8(%rbp)
callq 0x5930
movq -0x4d8(%rbp), %rdx
leaq 0x47886(%rip), %rsi     # 0x612df
leaq -0x1a0(%rbp), %rdi
callq 0x18880
jmp 0x19a67
movq -0x180(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x3a100
movq %rax, -0x4e0(%rbp)
jmp 0x19a83
movq -0x4e0(%rbp), %rax
movq %rax, -0x1b0(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x5a48
leaq -0x1a1(%rbp), %rdi
callq 0x5590
jmp 0x19aee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x19add
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0x5a48
leaq -0x1a1(%rbp), %rdi
callq 0x5590
jmp 0x1aa8c
jmp 0x1aa4d
leaq 0x73a36(%rip), %rax     # 0x8d530
movb (%rax), %cl
movb $0x0, -0x1cd(%rbp)
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x4e1(%rbp)
jne 0x19c27
callq 0x1adc0
movq %rax, -0x4f0(%rbp)
jmp 0x19b22
movq -0x4f0(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq -0x1b8(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x766eb(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x1c0(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
callq 0x1b100
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x4e1(%rbp)
jne 0x19b78
jmp 0x19c27
leaq -0x90(%rbp), %rdi
callq 0x1b050
movq %rax, %rdi
callq 0x21cd0
movb %al, -0x4f1(%rbp)
jmp 0x19b94
movb -0x4f1(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x4e1(%rbp)
jne 0x19ba9
jmp 0x19c27
leaq -0x90(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rsi
leaq -0x1cc(%rbp), %rdi
callq 0x1b190
jmp 0x19bca
movb $0x1, -0x1cd(%rbp)
leaq 0x79528(%rip), %rdi     # 0x93100
leaq -0x1cc(%rbp), %rsi
callq 0x1b160
movq %rax, -0x500(%rbp)
jmp 0x19bed
movq -0x500(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq 0x794fe(%rip), %rdi     # 0x93100
callq 0x1b1b0
movq %rax, -0x1d8(%rbp)
leaq -0x1c8(%rbp), %rdi
leaq -0x1d8(%rbp), %rsi
callq 0x1b130
movb %al, -0x4e1(%rbp)
movb -0x4e1(%rbp), %al
movb %al, -0x501(%rbp)
testb $0x1, -0x1cd(%rbp)
jne 0x19c3e
jmp 0x19c4a
leaq -0x1cc(%rbp), %rdi
callq 0x60460
movb -0x501(%rbp), %al
testb $0x1, %al
jne 0x19c59
jmp 0x19dd4
leaq 0x74e48(%rip), %rdi     # 0x8eaa8
leaq -0xb8(%rbp), %rsi
callq 0x5f5d0
jmp 0x19c6e
leaq -0xb8(%rbp), %rdi
callq 0x5fe20
movw %ax, -0x504(%rbp)
jmp 0x19c83
movw -0x504(%rbp), %ax
cwtl
cmpl $0x36, %eax
jle 0x19cdf
movq -0x90(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq -0x1e0(%rbp), %rdi
callq 0x1ae60
jmp 0x19cac
jmp 0x19dd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
testb $0x1, -0x1cd(%rbp)
jne 0x19cce
jmp 0x19cda
leaq -0x1cc(%rbp), %rdi
callq 0x60460
jmp 0x1aa8c
leaq -0x90(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rsi
leaq -0x1e4(%rbp), %rdi
callq 0x1b190
jmp 0x19d00
leaq -0x1e4(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x480f0
jmp 0x19d15
leaq -0x1e4(%rbp), %rdi
callq 0x60460
leaq -0x90(%rbp), %rdi
callq 0x1b050
movq 0x138(%rax), %rsi
leaq -0x1e8(%rbp), %rdi
callq 0x1b190
jmp 0x19d42
leaq 0x793ff(%rip), %rdi     # 0x93148
leaq -0x1e8(%rbp), %rsi
callq 0x1b1e0
movb %dl, -0x511(%rbp)
movq %rax, -0x510(%rbp)
jmp 0x19d64
movb -0x511(%rbp), %al
movq -0x510(%rbp), %rcx
movq %rcx, -0x1f8(%rbp)
movb %al, -0x1f0(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x60460
jmp 0x19dd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x1e4(%rbp), %rdi
callq 0x60460
jmp 0x1aa8c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x60460
jmp 0x1aa8c
jmp 0x19dd4
jmp 0x1aa4d
callq 0x1adc0
movq %rax, -0x520(%rbp)
jmp 0x19de7
movq -0x520(%rbp), %rax
movq %rax, -0x200(%rbp)
movq -0x200(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x76426(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x208(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x208(%rbp), %rsi
callq 0x1b100
testb $0x1, %al
jne 0x19e32
jmp 0x19f83
leaq 0x74c6f(%rip), %rdi     # 0x8eaa8
leaq -0xb8(%rbp), %rsi
callq 0x5f5d0
jmp 0x19e47
leaq -0xb8(%rbp), %rdi
callq 0x58d0
testb $0x1, %al
jne 0x19eb9
xorl %eax, %eax
movl %eax, %esi
leaq -0xb8(%rbp), %rdi
callq 0x5a10
movq %rax, -0x528(%rbp)
jmp 0x19e70
movq -0x528(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x21, %eax
jne 0x19eb9
movq -0x90(%rbp), %rax
movq %rax, -0x210(%rbp)
movq -0x210(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x59860
movb %al, -0x529(%rbp)
jmp 0x19ea8
movb -0x529(%rbp), %al
testb $0x1, %al
jne 0x19eb4
jmp 0x19eb9
jmp 0x1aa4d
leaq -0x90(%rbp), %rdi
callq 0x1b050
testb $0x1, 0xaa(%rax)
jne 0x19f81
leaq 0x74bcf(%rip), %rdi     # 0x8eaa8
callq 0x5f710
movq %rax, -0x538(%rbp)
jmp 0x19ee7
movq -0x538(%rbp), %rax
movb $0x0, 0x2(%rax)
leaq 0x74baf(%rip), %rdi     # 0x8eaa8
callq 0x5f710
movq %rax, -0x540(%rbp)
jmp 0x19f07
movq -0x540(%rbp), %rax
movb $0x0, 0x1(%rax)
movswl -0x94(%rbp), %esi
leaq 0x74b88(%rip), %rdi     # 0x8eaa8
callq 0x5f740
jmp 0x19f27
leaq -0x90(%rbp), %rdi
callq 0x1b050
movq %rax, %rsi
addq $0x88, %rsi
leaq 0x74b64(%rip), %rdi     # 0x8eaa8
callq 0x5f440
jmp 0x19f4b
leaq -0x90(%rbp), %rdi
callq 0x1b050
movzbl 0xac(%rax), %esi
leaq 0x74b43(%rip), %rdi     # 0x8eaa8
callq 0x5f390
jmp 0x19f6c
leaq 0x74b35(%rip), %rsi     # 0x8eaa8
movl $0xffff, %edi           # imm = 0xFFFF
callq 0x19160
jmp 0x19f7f
jmp 0x19f81
jmp 0x19f83
jmp 0x1aa4d
callq 0x1adc0
movq %rax, -0x548(%rbp)
jmp 0x19f96
movq -0x548(%rbp), %rax
movq %rax, -0x218(%rbp)
movq -0x218(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x76277(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x220(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x220(%rbp), %rsi
callq 0x1b100
testb $0x1, %al
jne 0x19fde
jmp 0x1a058
leaq 0x74ac3(%rip), %rdi     # 0x8eaa8
callq 0x5f560
movw %ax, -0x54a(%rbp)
jmp 0x19ff3
movw -0x54a(%rbp), %ax
movw %ax, -0x96(%rbp)
movzwl -0x96(%rbp), %eax
movl %eax, -0x550(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
movl -0x550(%rbp), %eax
movzwl 0xa8(%rcx), %ecx
cmpl %ecx, %eax
jle 0x1a056
movw -0x96(%rbp), %ax
movw %ax, -0x552(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x1b050
movw -0x552(%rbp), %cx
movw %cx, 0xa8(%rax)
jmp 0x1a058
jmp 0x1aa4d
xorl %eax, %eax
leaq 0x734ca(%rip), %rcx     # 0x8d530
testb $0x1, (%rcx)
movb %al, -0x553(%rbp)
jne 0x1a0fe
callq 0x1adc0
movq %rax, -0x560(%rbp)
jmp 0x1a083
movq -0x560(%rbp), %rax
movq %rax, -0x228(%rbp)
movq -0x228(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x7618a(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x230(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x1b100
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x553(%rbp)
jne 0x1a0d6
jmp 0x1a0fe
leaq -0x90(%rbp), %rdi
callq 0x1b050
movq %rax, %rdi
addq $0xd8, %rdi
callq 0x1b230
cmpq $0x5, %rax
setb %al
movb %al, -0x553(%rbp)
movb -0x553(%rbp), %al
testb $0x1, %al
jne 0x1a10d
jmp 0x1a8bf
leaq 0x74994(%rip), %rdi     # 0x8eaa8
callq 0x5f560
movw %ax, -0x562(%rbp)
jmp 0x1a122
movw -0x562(%rbp), %ax
movw %ax, -0x96(%rbp)
movzwl -0x96(%rbp), %eax
movl %eax, -0x568(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
movl -0x568(%rbp), %eax
movzwl 0xd0(%rcx), %ecx
cmpl %ecx, %eax
jl 0x1a8bd
movzwl -0x96(%rbp), %eax
movl %eax, -0x56c(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
movl -0x56c(%rbp), %eax
movzwl 0xa8(%rcx), %ecx
cmpl %ecx, %eax
jle 0x1a1b6
movw -0x96(%rbp), %ax
movw %ax, -0x56e(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x1b050
movw -0x56e(%rbp), %cx
movw %cx, 0xa8(%rax)
leaq 0x748eb(%rip), %rdi     # 0x8eaa8
callq 0x5f5a0
movb %al, -0x56f(%rbp)
jmp 0x1a1ca
movb -0x56f(%rbp), %al
movb %al, -0x231(%rbp)
movzwl -0x96(%rbp), %eax
movl %eax, -0x574(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
movl -0x574(%rbp), %eax
movzwl 0xd0(%rcx), %ecx
cmpl %ecx, %eax
jg 0x1a234
movzbl -0x231(%rbp), %eax
movl %eax, -0x578(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x1b050
movq %rax, %rcx
movl -0x578(%rbp), %eax
movzbl 0xd2(%rcx), %ecx
cmpl %ecx, %eax
jle 0x1a8bb
movw -0x96(%rbp), %ax
movw %ax, -0x58a(%rbp)
leaq -0x90(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0x1b050
movw -0x58a(%rbp), %cx
movq -0x588(%rbp), %rdi
movw %cx, 0xd0(%rax)
movb -0x231(%rbp), %al
movb %al, -0x57a(%rbp)
callq 0x1b050
movb -0x57a(%rbp), %cl
movb %cl, 0xd2(%rax)
leaq 0x7481a(%rip), %rdi     # 0x8eaa8
callq 0x5f5a0
movb %al, -0x579(%rbp)
jmp 0x1a29b
movb -0x579(%rbp), %al
movb %al, -0x85(%rbp)
movzbl %al, %eax
cmpl $0x5, %eax
jne 0x1a57b
leaq 0x747ee(%rip), %rdi     # 0x8eaa8
callq 0x5f5a0
movb %al, -0x58b(%rbp)
jmp 0x1a2c7
movb -0x58b(%rbp), %al
movb %al, -0x232(%rbp)
leaq 0x747ce(%rip), %rdi     # 0x8eaa8
callq 0x5f5a0
movb %al, -0x58c(%rbp)
jmp 0x1a2e7
movb -0x58c(%rbp), %al
movb %al, -0x233(%rbp)
movsbl -0x232(%rbp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
cmpl $0xb, %eax
jg 0x1a333
movsbl -0x233(%rbp), %eax
movl %eax, %ecx
negl %ecx
cmovnsl %ecx, %eax
cmpl $0xb, %eax
jg 0x1a333
cmpb $0x0, -0x232(%rbp)
jne 0x1a50a
cmpb $0x0, -0x233(%rbp)
jne 0x1a50a
movsbl -0x232(%rbp), %esi
leaq -0x2d8(%rbp), %rdi
callq 0x609d0
jmp 0x1a348
leaq 0x46f9f(%rip), %rsi     # 0x612ee
leaq -0x2b8(%rbp), %rdi
leaq -0x2d8(%rbp), %rdx
callq 0x18a90
jmp 0x1a364
leaq 0x46fa3(%rip), %rdx     # 0x6130e
leaq -0x298(%rbp), %rdi
leaq -0x2b8(%rbp), %rsi
callq 0x18a40
jmp 0x1a380
movsbl -0x233(%rbp), %esi
leaq -0x2f8(%rbp), %rdi
callq 0x609d0
jmp 0x1a395
leaq -0x278(%rbp), %rdi
leaq -0x298(%rbp), %rsi
leaq -0x2f8(%rbp), %rdx
callq 0x1b260
jmp 0x1a3b1
leaq 0x46f58(%rip), %rdx     # 0x61310
leaq -0x258(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x18a40
jmp 0x1a3cd
leaq -0x258(%rbp), %rdi
callq 0x28d70
jmp 0x1a3db
leaq -0x258(%rbp), %rdi
callq 0x5a48
leaq -0x278(%rbp), %rdi
callq 0x5a48
leaq -0x2f8(%rbp), %rdi
callq 0x5a48
leaq -0x298(%rbp), %rdi
callq 0x5a48
leaq -0x2b8(%rbp), %rdi
callq 0x5a48
leaq -0x2d8(%rbp), %rdi
callq 0x5a48
movq -0x90(%rbp), %rax
movq %rax, -0x300(%rbp)
movq -0x300(%rbp), %rdi
callq 0x1ae60
jmp 0x1a43f
jmp 0x1aa4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1a4f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1a4ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1a4e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1a4d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1a4c9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x258(%rbp), %rdi
callq 0x5a48
leaq -0x278(%rbp), %rdi
callq 0x5a48
leaq -0x2f8(%rbp), %rdi
callq 0x5a48
leaq -0x298(%rbp), %rdi
callq 0x5a48
leaq -0x2b8(%rbp), %rdi
callq 0x5a48
leaq -0x2d8(%rbp), %rdi
callq 0x5a48
jmp 0x1aa8c
movq -0x90(%rbp), %rax
movq %rax, -0x308(%rbp)
movzbl -0x85(%rbp), %esi
movsbl -0x232(%rbp), %edx
movsbl -0x233(%rbp), %ecx
leaq -0x30b(%rbp), %rdi
callq 0x1b330
jmp 0x1a53b
movq -0x308(%rbp), %rdi
movb -0x309(%rbp), %al
movb %al, -0x30e(%rbp)
movw -0x30b(%rbp), %ax
movw %ax, -0x310(%rbp)
movzbl -0x30e(%rbp), %eax
shll $0x10, %eax
movzwl -0x310(%rbp), %esi
orl %eax, %esi
callq 0x3a8c0
jmp 0x1a576
jmp 0x1a8b9
movzbl -0x85(%rbp), %eax
cmpl $0x4, %eax
je 0x1a5bb
movzbl -0x85(%rbp), %eax
cmpl $0x7, %eax
je 0x1a5bb
movzbl -0x85(%rbp), %eax
cmpl $0xc, %eax
je 0x1a5bb
movzbl -0x85(%rbp), %eax
cmpl $0xa, %eax
je 0x1a5bb
movzbl -0x85(%rbp), %eax
cmpl $0xb, %eax
jne 0x1a853
leaq 0x744e6(%rip), %rdi     # 0x8eaa8
callq 0x5f5a0
movb %al, -0x58d(%rbp)
jmp 0x1a5cf
movb -0x58d(%rbp), %al
movb %al, -0x311(%rbp)
movsbl -0x311(%rbp), %eax
cmpl $0x8, %eax
jg 0x1a613
movsbl -0x311(%rbp), %eax
cmpl $0x0, %eax
jl 0x1a613
movsbl -0x311(%rbp), %eax
cmpl $0x8, %eax
jne 0x1a7ea
movzbl -0x85(%rbp), %eax
cmpl $0xc, %eax
je 0x1a7ea
movsbl -0x311(%rbp), %esi
leaq -0x3b8(%rbp), %rdi
callq 0x609d0
jmp 0x1a628
leaq 0x46ce4(%rip), %rsi     # 0x61313
leaq -0x398(%rbp), %rdi
leaq -0x3b8(%rbp), %rdx
callq 0x18a90
jmp 0x1a644
leaq 0x46ce0(%rip), %rdx     # 0x6132b
leaq -0x378(%rbp), %rdi
leaq -0x398(%rbp), %rsi
callq 0x18a40
jmp 0x1a660
movzbl -0x85(%rbp), %esi
leaq -0x3d8(%rbp), %rdi
callq 0x609d0
jmp 0x1a675
leaq -0x358(%rbp), %rdi
leaq -0x378(%rbp), %rsi
leaq -0x3d8(%rbp), %rdx
callq 0x1b260
jmp 0x1a691
leaq 0x46c98(%rip), %rdx     # 0x61330
leaq -0x338(%rbp), %rdi
leaq -0x358(%rbp), %rsi
callq 0x18a40
jmp 0x1a6ad
leaq -0x338(%rbp), %rdi
callq 0x28d70
jmp 0x1a6bb
leaq -0x338(%rbp), %rdi
callq 0x5a48
leaq -0x358(%rbp), %rdi
callq 0x5a48
leaq -0x3d8(%rbp), %rdi
callq 0x5a48
leaq -0x378(%rbp), %rdi
callq 0x5a48
leaq -0x398(%rbp), %rdi
callq 0x5a48
leaq -0x3b8(%rbp), %rdi
callq 0x5a48
movq -0x90(%rbp), %rax
movq %rax, -0x3e0(%rbp)
movq -0x3e0(%rbp), %rdi
callq 0x1ae60
jmp 0x1a71f
jmp 0x1aa4d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1a7d9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1a7cd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1a7c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1a7b5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
jmp 0x1a7a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xc0(%rbp)
movl %eax, -0xc4(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x5a48
leaq -0x358(%rbp), %rdi
callq 0x5a48
leaq -0x3d8(%rbp), %rdi
callq 0x5a48
leaq -0x378(%rbp), %rdi
callq 0x5a48
leaq -0x398(%rbp), %rdi
callq 0x5a48
leaq -0x3b8(%rbp), %rdi
callq 0x5a48
jmp 0x1aa8c
movq -0x90(%rbp), %rax
movq %rax, -0x3e8(%rbp)
movzbl -0x85(%rbp), %esi
movsbl -0x311(%rbp), %edx
leaq -0x3eb(%rbp), %rdi
xorl %ecx, %ecx
callq 0x1b330
jmp 0x1a816
movq -0x3e8(%rbp), %rdi
movb -0x3e9(%rbp), %al
movb %al, -0x3ee(%rbp)
movw -0x3eb(%rbp), %ax
movw %ax, -0x3f0(%rbp)
movzbl -0x3ee(%rbp), %eax
shll $0x10, %eax
movzwl -0x3f0(%rbp), %esi
orl %eax, %esi
callq 0x3a8c0
jmp 0x1a851
jmp 0x1a8b7
movq -0x90(%rbp), %rax
movq %rax, -0x3f8(%rbp)
movzbl -0x85(%rbp), %esi
leaq -0x3fb(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x1b330
jmp 0x1a87a
movq -0x3f8(%rbp), %rdi
movb -0x3f9(%rbp), %al
movb %al, -0x3fe(%rbp)
movw -0x3fb(%rbp), %ax
movw %ax, -0x400(%rbp)
movzbl -0x3fe(%rbp), %eax
shll $0x10, %eax
movzwl -0x400(%rbp), %esi
orl %eax, %esi
callq 0x3a8c0
jmp 0x1a8b5
jmp 0x1a8b7
jmp 0x1a8b9
jmp 0x1a8bb
jmp 0x1a8bd
jmp 0x1a8bf
jmp 0x1aa4d
callq 0x1adc0
movq %rax, -0x598(%rbp)
jmp 0x1a8d2
movq -0x598(%rbp), %rax
movq %rax, -0x408(%rbp)
movq -0x408(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x7593b(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x410(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x410(%rbp), %rsi
callq 0x1b100
testb $0x1, %al
jne 0x1a91a
jmp 0x1a955
movq -0x90(%rbp), %rax
movq %rax, -0x418(%rbp)
leaq 0x74179(%rip), %rdi     # 0x8eaa8
callq 0x5f5a0
movb %al, -0x599(%rbp)
jmp 0x1a93c
movb -0x599(%rbp), %al
movzbl %al, %esi
movq -0x418(%rbp), %rdi
callq 0x3b630
jmp 0x1a953
jmp 0x1a955
jmp 0x1aa4d
callq 0x1adc0
movq %rax, -0x5a8(%rbp)
jmp 0x1a968
movq -0x5a8(%rbp), %rax
movq %rax, -0x420(%rbp)
movq -0x420(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x758a5(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x428(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x428(%rbp), %rsi
callq 0x1b100
testb $0x1, %al
jne 0x1a9b0
jmp 0x1a9ce
movq -0x90(%rbp), %rax
movq %rax, -0x430(%rbp)
movq -0x430(%rbp), %rdi
callq 0x3bfc0
jmp 0x1a9cc
jmp 0x1a9ce
jmp 0x1aa4d
callq 0x1adc0
movq %rax, -0x5b0(%rbp)
jmp 0x1a9de
movq -0x5b0(%rbp), %rax
movq %rax, -0x438(%rbp)
movq -0x438(%rbp), %rax
movq %rax, -0x90(%rbp)
leaq 0x7582f(%rip), %rdi     # 0x90230
callq 0x189f0
movq %rax, -0x440(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x440(%rbp), %rsi
callq 0x1b100
testb $0x1, %al
jne 0x1aa26
jmp 0x1aa49
leaq -0x448(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x18a20
movq -0x448(%rbp), %rdi
callq 0x3b320
jmp 0x1aa47
jmp 0x1aa49
jmp 0x1aa4d
jmp 0x1aa4d
jmp 0x19234
movsbl -0x91(%rbp), %eax
cmpl $0x1, %eax
sete %al
movb %al, -0x5b1(%rbp)
movl $0x1, -0xf0(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x5a48
movb -0x5b1(%rbp), %al
andb $0x1, %al
addq $0x5c0, %rsp            # imm = 0x5C0
popq %rbp
retq
leaq -0xb8(%rbp), %rdi
callq 0x5a48
movq -0xc0(%rbp), %rdi
callq 0x5920
nopw %cs:(%rax,%rax)