// File: rohitrangan[P]3PC/src/server_fail.cpp
// Function: main
int main(int argc, char *argv[])
{
    /* Signal handling to shutdown the ports and the server. */
    struct sigaction sigint_handler;
    sigint_handler.sa_handler = server_shutdown;
    sigemptyset (&sigint_handler.sa_mask);
    sigint_handler.sa_flags = 0;
    if (sigaction(SIGINT, &sigint_handler, NULL) < 0)
    {
        cerr << "ERROR! Cannot Start Signal Handler\n\n";
        return 1;
    }

    if (argc != 4)
    {
        cout << "Not enough parameters.\n";
        return 1;
    }

    int site_id = std::stoi (string (argv[1]));
    int tid_fail = std::stoi (string (argv[2]));
    int fail_loc = std::stoi (string (argv[3]));
    srand (time (NULL));
	//Socket site;
	std::map<int, int> sites;
	sites[0] = 6666;
	sites[1] = 6667;
	sites[2] = 6668;
	site.bind (sites[site_id]);
	set<int> txLive;
	map<int,transaction_info> trans_table;
	site.listen(100);
	cout << "Server " << site_id << " Up" << endl;
	while(1)
	{
		Socket inc = site.accept();
		string str;
        str = inc.recv ((size_t) 1024);
        //cout << "Received str:- " << str << endl;
		Message msg(str);
        string tempStr, snd_msg;
        transaction_info new_t;
		switch(msg.message)
		{
			case TRANSACTION:
            {
                new_t.numVotes = 1;
                new_t.site_st = S_INIT;
                new_t.coordinator = site_id;
				trans_table[msg.transaction_id] = new_t;
                cout << "Site " << site_id << " accepted transaction " <<
                    msg.transaction_id << endl;
				Message tempMsg(START_VOTE,msg.transaction_id, site_id);
				tempStr = tempMsg.createMessage();
				txLive.insert(msg.transaction_id);
				for(int i = 0; i < sites.size();i++)
				{
                    Socket temp;
                    if (i != site_id)
                    {
					    if (temp.connect("localhost", sites[i]) < 0)
                        {
                            cout << "Site " << site_id << " timed out in State "
                                << "INITIAL" << endl;
                            termination_protocol (site_id, i, site, true, sites,
                                    txLive, trans_table);
                            cout << "Site " << site_id << " ended TERMINATION"
                                << endl;
                            sites.erase (i);
                            break;
                        }
					    temp.send(tempStr);
                        cout << "[" << msg.transaction_id << "]Site " << site_id
                            << " sent START_VOTE to Site " << i << endl;
                    }
				}
                trans_table[msg.transaction_id].site_st = S_WAIT;
                if ((fail_loc == 2) && (msg.transaction_id > tid_fail))
                {
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " is FAILING" << endl;
                    exit (1);
                }
				break;
            }
			case VOTE_COMMIT:
            {
				trans_table[msg.transaction_id].numVotes++;
                cout << "[" << msg.transaction_id << "]Site " << site_id
                    << " got VOTE_COMMIT from Site " << msg.site_id << endl;
				if(trans_table[msg.transaction_id].numVotes==sites.size())
				{
                    cout << "[" << msg.transaction_id << "]Site " << site_id <<
                        " has all vote commits." << endl;
					Message tempMsg(PRE_COMMIT,msg.transaction_id, site_id);
					tempStr = tempMsg.createMessage();
					for(int i = 0; i < sites.size();i++)
					{
                        Socket temp;
                        if (i != site_id)
                        {
						    if (temp.connect("localhost", sites[i]) < 0)
                            {
                                cout << "Site " << site_id << " timed out in "
                                    << "State WAIT" << endl;
                                termination_protocol (site_id, i, site, true,
                                        sites, txLive, trans_table);
                                cout << "Site " << site_id << " ended "
                                    "TERMINATION" << endl;
                                sites.erase (i);
                                break;
                            }
                            temp.send(tempStr);
                            cout << "[" << msg.transaction_id << "]Site " <<
                                site_id << " sent PRE_COMMIT to Site " << i <<
                                endl;
                        }
					}
					trans_table[msg.transaction_id].site_st = S_PRE_COMMIT;
					trans_table[msg.transaction_id].numVotes = 1;
				}
				break;
            }
			case VOTE_ABORT:
            {
                if(txLive.find(msg.transaction_id) != txLive.end())
                {
                    Message tempMsg(ABORT,msg.transaction_id, site_id);
                    tempStr = tempMsg.createMessage();
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " got VOTE_ABORT from Site " << msg.site_id << endl;
                    for(int i = 0; i < sites.size();i++)
                    {
                        Socket temp;
                        if (i != site_id)
                        {
                            if (temp.connect("localhost", sites[i]) < 0)
                            {
                                cout << "Site " << site_id << " timed out in "
                                    << "State WAIT" << endl;
                                termination_protocol (site_id, i, site, true,
                                        sites, txLive, trans_table);
                                cout << "Site " << site_id << " ended "
                                    << "TERMINATION" << endl;
                                sites.erase (i);
                                break;
                            }
                            temp.send(tempStr);
                            cout << "[" << msg.transaction_id << "]Site " <<
                                site_id << " sent ABORT to Site " << i <<
                                endl;
                        }
                    }
                    txLive.erase(msg.transaction_id);
                    trans_table[msg.transaction_id].site_st = S_ABORT;
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                            << " ABORTED" << "\n\n\n";
                }
				break;
            }
			case ACK:
            {
                cout << "[" << msg.transaction_id << "]Site " << site_id
                    << " got ACK from Site " << msg.site_id << endl;
				trans_table[msg.transaction_id].numVotes++;
				if(trans_table[msg.transaction_id].numVotes==sites.size())
				{
					Message tempMsg(COMMIT, msg.transaction_id, site_id);
					string tempStr = tempMsg.createMessage();
					for(int i = 0; i < sites.size();i++)
					{
                        Socket temp;
                        if (i != site_id)
                        {
                            if (temp.connect("localhost", sites[i]) < 0)
                            {
                                cout << "Site " << site_id << " timed out in "
                                    << "State PRE_COMMIT" << endl;
                                termination_protocol (site_id, i, site, true,
                                        sites, txLive, trans_table);
                                cout << "Site " << site_id << " ended "
                                    "TERMINATION" << endl;
                                sites.erase (i);
                                break;
                            }
                            temp.send(tempStr);
                            cout << "[" << msg.transaction_id << "]Site " <<
                            site_id << " sent COMMIT to Site " << i <<
                            endl;
                        }
					}
					trans_table[msg.transaction_id].site_st = S_COMMIT;
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " COMMITTED" << "\n\n\n";
                    txLive.erase (msg.transaction_id);
				}
				break;
            }
            case START_VOTE:
            {
                cout << "[" << msg.transaction_id << "]Site " << site_id
                    << " got START_VOTE from Site " << msg.site_id << endl;
                if ((fail_loc == 0) && (msg.transaction_id > tid_fail))
                {
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " is FAILING" << endl;
                    exit (1);
                }
                txLive.insert (msg.transaction_id);
                new_t.numVotes = -1;
                new_t.site_st = S_INIT;
                new_t.coordinator = msg.site_id;
				trans_table[msg.transaction_id] = new_t;
                Socket tmp;
                int will_abort = rand () % ABORT_DENOM;
                if (will_abort < ABORT_NUM)
                {
                    Message vote_abort (VOTE_ABORT, msg.transaction_id,
                                site_id);
                    snd_msg = vote_abort.createMessage ();
                    if (tmp.connect("localhost", sites[msg.site_id]) < 0)
                    {
                        cout << "Site " << site_id << " timed out in "
                            << "State INITIAL" << endl;
                        termination_protocol (site_id, msg.site_id, site, true,
                                sites, txLive, trans_table);
                        cout << "Site " << site_id << " ended "
                            "TERMINATION" << endl;
                        sites.erase (msg.site_id);
                        break;
                    }
                    tmp.send (snd_msg);
                    trans_table[msg.transaction_id].site_st = S_ABORT;
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " sent VOTE_ABORT to Site " << msg.site_id << endl;
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " ABORTED." << "\n\n\n";
                    txLive.erase (msg.transaction_id);
                }
                else
                {
                    Message vote_commit (VOTE_COMMIT, msg.transaction_id,
                                site_id);
                    snd_msg = vote_commit.createMessage ();
                    if (tmp.connect("localhost", sites[msg.site_id]) < 0)
                    {
                        cout << "Site " << site_id << " timed out in "
                            << "State INITIAL" << endl;
                        termination_protocol (site_id, msg.site_id, site, true,
                                sites, txLive, trans_table);
                        cout << "Site " << site_id << " ended "
                            "TERMINATION" << endl;
                        sites.erase (msg.site_id);
                        break;
                    }
                    tmp.send (snd_msg);
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " sent VOTE_COMMIT to Site " << msg.site_id << endl;
                    trans_table[msg.transaction_id].site_st = S_READY;
                }
                break;
            }
            case PRE_COMMIT:
            {
                Socket tmp;
                cout << "[" << msg.transaction_id << "]Site " << site_id
                    << " got PRE_COMMIT from Site " << msg.site_id << endl;
                if ((fail_loc == 1) && (msg.transaction_id > tid_fail))
                {
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " is FAILING" << endl;
                    exit (1);
                }
                Message ack (ACK, msg.transaction_id, site_id);
                snd_msg = ack.createMessage ();
                if (tmp.connect("localhost", sites[msg.site_id]) < 0)
                {
                    cout << "Site " << site_id << " timed out in "
                        << "State READY" << endl;
                    termination_protocol (site_id, msg.site_id, site, true,
                            sites, txLive, trans_table);
                    cout << "Site " << site_id << " ended "
                        "TERMINATION" << endl;
                    sites.erase (msg.site_id);
                    break;
                }
                tmp.send (snd_msg);
                cout << "[" << msg.transaction_id << "]Site " << site_id
                    << " sent ACK to Site " << msg.site_id << endl;
                trans_table[msg.transaction_id].site_st = S_PRE_COMMIT;
                break;
            }
            case COMMIT:
            {
                if(txLive.find(msg.transaction_id) != txLive.end())
                {
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " got COMMIT from Site " << msg.site_id << endl;
                    trans_table[msg.transaction_id].site_st = S_COMMIT;
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " COMMITTED" << "\n\n\n";
                    txLive.erase (msg.transaction_id);
                }
                break;
            }
            case ABORT:
            {
                if(txLive.find(msg.transaction_id) != txLive.end())
                {
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " got ABORT from Site " << msg.site_id << endl;
                    trans_table[msg.transaction_id].site_st = S_ABORT;
                    cout << "[" << msg.transaction_id << "]Site " << site_id
                        << " ABORTED" << "\n\n\n";
                    txLive.erase (msg.transaction_id);
                }
                break;
            }
            case TERMINATION:
            {
                cout << "Site " << site_id << " got TERMINATION" << endl;
                Socket tmp;
                Message ack (ACK, msg.transaction_id, site_id);
                snd_msg = ack.createMessage ();
                if (tmp.connect ("localhost", sites[msg.site_id]) < 0)
                {
                    cout << "COULD NOT CONNECT!!!!\n";
                    cout << "Error number = " << errno << endl;
                }
                tmp.send (snd_msg);
                termination_protocol (site_id, msg.failed_id, site, false,
                        sites, txLive, trans_table);
                cout << "Site " << site_id << " finished TERMINATION" << endl;
                sites.erase (msg.failed_id);
                break;
            }
            default:
                return -1;

		}

	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10b0, %rsp           # imm = 0x10B0
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x90(%rip), %rax       # 0x3ba0
movq %rax, -0xa8(%rbp)
leaq -0xa8(%rbp), %rdi
addq $0x8, %rdi
callq 0x33f0
movl $0x0, -0x20(%rbp)
movl $0x2, %edi
leaq -0xa8(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x3400
cmpl $0x0, %eax
jge 0x3c87
movq 0x12381(%rip), %rdi     # 0x15ff0
leaq 0xc413(%rip), %rsi      # 0x10089
callq 0x32e0
movl $0x1, -0x4(%rbp)
jmp 0x758f
cmpl $0x4, -0x8(%rbp)
je 0x3cac
movq 0x12334(%rip), %rdi     # 0x15fc8
leaq 0xc413(%rip), %rsi      # 0x100ae
callq 0x32e0
movl $0x1, -0x4(%rbp)
jmp 0x758f
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x840(%rbp)
leaq -0xd1(%rbp), %rdi
movq %rdi, -0x838(%rbp)
callq 0x34c0
movq -0x840(%rbp), %rsi
movq -0x838(%rbp), %rdx
leaq -0xd0(%rbp), %rdi
callq 0x75f0
jmp 0x3cea
xorl %eax, %eax
movl %eax, %esi
leaq -0xd0(%rbp), %rdi
movl $0xa, %edx
callq 0x75b0
movl %eax, -0x844(%rbp)
jmp 0x3d07
leaq -0xd0(%rbp), %rdi
callq 0x31b0
leaq -0xd1(%rbp), %rdi
callq 0x3360
movl -0x844(%rbp), %eax
movl %eax, -0xac(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x858(%rbp)
leaq -0x109(%rbp), %rdi
movq %rdi, -0x850(%rbp)
callq 0x34c0
movq -0x858(%rbp), %rsi
movq -0x850(%rbp), %rdx
leaq -0x108(%rbp), %rdi
callq 0x75f0
jmp 0x3d69
xorl %eax, %eax
movl %eax, %esi
leaq -0x108(%rbp), %rdi
movl $0xa, %edx
callq 0x75b0
movl %eax, -0x85c(%rbp)
jmp 0x3d86
leaq -0x108(%rbp), %rdi
callq 0x31b0
leaq -0x109(%rbp), %rdi
callq 0x3360
movl -0x85c(%rbp), %eax
movl %eax, -0xe8(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x870(%rbp)
leaq -0x131(%rbp), %rdi
movq %rdi, -0x868(%rbp)
callq 0x34c0
movq -0x870(%rbp), %rsi
movq -0x868(%rbp), %rdx
leaq -0x130(%rbp), %rdi
callq 0x75f0
jmp 0x3de8
xorl %eax, %eax
movl %eax, %esi
leaq -0x130(%rbp), %rdi
movl $0xa, %edx
callq 0x75b0
movl %eax, -0x874(%rbp)
jmp 0x3e05
leaq -0x130(%rbp), %rdi
callq 0x31b0
leaq -0x131(%rbp), %rdi
callq 0x3360
movl -0x874(%rbp), %eax
movl %eax, -0x110(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x32a0
movl %eax, %edi
callq 0x32c0
leaq -0x168(%rbp), %rdi
movq %rdi, -0x888(%rbp)
callq 0x76a0
movq -0x888(%rbp), %rdi
movl $0x0, -0x16c(%rbp)
leaq -0x16c(%rbp), %rsi
callq 0x76c0
movq %rax, -0x880(%rbp)
jmp 0x3e72
movq -0x880(%rbp), %rax
movl $0x1a0a, (%rax)         # imm = 0x1A0A
movl $0x1, -0x170(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x76c0
movq %rax, -0x890(%rbp)
jmp 0x3ea5
movq -0x890(%rbp), %rax
movl $0x1a0b, (%rax)         # imm = 0x1A0B
movl $0x2, -0x174(%rbp)
leaq -0x168(%rbp), %rdi
leaq -0x174(%rbp), %rsi
callq 0x76c0
movq %rax, -0x898(%rbp)
jmp 0x3ed8
movq -0x898(%rbp), %rax
movl $0x1a0c, (%rax)         # imm = 0x1A0C
leaq -0x168(%rbp), %rdi
leaq -0xac(%rbp), %rsi
callq 0x77a0
movq %rax, -0x8a0(%rbp)
jmp 0x3f01
movq -0x8a0(%rbp), %rax
movl (%rax), %esi
leaq 0x12397(%rip), %rdi     # 0x162a8
callq 0xc3c0
jmp 0x3f18
leaq -0x1a8(%rbp), %rdi
callq 0x7880
leaq -0x1d8(%rbp), %rdi
callq 0x78a0
leaq 0x12371(%rip), %rdi     # 0x162a8
movl $0x64, %esi
callq 0xc490
jmp 0x3f43
movq 0x1207e(%rip), %rdi     # 0x15fc8
leaq 0xc175(%rip), %rsi      # 0x100c6
callq 0x32e0
movq %rax, -0x8a8(%rbp)
jmp 0x3f5f
movq -0x8a8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0x8b0(%rbp)
jmp 0x3f7a
movq -0x8b0(%rbp), %rdi
leaq 0xc146(%rip), %rsi      # 0x100ce
callq 0x32e0
movq %rax, -0x8b8(%rbp)
jmp 0x3f96
movq -0x8b8(%rbp), %rdi
movq 0x12014(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x3fab
jmp 0x3fad
jmp 0x3faf
leaq 0x122f2(%rip), %rsi     # 0x162a8
leaq -0x1e0(%rbp), %rdi
callq 0xc4c0
jmp 0x3fc4
leaq -0x200(%rbp), %rdi
callq 0x3440
leaq -0x220(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
movl $0x400, %edx            # imm = 0x400
callq 0xc280
jmp 0x3fea
leaq -0x200(%rbp), %rdi
movq %rdi, -0x8c0(%rbp)
leaq -0x220(%rbp), %rsi
movq %rsi, -0x8c8(%rbp)
callq 0x33d0
movq -0x8c8(%rbp), %rdi
callq 0x31b0
movq -0x8c0(%rbp), %rsi
leaq -0x270(%rbp), %rdi
callq 0x3110
jmp 0x402c
leaq -0x250(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0xcb40
jmp 0x4041
leaq -0x270(%rbp), %rdi
callq 0x31b0
leaq -0x290(%rbp), %rdi
callq 0x3440
leaq -0x2b0(%rbp), %rdi
callq 0x3440
movl -0x250(%rbp), %eax
movq %rax, -0x8d0(%rbp)
subq $0x8, %rax
ja 0x749b
movq -0x8d0(%rbp), %rax
leaq 0xbf7a(%rip), %rcx      # 0x10004
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x40c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x31b0
leaq -0xd1(%rbp), %rdi
callq 0x3360
jmp 0x759b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x4108
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x31b0
leaq -0x109(%rbp), %rdi
callq 0x3360
jmp 0x759b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x414b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x31b0
leaq -0x131(%rbp), %rdi
callq 0x3360
jmp 0x759b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x7581
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x7569
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x7529
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x31b0
jmp 0x7529
movl $0x1, -0x2bc(%rbp)
movl $0x0, -0x2b8(%rbp)
movl -0xac(%rbp), %eax
movl %eax, -0x2b4(%rbp)
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0x8d8(%rbp)
jmp 0x4200
movq -0x8d8(%rbp), %rax
movl -0x2b4(%rbp), %ecx
movl %ecx, 0x8(%rax)
movq -0x2bc(%rbp), %rcx
movq %rcx, (%rax)
movq 0x11da7(%rip), %rdi     # 0x15fc8
leaq 0xc029(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0x8e0(%rbp)
jmp 0x4236
movq -0x8e0(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0x8e8(%rbp)
jmp 0x4251
movq -0x8e8(%rbp), %rdi
leaq 0xbe73(%rip), %rsi      # 0x100d2
callq 0x32e0
movq %rax, -0x8f0(%rbp)
jmp 0x426d
movq -0x8f0(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0x8f8(%rbp)
jmp 0x4288
movq -0x8f8(%rbp), %rdi
movq 0x11d22(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x429d
movl -0x24c(%rbp), %edx
movl -0xac(%rbp), %ecx
leaq -0x2f0(%rbp), %rdi
movl $0x1, %esi
callq 0xcab0
jmp 0x42bc
leaq -0x310(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0xcce0
jmp 0x42d1
leaq -0x290(%rbp), %rdi
leaq -0x310(%rbp), %rsi
movq %rsi, -0x910(%rbp)
callq 0x33d0
movq -0x910(%rbp), %rdi
callq 0x31b0
leaq -0x24c(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x79a0
movb %dl, -0x901(%rbp)
movq %rax, -0x900(%rbp)
jmp 0x4319
movb -0x901(%rbp), %al
movq -0x900(%rbp), %rcx
movq %rcx, -0x320(%rbp)
movb %al, -0x318(%rbp)
movl $0x0, -0x324(%rbp)
movslq -0x324(%rbp), %rax
movq %rax, -0x918(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x79f0
movq %rax, %rcx
movq -0x918(%rbp), %rax
cmpq %rcx, %rax
jae 0x474f
leaq -0x32c(%rbp), %rdi
callq 0xbfb0
jmp 0x4378
movl -0x324(%rbp), %eax
cmpl -0xac(%rbp), %eax
je 0x4704
leaq -0x351(%rbp), %rdi
movq %rdi, -0x920(%rbp)
callq 0x34c0
movq -0x920(%rbp), %rdx
leaq 0xbd3e(%rip), %rsi      # 0x100e9
leaq -0x350(%rbp), %rdi
callq 0x75f0
jmp 0x43b9
leaq -0x168(%rbp), %rdi
leaq -0x324(%rbp), %rsi
callq 0x77a0
movq %rax, -0x928(%rbp)
jmp 0x43d5
movq -0x928(%rbp), %rax
movl (%rax), %edx
leaq -0x32c(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0xbff0
movl %eax, -0x92c(%rbp)
jmp 0x43f9
leaq -0x350(%rbp), %rdi
callq 0x31b0
leaq -0x351(%rbp), %rdi
callq 0x3360
movl -0x92c(%rbp), %eax
cmpl $0x0, %eax
jge 0x45f2
movq 0x11ba1(%rip), %rdi     # 0x15fc8
leaq 0xbe23(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0x938(%rbp)
jmp 0x443c
movq -0x938(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0x940(%rbp)
jmp 0x4457
movq -0x940(%rbp), %rdi
leaq 0xbc8e(%rip), %rsi      # 0x100f3
callq 0x32e0
movq %rax, -0x948(%rbp)
jmp 0x4473
movq -0x948(%rbp), %rdi
leaq 0xbddc(%rip), %rsi      # 0x1025d
callq 0x32e0
movq %rax, -0x950(%rbp)
jmp 0x448f
movq -0x950(%rbp), %rdi
movq 0x11b1b(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x44a4
movl -0xac(%rbp), %edi
movl -0x324(%rbp), %esi
movq %rsp, %rax
leaq -0x1d8(%rbp), %rcx
movq %rcx, (%rax)
leaq 0x11de4(%rip), %rdx     # 0x162a8
movl $0x1, %ecx
leaq -0x168(%rbp), %r8
leaq -0x1a8(%rbp), %r9
callq 0xdc40
jmp 0x44de
movq 0x11ae3(%rip), %rdi     # 0x15fc8
leaq 0xbd65(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0x958(%rbp)
jmp 0x44fa
movq -0x958(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0x960(%rbp)
jmp 0x4515
movq -0x960(%rbp), %rdi
leaq 0xbbe5(%rip), %rsi      # 0x10108
callq 0x32e0
movq %rax, -0x968(%rbp)
jmp 0x4531
movq -0x968(%rbp), %rdi
movq 0x11a79(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x4546
leaq -0x168(%rbp), %rdi
leaq -0x324(%rbp), %rsi
callq 0x7a10
jmp 0x455b
movl $0x5, -0x358(%rbp)
jmp 0x470e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x7505
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x485c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x45ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x350(%rbp), %rdi
callq 0x31b0
leaq -0x351(%rbp), %rdi
callq 0x3360
jmp 0x473e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x473e
leaq -0x378(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x3110
jmp 0x4607
leaq -0x32c(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0xc1f0
jmp 0x461c
leaq -0x378(%rbp), %rdi
callq 0x31b0
movq 0x11999(%rip), %rdi     # 0x15fc8
leaq 0xbae5(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0x970(%rbp)
jmp 0x4644
movq -0x970(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0x978(%rbp)
jmp 0x465f
movq -0x978(%rbp), %rdi
leaq 0xbab0(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0x980(%rbp)
jmp 0x467b
movq -0x980(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0x988(%rbp)
jmp 0x4696
movq -0x988(%rbp), %rdi
leaq 0xba80(%rip), %rsi      # 0x10124
callq 0x32e0
movq %rax, -0x990(%rbp)
jmp 0x46b2
movq -0x990(%rbp), %rdi
movl -0x324(%rbp), %esi
callq 0x34a0
movq %rax, -0x998(%rbp)
jmp 0x46cd
movq -0x998(%rbp), %rdi
movq 0x118dd(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x46e2
jmp 0x4704
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x378(%rbp), %rdi
callq 0x31b0
jmp 0x473e
movl $0x0, -0x358(%rbp)
leaq -0x32c(%rbp), %rdi
callq 0xc7d0
movl -0x358(%rbp), %eax
testl %eax, %eax
je 0x4728
jmp 0x4726
jmp 0x474f
jmp 0x472a
movl -0x324(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x324(%rbp)
jmp 0x433d
leaq -0x32c(%rbp), %rdi
callq 0xc7d0
jmp 0x485c
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0x9a0(%rbp)
jmp 0x476b
movq -0x9a0(%rbp), %rax
movl $0x2, 0x4(%rax)
cmpl $0x2, -0x110(%rbp)
jne 0x4841
movl -0x24c(%rbp), %eax
cmpl -0xe8(%rbp), %eax
jle 0x4841
movq 0x11829(%rip), %rdi     # 0x15fc8
leaq 0xb975(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0x9a8(%rbp)
jmp 0x47b4
movq -0x9a8(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0x9b0(%rbp)
jmp 0x47cf
movq -0x9b0(%rbp), %rdi
leaq 0xb940(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0x9b8(%rbp)
jmp 0x47eb
movq -0x9b8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0x9c0(%rbp)
jmp 0x4806
movq -0x9c0(%rbp), %rdi
leaq 0xb92a(%rip), %rsi      # 0x1013e
callq 0x32e0
movq %rax, -0x9c8(%rbp)
jmp 0x4822
movq -0x9c8(%rbp), %rdi
movq 0x11788(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x4837
movl $0x1, %edi
callq 0x33c0
movl $0x4, -0x358(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x7a40
jmp 0x74ae
leaq -0x2f0(%rbp), %rdi
callq 0x7a40
jmp 0x7505
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0x9d0(%rbp)
jmp 0x4889
movq -0x9d0(%rbp), %rax
movl (%rax), %ecx
incl %ecx
movl %ecx, (%rax)
movq 0x1172b(%rip), %rdi     # 0x15fc8
leaq 0xb877(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0x9d8(%rbp)
jmp 0x48b2
movq -0x9d8(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0x9e0(%rbp)
jmp 0x48cd
movq -0x9e0(%rbp), %rdi
leaq 0xb842(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0x9e8(%rbp)
jmp 0x48e9
movq -0x9e8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0x9f0(%rbp)
jmp 0x4904
movq -0x9f0(%rbp), %rdi
leaq 0xb838(%rip), %rsi      # 0x1014a
callq 0x32e0
movq %rax, -0x9f8(%rbp)
jmp 0x4920
movq -0x9f8(%rbp), %rdi
movl -0x248(%rbp), %esi
callq 0x34a0
movq %rax, -0xa00(%rbp)
jmp 0x493b
movq -0xa00(%rbp), %rdi
movq 0x1166f(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x4950
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xa08(%rbp)
jmp 0x496c
movq -0xa08(%rbp), %rax
movslq (%rax), %rax
movq %rax, -0xa10(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x79f0
movq %rax, %rcx
movq -0xa10(%rbp), %rax
cmpq %rcx, %rax
jne 0x4f02
movq 0x11625(%rip), %rdi     # 0x15fc8
leaq 0xb771(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xa18(%rbp)
jmp 0x49b8
movq -0xa18(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xa20(%rbp)
jmp 0x49d3
movq -0xa20(%rbp), %rdi
leaq 0xb73c(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xa28(%rbp)
jmp 0x49ef
movq -0xa28(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xa30(%rbp)
jmp 0x4a0a
movq -0xa30(%rbp), %rdi
leaq 0xb74e(%rip), %rsi      # 0x10166
callq 0x32e0
movq %rax, -0xa38(%rbp)
jmp 0x4a26
movq -0xa38(%rbp), %rdi
movq 0x11584(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x4a3b
movl -0x24c(%rbp), %edx
movl -0xac(%rbp), %ecx
leaq -0x3a8(%rbp), %rdi
movl $0x4, %esi
callq 0xcab0
jmp 0x4a5a
leaq -0x3c8(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
callq 0xcce0
jmp 0x4a6f
leaq -0x290(%rbp), %rdi
leaq -0x3c8(%rbp), %rsi
callq 0x33d0
leaq -0x3c8(%rbp), %rdi
callq 0x31b0
movl $0x0, -0x3cc(%rbp)
movslq -0x3cc(%rbp), %rax
movq %rax, -0xa40(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x79f0
movq %rax, %rcx
movq -0xa40(%rbp), %rax
cmpq %rcx, %rax
jae 0x4e90
leaq -0x3d4(%rbp), %rdi
callq 0xbfb0
jmp 0x4ad3
movl -0x3cc(%rbp), %eax
cmpl -0xac(%rbp), %eax
je 0x4e48
leaq -0x3f9(%rbp), %rdi
movq %rdi, -0xa48(%rbp)
callq 0x34c0
movq -0xa48(%rbp), %rdx
leaq 0xb5e3(%rip), %rsi      # 0x100e9
leaq -0x3f8(%rbp), %rdi
callq 0x75f0
jmp 0x4b14
leaq -0x168(%rbp), %rdi
leaq -0x3cc(%rbp), %rsi
callq 0x77a0
movq %rax, -0xa50(%rbp)
jmp 0x4b30
movq -0xa50(%rbp), %rax
movl (%rax), %edx
leaq -0x3d4(%rbp), %rdi
leaq -0x3f8(%rbp), %rsi
callq 0xbff0
movl %eax, -0xa54(%rbp)
jmp 0x4b54
leaq -0x3f8(%rbp), %rdi
callq 0x31b0
leaq -0x3f9(%rbp), %rdi
callq 0x3360
movl -0xa54(%rbp), %eax
cmpl $0x0, %eax
jge 0x4d36
movq 0x11446(%rip), %rdi     # 0x15fc8
leaq 0xb6c8(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xa60(%rbp)
jmp 0x4b97
movq -0xa60(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xa68(%rbp)
jmp 0x4bb2
movq -0xa68(%rbp), %rdi
leaq 0xb5bd(%rip), %rsi      # 0x1017d
callq 0x32e0
movq %rax, -0xa70(%rbp)
jmp 0x4bce
movq -0xa70(%rbp), %rdi
leaq 0xb5b0(%rip), %rsi      # 0x1018c
callq 0x32e0
movq %rax, -0xa78(%rbp)
jmp 0x4bea
movq -0xa78(%rbp), %rdi
movq 0x113c0(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x4bff
movl -0xac(%rbp), %edi
movl -0x3cc(%rbp), %esi
movq %rsp, %rax
leaq -0x1d8(%rbp), %rcx
movq %rcx, (%rax)
leaq 0x11689(%rip), %rdx     # 0x162a8
movl $0x1, %ecx
leaq -0x168(%rbp), %r8
leaq -0x1a8(%rbp), %r9
callq 0xdc40
jmp 0x4c39
movq 0x11388(%rip), %rdi     # 0x15fc8
leaq 0xb60a(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xa80(%rbp)
jmp 0x4c55
movq -0xa80(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xa88(%rbp)
jmp 0x4c70
movq -0xa88(%rbp), %rdi
leaq 0xb48a(%rip), %rsi      # 0x10108
callq 0x32e0
movq %rax, -0xa90(%rbp)
jmp 0x4c8c
movq -0xa90(%rbp), %rdi
movq 0x1131e(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x4ca1
leaq -0x168(%rbp), %rdi
leaq -0x3cc(%rbp), %rsi
callq 0x7a10
jmp 0x4cb6
movl $0x8, -0x358(%rbp)
jmp 0x4e52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x4ef1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x4d0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x3f8(%rbp), %rdi
callq 0x31b0
leaq -0x3f9(%rbp), %rdi
callq 0x3360
jmp 0x4e82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x4e82
leaq -0x420(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x3110
jmp 0x4d4b
leaq -0x3d4(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0xc1f0
jmp 0x4d60
leaq -0x420(%rbp), %rdi
callq 0x31b0
movq 0x11255(%rip), %rdi     # 0x15fc8
leaq 0xb3a1(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xa98(%rbp)
jmp 0x4d88
movq -0xa98(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xaa0(%rbp)
jmp 0x4da3
movq -0xaa0(%rbp), %rdi
leaq 0xb36c(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xaa8(%rbp)
jmp 0x4dbf
movq -0xaa8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xab0(%rbp)
jmp 0x4dda
movq -0xab0(%rbp), %rdi
leaq 0xb3af(%rip), %rsi      # 0x10197
callq 0x32e0
movq %rax, -0xab8(%rbp)
jmp 0x4df6
movq -0xab8(%rbp), %rdi
movl -0x3cc(%rbp), %esi
callq 0x34a0
movq %rax, -0xac0(%rbp)
jmp 0x4e11
movq -0xac0(%rbp), %rdi
movq 0x11199(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x4e26
jmp 0x4e48
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x420(%rbp), %rdi
callq 0x31b0
jmp 0x4e82
movl $0x0, -0x358(%rbp)
leaq -0x3d4(%rbp), %rdi
callq 0xc7d0
movl -0x358(%rbp), %eax
testl %eax, %eax
je 0x4e6c
jmp 0x4e6a
jmp 0x4e90
jmp 0x4e6e
movl -0x3cc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3cc(%rbp)
jmp 0x4a98
leaq -0x3d4(%rbp), %rdi
callq 0xc7d0
jmp 0x4ef1
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xac8(%rbp)
jmp 0x4eac
movq -0xac8(%rbp), %rax
movl $0x3, 0x4(%rax)
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xad0(%rbp)
jmp 0x4ed6
movq -0xad0(%rbp), %rax
movl $0x1, (%rax)
leaq -0x3a8(%rbp), %rdi
callq 0x7a40
jmp 0x4f02
leaq -0x3a8(%rbp), %rdi
callq 0x7a40
jmp 0x7505
jmp 0x74ae
leaq -0x24c(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x7a90
movq %rax, -0xad8(%rbp)
jmp 0x4f23
movq -0xad8(%rbp), %rax
movq %rax, -0x428(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x7ad0
movq %rax, -0x430(%rbp)
leaq -0x428(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0x7a60
testb $0x1, %al
jne 0x4f60
jmp 0x5592
movl -0x24c(%rbp), %edx
movl -0xac(%rbp), %ecx
leaq -0x460(%rbp), %rdi
movl $0x6, %esi
callq 0xcab0
jmp 0x4f7f
leaq -0x480(%rbp), %rdi
leaq -0x460(%rbp), %rsi
callq 0xcce0
jmp 0x4f94
leaq -0x290(%rbp), %rdi
leaq -0x480(%rbp), %rsi
movq %rsi, -0xae8(%rbp)
callq 0x33d0
movq -0xae8(%rbp), %rdi
callq 0x31b0
movq 0x11007(%rip), %rdi     # 0x15fc8
leaq 0xb153(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xae0(%rbp)
jmp 0x4fd6
movq -0xae0(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xaf0(%rbp)
jmp 0x4ff1
movq -0xaf0(%rbp), %rdi
leaq 0xb11e(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xaf8(%rbp)
jmp 0x500d
movq -0xaf8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xb00(%rbp)
jmp 0x5028
movq -0xb00(%rbp), %rdi
leaq 0xb17b(%rip), %rsi      # 0x101b1
callq 0x32e0
movq %rax, -0xb08(%rbp)
jmp 0x5044
movq -0xb08(%rbp), %rdi
movl -0x248(%rbp), %esi
callq 0x34a0
movq %rax, -0xb10(%rbp)
jmp 0x505f
movq -0xb10(%rbp), %rdi
movq 0x10f4b(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x5074
movl $0x0, -0x484(%rbp)
movslq -0x484(%rbp), %rax
movq %rax, -0xb18(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x79f0
movq %rax, %rcx
movq -0xb18(%rbp), %rax
cmpq %rcx, %rax
jae 0x5495
leaq -0x48c(%rbp), %rdi
callq 0xbfb0
jmp 0x50b9
movl -0x484(%rbp), %eax
cmpl -0xac(%rbp), %eax
je 0x544a
leaq -0x4b1(%rbp), %rdi
movq %rdi, -0xb20(%rbp)
callq 0x34c0
movq -0xb20(%rbp), %rdx
leaq 0xaffd(%rip), %rsi      # 0x100e9
leaq -0x4b0(%rbp), %rdi
callq 0x75f0
jmp 0x50fa
leaq -0x168(%rbp), %rdi
leaq -0x484(%rbp), %rsi
callq 0x77a0
movq %rax, -0xb28(%rbp)
jmp 0x5116
movq -0xb28(%rbp), %rax
movl (%rax), %edx
leaq -0x48c(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0xbff0
movl %eax, -0xb2c(%rbp)
jmp 0x513a
leaq -0x4b0(%rbp), %rdi
callq 0x31b0
leaq -0x4b1(%rbp), %rdi
callq 0x3360
movl -0xb2c(%rbp), %eax
cmpl $0x0, %eax
jge 0x5338
movq 0x10e60(%rip), %rdi     # 0x15fc8
leaq 0xb0e2(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xb38(%rbp)
jmp 0x517d
movq -0xb38(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xb40(%rbp)
jmp 0x5198
movq -0xb40(%rbp), %rdi
leaq 0xafd7(%rip), %rsi      # 0x1017d
callq 0x32e0
movq %rax, -0xb48(%rbp)
jmp 0x51b4
movq -0xb48(%rbp), %rdi
leaq 0xafca(%rip), %rsi      # 0x1018c
callq 0x32e0
movq %rax, -0xb50(%rbp)
jmp 0x51d0
movq -0xb50(%rbp), %rdi
movq 0x10dda(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x51e5
movl -0xac(%rbp), %edi
movl -0x484(%rbp), %esi
movq %rsp, %rax
leaq -0x1d8(%rbp), %rcx
movq %rcx, (%rax)
leaq 0x110a3(%rip), %rdx     # 0x162a8
movl $0x1, %ecx
leaq -0x168(%rbp), %r8
leaq -0x1a8(%rbp), %r9
callq 0xdc40
jmp 0x521f
movq 0x10da2(%rip), %rdi     # 0x15fc8
leaq 0xb024(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xb58(%rbp)
jmp 0x523b
movq -0xb58(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xb60(%rbp)
jmp 0x5256
movq -0xb60(%rbp), %rdi
leaq 0xaf68(%rip), %rsi      # 0x101cc
callq 0x32e0
movq %rax, -0xb68(%rbp)
jmp 0x5272
movq -0xb68(%rbp), %rdi
leaq 0xae8f(%rip), %rsi      # 0x1010f
callq 0x32e0
movq %rax, -0xb70(%rbp)
jmp 0x528e
movq -0xb70(%rbp), %rdi
movq 0x10d1c(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x52a3
leaq -0x168(%rbp), %rdi
leaq -0x484(%rbp), %rsi
callq 0x7a10
jmp 0x52b8
movl $0xb, -0x358(%rbp)
jmp 0x5454
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x5581
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x5310
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x4b0(%rbp), %rdi
callq 0x31b0
leaq -0x4b1(%rbp), %rdi
callq 0x3360
jmp 0x5484
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x5484
leaq -0x4d8(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x3110
jmp 0x534d
leaq -0x48c(%rbp), %rdi
leaq -0x4d8(%rbp), %rsi
callq 0xc1f0
jmp 0x5362
leaq -0x4d8(%rbp), %rdi
callq 0x31b0
movq 0x10c53(%rip), %rdi     # 0x15fc8
leaq 0xad9f(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xb78(%rbp)
jmp 0x538a
movq -0xb78(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xb80(%rbp)
jmp 0x53a5
movq -0xb80(%rbp), %rdi
leaq 0xad6a(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xb88(%rbp)
jmp 0x53c1
movq -0xb88(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xb90(%rbp)
jmp 0x53dc
movq -0xb90(%rbp), %rdi
leaq 0xadea(%rip), %rsi      # 0x101d4
callq 0x32e0
movq %rax, -0xb98(%rbp)
jmp 0x53f8
movq -0xb98(%rbp), %rdi
movl -0x484(%rbp), %esi
callq 0x34a0
movq %rax, -0xba0(%rbp)
jmp 0x5413
movq -0xba0(%rbp), %rdi
movq 0x10b97(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x5428
jmp 0x544a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x4d8(%rbp), %rdi
callq 0x31b0
jmp 0x5484
movl $0x0, -0x358(%rbp)
leaq -0x48c(%rbp), %rdi
callq 0xc7d0
movl -0x358(%rbp), %eax
testl %eax, %eax
je 0x546e
jmp 0x546c
jmp 0x5495
jmp 0x5470
movl -0x484(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x484(%rbp)
jmp 0x507e
leaq -0x48c(%rbp), %rdi
callq 0xc7d0
jmp 0x5581
leaq -0x24c(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x7b00
jmp 0x54aa
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xba8(%rbp)
jmp 0x54c6
movq -0xba8(%rbp), %rax
movl $0x5, 0x4(%rax)
movq 0x10aed(%rip), %rdi     # 0x15fc8
leaq 0xac39(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xbb0(%rbp)
jmp 0x54f0
movq -0xbb0(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xbb8(%rbp)
jmp 0x550b
movq -0xbb8(%rbp), %rdi
leaq 0xac04(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xbc0(%rbp)
jmp 0x5527
movq -0xbc0(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xbc8(%rbp)
jmp 0x5542
movq -0xbc8(%rbp), %rdi
leaq 0xac99(%rip), %rsi      # 0x101e9
callq 0x32e0
movq %rax, -0xbd0(%rbp)
jmp 0x555e
movq -0xbd0(%rbp), %rdi
leaq 0xac86(%rip), %rsi      # 0x101f2
callq 0x32e0
jmp 0x5573
leaq -0x460(%rbp), %rdi
callq 0x7a40
jmp 0x5592
leaq -0x460(%rbp), %rdi
callq 0x7a40
jmp 0x7505
jmp 0x74ae
movq 0x10a2a(%rip), %rdi     # 0x15fc8
leaq 0xab76(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xbd8(%rbp)
jmp 0x55b3
movq -0xbd8(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xbe0(%rbp)
jmp 0x55ce
movq -0xbe0(%rbp), %rdi
leaq 0xab41(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xbe8(%rbp)
jmp 0x55ea
movq -0xbe8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xbf0(%rbp)
jmp 0x5605
movq -0xbf0(%rbp), %rdi
leaq 0xabe3(%rip), %rsi      # 0x101f6
callq 0x32e0
movq %rax, -0xbf8(%rbp)
jmp 0x5621
movq -0xbf8(%rbp), %rdi
movl -0x248(%rbp), %esi
callq 0x34a0
movq %rax, -0xc00(%rbp)
jmp 0x563c
movq -0xc00(%rbp), %rdi
movq 0x1096e(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x5651
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xc08(%rbp)
jmp 0x566d
movq -0xc08(%rbp), %rax
movl (%rax), %ecx
incl %ecx
movl %ecx, (%rax)
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xc10(%rbp)
jmp 0x5696
movq -0xc10(%rbp), %rax
movslq (%rax), %rax
movq %rax, -0xc18(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x79f0
movq %rax, %rcx
movq -0xc18(%rbp), %rax
cmpq %rcx, %rax
jne 0x5c2b
movl -0x24c(%rbp), %edx
movl -0xac(%rbp), %ecx
leaq -0x508(%rbp), %rdi
movl $0x5, %esi
callq 0xcab0
jmp 0x56e5
leaq -0x528(%rbp), %rdi
leaq -0x508(%rbp), %rsi
callq 0xcce0
jmp 0x56fa
movl $0x0, -0x52c(%rbp)
movslq -0x52c(%rbp), %rax
movq %rax, -0xc20(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x79f0
movq %rax, %rcx
movq -0xc20(%rbp), %rax
cmpq %rcx, %rax
jae 0x5b16
leaq -0x534(%rbp), %rdi
callq 0xbfb0
jmp 0x573f
movl -0x52c(%rbp), %eax
cmpl -0xac(%rbp), %eax
je 0x5acb
leaq -0x559(%rbp), %rdi
movq %rdi, -0xc28(%rbp)
callq 0x34c0
movq -0xc28(%rbp), %rdx
leaq 0xa977(%rip), %rsi      # 0x100e9
leaq -0x558(%rbp), %rdi
callq 0x75f0
jmp 0x5780
leaq -0x168(%rbp), %rdi
leaq -0x52c(%rbp), %rsi
callq 0x77a0
movq %rax, -0xc30(%rbp)
jmp 0x579c
movq -0xc30(%rbp), %rax
movl (%rax), %edx
leaq -0x534(%rbp), %rdi
leaq -0x558(%rbp), %rsi
callq 0xbff0
movl %eax, -0xc34(%rbp)
jmp 0x57c0
leaq -0x558(%rbp), %rdi
callq 0x31b0
leaq -0x559(%rbp), %rdi
callq 0x3360
movl -0xc34(%rbp), %eax
cmpl $0x0, %eax
jge 0x59b9
movq 0x107da(%rip), %rdi     # 0x15fc8
leaq 0xaa5c(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xc40(%rbp)
jmp 0x5803
movq -0xc40(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xc48(%rbp)
jmp 0x581e
movq -0xc48(%rbp), %rdi
leaq 0xa951(%rip), %rsi      # 0x1017d
callq 0x32e0
movq %rax, -0xc50(%rbp)
jmp 0x583a
movq -0xc50(%rbp), %rdi
leaq 0xa9c2(%rip), %rsi      # 0x1020a
callq 0x32e0
movq %rax, -0xc58(%rbp)
jmp 0x5856
movq -0xc58(%rbp), %rdi
movq 0x10754(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x586b
movl -0xac(%rbp), %edi
movl -0x52c(%rbp), %esi
movq %rsp, %rax
leaq -0x1d8(%rbp), %rcx
movq %rcx, (%rax)
leaq 0x10a1d(%rip), %rdx     # 0x162a8
movl $0x1, %ecx
leaq -0x168(%rbp), %r8
leaq -0x1a8(%rbp), %r9
callq 0xdc40
jmp 0x58a5
movq 0x1071c(%rip), %rdi     # 0x15fc8
leaq 0xa99e(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xc60(%rbp)
jmp 0x58c1
movq -0xc60(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xc68(%rbp)
jmp 0x58dc
movq -0xc68(%rbp), %rdi
leaq 0xa81e(%rip), %rsi      # 0x10108
callq 0x32e0
movq %rax, -0xc70(%rbp)
jmp 0x58f8
movq -0xc70(%rbp), %rdi
movq 0x106b2(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x590d
leaq -0x168(%rbp), %rdi
leaq -0x52c(%rbp), %rsi
callq 0x7a10
jmp 0x5922
movl $0xe, -0x358(%rbp)
jmp 0x5ad5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x5c1a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x5c0e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x5991
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x558(%rbp), %rdi
callq 0x31b0
leaq -0x559(%rbp), %rdi
callq 0x3360
jmp 0x5b05
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x5b05
leaq -0x580(%rbp), %rdi
leaq -0x528(%rbp), %rsi
callq 0x3110
jmp 0x59ce
leaq -0x534(%rbp), %rdi
leaq -0x580(%rbp), %rsi
callq 0xc1f0
jmp 0x59e3
leaq -0x580(%rbp), %rdi
callq 0x31b0
movq 0x105d2(%rip), %rdi     # 0x15fc8
leaq 0xa71e(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xc78(%rbp)
jmp 0x5a0b
movq -0xc78(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xc80(%rbp)
jmp 0x5a26
movq -0xc80(%rbp), %rdi
leaq 0xa6e9(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xc88(%rbp)
jmp 0x5a42
movq -0xc88(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xc90(%rbp)
jmp 0x5a5d
movq -0xc90(%rbp), %rdi
leaq 0xa7b0(%rip), %rsi      # 0x1021b
callq 0x32e0
movq %rax, -0xc98(%rbp)
jmp 0x5a79
movq -0xc98(%rbp), %rdi
movl -0x52c(%rbp), %esi
callq 0x34a0
movq %rax, -0xca0(%rbp)
jmp 0x5a94
movq -0xca0(%rbp), %rdi
movq 0x10516(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x5aa9
jmp 0x5acb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x580(%rbp), %rdi
callq 0x31b0
jmp 0x5b05
movl $0x0, -0x358(%rbp)
leaq -0x534(%rbp), %rdi
callq 0xc7d0
movl -0x358(%rbp), %eax
testl %eax, %eax
je 0x5aef
jmp 0x5aed
jmp 0x5b16
jmp 0x5af1
movl -0x52c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x52c(%rbp)
jmp 0x5704
leaq -0x534(%rbp), %rdi
callq 0xc7d0
jmp 0x5c0e
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xca8(%rbp)
jmp 0x5b32
movq -0xca8(%rbp), %rax
movl $0x4, 0x4(%rax)
movq 0x10481(%rip), %rdi     # 0x15fc8
leaq 0xa5cd(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xcb0(%rbp)
jmp 0x5b5c
movq -0xcb0(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xcb8(%rbp)
jmp 0x5b77
movq -0xcb8(%rbp), %rdi
leaq 0xa598(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xcc0(%rbp)
jmp 0x5b93
movq -0xcc0(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xcc8(%rbp)
jmp 0x5bae
movq -0xcc8(%rbp), %rdi
leaq 0xa675(%rip), %rsi      # 0x10231
callq 0x32e0
movq %rax, -0xcd0(%rbp)
jmp 0x5bca
movq -0xcd0(%rbp), %rdi
leaq 0xa61a(%rip), %rsi      # 0x101f2
callq 0x32e0
jmp 0x5bdf
leaq -0x24c(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x7b00
jmp 0x5bf4
leaq -0x528(%rbp), %rdi
callq 0x31b0
leaq -0x508(%rbp), %rdi
callq 0x7a40
jmp 0x5c2b
leaq -0x528(%rbp), %rdi
callq 0x31b0
leaq -0x508(%rbp), %rdi
callq 0x7a40
jmp 0x7505
jmp 0x74ae
movq 0x10391(%rip), %rdi     # 0x15fc8
leaq 0xa4dd(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xcd8(%rbp)
jmp 0x5c4c
movq -0xcd8(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xce0(%rbp)
jmp 0x5c67
movq -0xce0(%rbp), %rdi
leaq 0xa4a8(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xce8(%rbp)
jmp 0x5c83
movq -0xce8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xcf0(%rbp)
jmp 0x5c9e
movq -0xcf0(%rbp), %rdi
leaq 0xa590(%rip), %rsi      # 0x1023c
callq 0x32e0
movq %rax, -0xcf8(%rbp)
jmp 0x5cba
movq -0xcf8(%rbp), %rdi
movl -0x248(%rbp), %esi
callq 0x34a0
movq %rax, -0xd00(%rbp)
jmp 0x5cd5
movq -0xd00(%rbp), %rdi
movq 0x102d5(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x5cea
cmpl $0x0, -0x110(%rbp)
jne 0x5db2
movl -0x24c(%rbp), %eax
cmpl -0xe8(%rbp), %eax
jle 0x5db2
movq 0x102b8(%rip), %rdi     # 0x15fc8
leaq 0xa404(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xd08(%rbp)
jmp 0x5d25
movq -0xd08(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xd10(%rbp)
jmp 0x5d40
movq -0xd10(%rbp), %rdi
leaq 0xa3cf(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xd18(%rbp)
jmp 0x5d5c
movq -0xd18(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xd20(%rbp)
jmp 0x5d77
movq -0xd20(%rbp), %rdi
leaq 0xa3b9(%rip), %rsi      # 0x1013e
callq 0x32e0
movq %rax, -0xd28(%rbp)
jmp 0x5d93
movq -0xd28(%rbp), %rdi
movq 0x10217(%rip), %rsi     # 0x15fb8
callq 0x3330
jmp 0x5da8
movl $0x1, %edi
callq 0x33c0
leaq -0x24c(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x79a0
movb %dl, -0xd31(%rbp)
movq %rax, -0xd30(%rbp)
jmp 0x5dd4
movb -0xd31(%rbp), %al
movq -0xd30(%rbp), %rcx
movq %rcx, -0x590(%rbp)
movb %al, -0x588(%rbp)
movl $0xffffffff, -0x2bc(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x2b8(%rbp)
movl -0x248(%rbp), %eax
movl %eax, -0x2b4(%rbp)
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xd40(%rbp)
jmp 0x5e2a
movq -0xd40(%rbp), %rax
movl -0x2b4(%rbp), %ecx
movl %ecx, 0x8(%rax)
movq -0x2bc(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x598(%rbp), %rdi
callq 0xbfb0
jmp 0x5e52
callq 0x30a0
movl $0x14, %ecx
cltd
idivl %ecx
movl %edx, -0x59c(%rbp)
cmpl $0x3, -0x59c(%rbp)
jge 0x6345
movl -0x24c(%rbp), %edx
movl -0xac(%rbp), %ecx
leaq -0x5d0(%rbp), %rdi
movl $0x3, %esi
callq 0xcab0
jmp 0x5e91
leaq -0x5f0(%rbp), %rdi
leaq -0x5d0(%rbp), %rsi
callq 0xcce0
jmp 0x5ea6
leaq -0x2b0(%rbp), %rdi
leaq -0x5f0(%rbp), %rsi
movq %rsi, -0xd50(%rbp)
callq 0x33d0
movq -0xd50(%rbp), %rdi
callq 0x31b0
leaq -0x611(%rbp), %rdi
movq %rdi, -0xd48(%rbp)
callq 0x34c0
movq -0xd48(%rbp), %rdx
leaq 0xa1fc(%rip), %rsi      # 0x100e9
leaq -0x610(%rbp), %rdi
callq 0x75f0
jmp 0x5efb
leaq -0x248(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0x77a0
movq %rax, -0xd58(%rbp)
jmp 0x5f17
movq -0xd58(%rbp), %rax
movl (%rax), %edx
leaq -0x598(%rbp), %rdi
leaq -0x610(%rbp), %rsi
callq 0xbff0
movl %eax, -0xd5c(%rbp)
jmp 0x5f3b
leaq -0x610(%rbp), %rdi
callq 0x31b0
leaq -0x611(%rbp), %rdi
callq 0x3360
movl -0xd5c(%rbp), %eax
cmpl $0x0, %eax
jge 0x611d
movq 0x1005f(%rip), %rdi     # 0x15fc8
leaq 0xa2e1(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xd68(%rbp)
jmp 0x5f7e
movq -0xd68(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xd70(%rbp)
jmp 0x5f99
movq -0xd70(%rbp), %rdi
leaq 0xa1d6(%rip), %rsi      # 0x1017d
callq 0x32e0
movq %rax, -0xd78(%rbp)
jmp 0x5fb5
movq -0xd78(%rbp), %rdi
leaq 0xa294(%rip), %rsi      # 0x10257
callq 0x32e0
movq %rax, -0xd80(%rbp)
jmp 0x5fd1
movq -0xd80(%rbp), %rdi
movq 0xffd9(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x5fe6
movl -0xac(%rbp), %edi
movl -0x248(%rbp), %esi
movq %rsp, %rax
leaq -0x1d8(%rbp), %rcx
movq %rcx, (%rax)
leaq 0x102a2(%rip), %rdx     # 0x162a8
movl $0x1, %ecx
leaq -0x168(%rbp), %r8
leaq -0x1a8(%rbp), %r9
callq 0xdc40
jmp 0x6020
movq 0xffa1(%rip), %rdi      # 0x15fc8
leaq 0xa223(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xd88(%rbp)
jmp 0x603c
movq -0xd88(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xd90(%rbp)
jmp 0x6057
movq -0xd90(%rbp), %rdi
leaq 0xa0a3(%rip), %rsi      # 0x10108
callq 0x32e0
movq %rax, -0xd98(%rbp)
jmp 0x6073
movq -0xd98(%rbp), %rdi
movq 0xff37(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x6088
leaq -0x248(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0x7a10
jmp 0x609d
movl $0x4, -0x358(%rbp)
jmp 0x62f5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x675e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x6334
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x610c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x610(%rbp), %rdi
callq 0x31b0
leaq -0x611(%rbp), %rdi
callq 0x3360
jmp 0x6334
leaq -0x638(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x3110
jmp 0x6132
leaq -0x598(%rbp), %rdi
leaq -0x638(%rbp), %rsi
callq 0xc1f0
jmp 0x6147
leaq -0x638(%rbp), %rdi
callq 0x31b0
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xda0(%rbp)
jmp 0x616f
movq -0xda0(%rbp), %rax
movl $0x5, 0x4(%rax)
movq 0xfe44(%rip), %rdi      # 0x15fc8
leaq 0x9f90(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xda8(%rbp)
jmp 0x6199
movq -0xda8(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xdb0(%rbp)
jmp 0x61b4
movq -0xdb0(%rbp), %rdi
leaq 0x9f5b(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xdb8(%rbp)
jmp 0x61d0
movq -0xdb8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xdc0(%rbp)
jmp 0x61eb
movq -0xdc0(%rbp), %rdi
leaq 0xa06c(%rip), %rsi      # 0x10265
callq 0x32e0
movq %rax, -0xdc8(%rbp)
jmp 0x6207
movq -0xdc8(%rbp), %rdi
movl -0x248(%rbp), %esi
callq 0x34a0
movq %rax, -0xdd0(%rbp)
jmp 0x6222
movq -0xdd0(%rbp), %rdi
movq 0xfd88(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x6237
movq 0xfd8a(%rip), %rdi      # 0x15fc8
leaq 0x9ed6(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xdd8(%rbp)
jmp 0x6253
movq -0xdd8(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xde0(%rbp)
jmp 0x626e
movq -0xde0(%rbp), %rdi
leaq 0x9ea1(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xde8(%rbp)
jmp 0x628a
movq -0xde8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xdf0(%rbp)
jmp 0x62a5
movq -0xdf0(%rbp), %rdi
leaq 0x9fcc(%rip), %rsi      # 0x1027f
callq 0x32e0
movq %rax, -0xdf8(%rbp)
jmp 0x62c1
movq -0xdf8(%rbp), %rdi
leaq 0x9f23(%rip), %rsi      # 0x101f2
callq 0x32e0
jmp 0x62d6
leaq -0x24c(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x7b00
jmp 0x62eb
movl $0x0, -0x358(%rbp)
leaq -0x5d0(%rbp), %rdi
callq 0x7a40
movl -0x358(%rbp), %eax
testl %eax, %eax
jne 0x674d
jmp 0x6311
jmp 0x6743
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x638(%rbp), %rdi
callq 0x31b0
leaq -0x5d0(%rbp), %rdi
callq 0x7a40
jmp 0x675e
movl -0x24c(%rbp), %edx
movl -0xac(%rbp), %ecx
leaq -0x668(%rbp), %rdi
movl $0x2, %esi
callq 0xcab0
jmp 0x6364
leaq -0x688(%rbp), %rdi
leaq -0x668(%rbp), %rsi
callq 0xcce0
jmp 0x6379
leaq -0x2b0(%rbp), %rdi
leaq -0x688(%rbp), %rsi
movq %rsi, -0xe08(%rbp)
callq 0x33d0
movq -0xe08(%rbp), %rdi
callq 0x31b0
leaq -0x6a9(%rbp), %rdi
movq %rdi, -0xe00(%rbp)
callq 0x34c0
movq -0xe00(%rbp), %rdx
leaq 0x9d29(%rip), %rsi      # 0x100e9
leaq -0x6a8(%rbp), %rdi
callq 0x75f0
jmp 0x63ce
leaq -0x248(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0x77a0
movq %rax, -0xe10(%rbp)
jmp 0x63ea
movq -0xe10(%rbp), %rax
movl (%rax), %edx
leaq -0x598(%rbp), %rdi
leaq -0x6a8(%rbp), %rsi
callq 0xbff0
movl %eax, -0xe14(%rbp)
jmp 0x640e
leaq -0x6a8(%rbp), %rdi
callq 0x31b0
leaq -0x6a9(%rbp), %rdi
callq 0x3360
movl -0xe14(%rbp), %eax
cmpl $0x0, %eax
jge 0x65d9
movq 0xfb8c(%rip), %rdi      # 0x15fc8
leaq 0x9e0e(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xe20(%rbp)
jmp 0x6451
movq -0xe20(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xe28(%rbp)
jmp 0x646c
movq -0xe28(%rbp), %rdi
leaq 0x9d03(%rip), %rsi      # 0x1017d
callq 0x32e0
movq %rax, -0xe30(%rbp)
jmp 0x6488
movq -0xe30(%rbp), %rdi
leaq 0x9dc1(%rip), %rsi      # 0x10257
callq 0x32e0
movq %rax, -0xe38(%rbp)
jmp 0x64a4
movq -0xe38(%rbp), %rdi
movq 0xfb06(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x64b9
movl -0xac(%rbp), %edi
movl -0x248(%rbp), %esi
movq %rsp, %rax
leaq -0x1d8(%rbp), %rcx
movq %rcx, (%rax)
leaq 0xfdcf(%rip), %rdx      # 0x162a8
movl $0x1, %ecx
leaq -0x168(%rbp), %r8
leaq -0x1a8(%rbp), %r9
callq 0xdc40
jmp 0x64f3
movq 0xface(%rip), %rdi      # 0x15fc8
leaq 0x9d50(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xe40(%rbp)
jmp 0x650f
movq -0xe40(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xe48(%rbp)
jmp 0x652a
movq -0xe48(%rbp), %rdi
leaq 0x9bd0(%rip), %rsi      # 0x10108
callq 0x32e0
movq %rax, -0xe50(%rbp)
jmp 0x6546
movq -0xe50(%rbp), %rdi
movq 0xfa64(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x655b
leaq -0x248(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0x7a10
jmp 0x6570
movl $0x4, -0x358(%rbp)
jmp 0x66fd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x6735
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x65c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x6a8(%rbp), %rdi
callq 0x31b0
leaq -0x6a9(%rbp), %rdi
callq 0x3360
jmp 0x6735
leaq -0x6d0(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x3110
jmp 0x65ee
leaq -0x598(%rbp), %rdi
leaq -0x6d0(%rbp), %rsi
callq 0xc1f0
jmp 0x6603
leaq -0x6d0(%rbp), %rdi
callq 0x31b0
movq 0xf9b2(%rip), %rdi      # 0x15fc8
leaq 0x9afe(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xe58(%rbp)
jmp 0x662b
movq -0xe58(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xe60(%rbp)
jmp 0x6646
movq -0xe60(%rbp), %rdi
leaq 0x9ac9(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xe68(%rbp)
jmp 0x6662
movq -0xe68(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xe70(%rbp)
jmp 0x667d
movq -0xe70(%rbp), %rdi
leaq 0x9bfe(%rip), %rsi      # 0x10289
callq 0x32e0
movq %rax, -0xe78(%rbp)
jmp 0x6699
movq -0xe78(%rbp), %rdi
movl -0x248(%rbp), %esi
callq 0x34a0
movq %rax, -0xe80(%rbp)
jmp 0x66b4
movq -0xe80(%rbp), %rdi
movq 0xf8f6(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x66c9
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xe88(%rbp)
jmp 0x66e5
movq -0xe88(%rbp), %rax
movl $0x1, 0x4(%rax)
movl $0x0, -0x358(%rbp)
leaq -0x668(%rbp), %rdi
callq 0x7a40
movl -0x358(%rbp), %eax
testl %eax, %eax
jne 0x674d
jmp 0x6715
jmp 0x6743
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x6d0(%rbp), %rdi
callq 0x31b0
leaq -0x668(%rbp), %rdi
callq 0x7a40
jmp 0x675e
movl $0x4, -0x358(%rbp)
leaq -0x598(%rbp), %rdi
callq 0xc7d0
jmp 0x74ae
leaq -0x598(%rbp), %rdi
callq 0xc7d0
jmp 0x7505
leaq -0x6d8(%rbp), %rdi
callq 0xbfb0
jmp 0x677d
movq 0xf844(%rip), %rdi      # 0x15fc8
leaq 0x9990(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xe90(%rbp)
jmp 0x6799
movq -0xe90(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xe98(%rbp)
jmp 0x67b4
movq -0xe98(%rbp), %rdi
leaq 0x995b(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xea0(%rbp)
jmp 0x67d0
movq -0xea0(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xea8(%rbp)
jmp 0x67eb
movq -0xea8(%rbp), %rdi
leaq 0x9aab(%rip), %rsi      # 0x102a4
callq 0x32e0
movq %rax, -0xeb0(%rbp)
jmp 0x6807
movq -0xeb0(%rbp), %rdi
movl -0x248(%rbp), %esi
callq 0x34a0
movq %rax, -0xeb8(%rbp)
jmp 0x6822
movq -0xeb8(%rbp), %rdi
movq 0xf788(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x6837
cmpl $0x1, -0x110(%rbp)
jne 0x6916
movl -0x24c(%rbp), %eax
cmpl -0xe8(%rbp), %eax
jle 0x6916
movq 0xf76b(%rip), %rdi      # 0x15fc8
leaq 0x98b7(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xec0(%rbp)
jmp 0x6872
movq -0xec0(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xec8(%rbp)
jmp 0x688d
movq -0xec8(%rbp), %rdi
leaq 0x9882(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xed0(%rbp)
jmp 0x68a9
movq -0xed0(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xed8(%rbp)
jmp 0x68c4
movq -0xed8(%rbp), %rdi
leaq 0x986c(%rip), %rsi      # 0x1013e
callq 0x32e0
movq %rax, -0xee0(%rbp)
jmp 0x68e0
movq -0xee0(%rbp), %rdi
movq 0xf6ca(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x68f5
movl $0x1, %edi
callq 0x33c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x6d19
movl -0x24c(%rbp), %edx
movl -0xac(%rbp), %ecx
leaq -0x708(%rbp), %rdi
movl $0x7, %esi
callq 0xcab0
jmp 0x6935
leaq -0x728(%rbp), %rdi
leaq -0x708(%rbp), %rsi
callq 0xcce0
jmp 0x694a
leaq -0x2b0(%rbp), %rdi
leaq -0x728(%rbp), %rsi
movq %rsi, -0xef0(%rbp)
callq 0x33d0
movq -0xef0(%rbp), %rdi
callq 0x31b0
leaq -0x749(%rbp), %rdi
movq %rdi, -0xee8(%rbp)
callq 0x34c0
movq -0xee8(%rbp), %rdx
leaq 0x9758(%rip), %rsi      # 0x100e9
leaq -0x748(%rbp), %rdi
callq 0x75f0
jmp 0x699f
leaq -0x248(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0x77a0
movq %rax, -0xef8(%rbp)
jmp 0x69bb
movq -0xef8(%rbp), %rax
movl (%rax), %edx
leaq -0x6d8(%rbp), %rdi
leaq -0x748(%rbp), %rsi
callq 0xbff0
movl %eax, -0xefc(%rbp)
jmp 0x69df
leaq -0x748(%rbp), %rdi
callq 0x31b0
leaq -0x749(%rbp), %rdi
callq 0x3360
movl -0xefc(%rbp), %eax
cmpl $0x0, %eax
jge 0x6baa
movq 0xf5bb(%rip), %rdi      # 0x15fc8
leaq 0x983d(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xf08(%rbp)
jmp 0x6a22
movq -0xf08(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xf10(%rbp)
jmp 0x6a3d
movq -0xf10(%rbp), %rdi
leaq 0x9732(%rip), %rsi      # 0x1017d
callq 0x32e0
movq %rax, -0xf18(%rbp)
jmp 0x6a59
movq -0xf18(%rbp), %rdi
leaq 0x9858(%rip), %rsi      # 0x102bf
callq 0x32e0
movq %rax, -0xf20(%rbp)
jmp 0x6a75
movq -0xf20(%rbp), %rdi
movq 0xf535(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x6a8a
movl -0xac(%rbp), %edi
movl -0x248(%rbp), %esi
movq %rsp, %rax
leaq -0x1d8(%rbp), %rcx
movq %rcx, (%rax)
leaq 0xf7fe(%rip), %rdx      # 0x162a8
movl $0x1, %ecx
leaq -0x168(%rbp), %r8
leaq -0x1a8(%rbp), %r9
callq 0xdc40
jmp 0x6ac4
movq 0xf4fd(%rip), %rdi      # 0x15fc8
leaq 0x977f(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0xf28(%rbp)
jmp 0x6ae0
movq -0xf28(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xf30(%rbp)
jmp 0x6afb
movq -0xf30(%rbp), %rdi
leaq 0x95ff(%rip), %rsi      # 0x10108
callq 0x32e0
movq %rax, -0xf38(%rbp)
jmp 0x6b17
movq -0xf38(%rbp), %rdi
movq 0xf493(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x6b2c
leaq -0x248(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0x7a10
jmp 0x6b41
movl $0x4, -0x358(%rbp)
jmp 0x6cf0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x6d0d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x6b99
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x748(%rbp), %rdi
callq 0x31b0
leaq -0x749(%rbp), %rdi
callq 0x3360
jmp 0x6d0d
leaq -0x770(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x3110
jmp 0x6bbf
leaq -0x6d8(%rbp), %rdi
leaq -0x770(%rbp), %rsi
callq 0xc1f0
jmp 0x6bd4
leaq -0x770(%rbp), %rdi
callq 0x31b0
movq 0xf3e1(%rip), %rdi      # 0x15fc8
leaq 0x952d(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xf40(%rbp)
jmp 0x6bfc
movq -0xf40(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xf48(%rbp)
jmp 0x6c17
movq -0xf48(%rbp), %rdi
leaq 0x94f8(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xf50(%rbp)
jmp 0x6c33
movq -0xf50(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xf58(%rbp)
jmp 0x6c4e
movq -0xf58(%rbp), %rdi
leaq 0x966f(%rip), %rsi      # 0x102cb
callq 0x32e0
movq %rax, -0xf60(%rbp)
jmp 0x6c6a
movq -0xf60(%rbp), %rdi
movl -0x248(%rbp), %esi
callq 0x34a0
movq %rax, -0xf68(%rbp)
jmp 0x6c85
movq -0xf68(%rbp), %rdi
movq 0xf325(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x6c9a
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xf70(%rbp)
jmp 0x6cb6
movq -0xf70(%rbp), %rax
movl $0x3, 0x4(%rax)
movl $0x4, -0x358(%rbp)
jmp 0x6cf0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x770(%rbp), %rdi
callq 0x31b0
jmp 0x6d0d
leaq -0x708(%rbp), %rdi
callq 0x7a40
leaq -0x6d8(%rbp), %rdi
callq 0xc7d0
jmp 0x74ae
leaq -0x708(%rbp), %rdi
callq 0x7a40
leaq -0x6d8(%rbp), %rdi
callq 0xc7d0
jmp 0x7505
leaq -0x24c(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x7a90
movq %rax, -0xf78(%rbp)
jmp 0x6d46
movq -0xf78(%rbp), %rax
movq %rax, -0x778(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x7ad0
movq %rax, -0x780(%rbp)
leaq -0x778(%rbp), %rdi
leaq -0x780(%rbp), %rsi
callq 0x7a60
testb $0x1, %al
jne 0x6d83
jmp 0x6f1d
movq 0xf23e(%rip), %rdi      # 0x15fc8
leaq 0x938a(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xf80(%rbp)
jmp 0x6d9f
movq -0xf80(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xf88(%rbp)
jmp 0x6dba
movq -0xf88(%rbp), %rdi
leaq 0x9355(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xf90(%rbp)
jmp 0x6dd6
movq -0xf90(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xf98(%rbp)
jmp 0x6df1
movq -0xf98(%rbp), %rdi
leaq 0x94df(%rip), %rsi      # 0x102de
callq 0x32e0
movq %rax, -0xfa0(%rbp)
jmp 0x6e0d
movq -0xfa0(%rbp), %rdi
movl -0x248(%rbp), %esi
callq 0x34a0
movq %rax, -0xfa8(%rbp)
jmp 0x6e28
movq -0xfa8(%rbp), %rdi
movq 0xf182(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x6e3d
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0xfb0(%rbp)
jmp 0x6e59
movq -0xfb0(%rbp), %rax
movl $0x4, 0x4(%rax)
movq 0xf15a(%rip), %rdi      # 0x15fc8
leaq 0x92a6(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xfb8(%rbp)
jmp 0x6e83
movq -0xfb8(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xfc0(%rbp)
jmp 0x6e9e
movq -0xfc0(%rbp), %rdi
leaq 0x9271(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xfc8(%rbp)
jmp 0x6eba
movq -0xfc8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0xfd0(%rbp)
jmp 0x6ed5
movq -0xfd0(%rbp), %rdi
leaq 0x934e(%rip), %rsi      # 0x10231
callq 0x32e0
movq %rax, -0xfd8(%rbp)
jmp 0x6ef1
movq -0xfd8(%rbp), %rdi
leaq 0x92f3(%rip), %rsi      # 0x101f2
callq 0x32e0
jmp 0x6f06
leaq -0x24c(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x7b00
jmp 0x6f1b
jmp 0x6f1d
jmp 0x74ae
leaq -0x24c(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x7a90
movq %rax, -0xfe0(%rbp)
jmp 0x6f3e
movq -0xfe0(%rbp), %rax
movq %rax, -0x788(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x7ad0
movq %rax, -0x790(%rbp)
leaq -0x788(%rbp), %rdi
leaq -0x790(%rbp), %rsi
callq 0x7a60
testb $0x1, %al
jne 0x6f7b
jmp 0x7115
movq 0xf046(%rip), %rdi      # 0x15fc8
leaq 0x9192(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0xfe8(%rbp)
jmp 0x6f97
movq -0xfe8(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0xff0(%rbp)
jmp 0x6fb2
movq -0xff0(%rbp), %rdi
leaq 0x915d(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0xff8(%rbp)
jmp 0x6fce
movq -0xff8(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0x1000(%rbp)
jmp 0x6fe9
movq -0x1000(%rbp), %rdi
leaq 0x92fe(%rip), %rsi      # 0x102f5
callq 0x32e0
movq %rax, -0x1008(%rbp)
jmp 0x7005
movq -0x1008(%rbp), %rdi
movl -0x248(%rbp), %esi
callq 0x34a0
movq %rax, -0x1010(%rbp)
jmp 0x7020
movq -0x1010(%rbp), %rdi
movq 0xef8a(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x7035
leaq -0x24c(%rbp), %rsi
leaq -0x1d8(%rbp), %rdi
callq 0x78c0
movq %rax, -0x1018(%rbp)
jmp 0x7051
movq -0x1018(%rbp), %rax
movl $0x5, 0x4(%rax)
movq 0xef62(%rip), %rdi      # 0x15fc8
leaq 0x90ae(%rip), %rsi      # 0x1011b
callq 0x32e0
movq %rax, -0x1020(%rbp)
jmp 0x707b
movq -0x1020(%rbp), %rdi
movl -0x24c(%rbp), %esi
callq 0x34a0
movq %rax, -0x1028(%rbp)
jmp 0x7096
movq -0x1028(%rbp), %rdi
leaq 0x9079(%rip), %rsi      # 0x1011d
callq 0x32e0
movq %rax, -0x1030(%rbp)
jmp 0x70b2
movq -0x1030(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0x1038(%rbp)
jmp 0x70cd
movq -0x1038(%rbp), %rdi
leaq 0x910e(%rip), %rsi      # 0x101e9
callq 0x32e0
movq %rax, -0x1040(%rbp)
jmp 0x70e9
movq -0x1040(%rbp), %rdi
leaq 0x90fb(%rip), %rsi      # 0x101f2
callq 0x32e0
jmp 0x70fe
leaq -0x24c(%rbp), %rsi
leaq -0x1a8(%rbp), %rdi
callq 0x7b00
jmp 0x7113
jmp 0x7115
jmp 0x74ae
movq 0xeea7(%rip), %rdi      # 0x15fc8
leaq 0x9129(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0x1048(%rbp)
jmp 0x7136
movq -0x1048(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0x1050(%rbp)
jmp 0x7151
movq -0x1050(%rbp), %rdi
leaq 0x91ac(%rip), %rsi      # 0x1030b
callq 0x32e0
movq %rax, -0x1058(%rbp)
jmp 0x716d
movq -0x1058(%rbp), %rdi
movq 0xee3d(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x7182
leaq -0x798(%rbp), %rdi
callq 0xbfb0
jmp 0x7190
movl -0x24c(%rbp), %edx
movl -0xac(%rbp), %ecx
leaq -0x7c8(%rbp), %rdi
movl $0x7, %esi
callq 0xcab0
jmp 0x71af
leaq -0x7e8(%rbp), %rdi
leaq -0x7c8(%rbp), %rsi
callq 0xcce0
jmp 0x71c4
leaq -0x2b0(%rbp), %rdi
leaq -0x7e8(%rbp), %rsi
movq %rsi, -0x1068(%rbp)
callq 0x33d0
movq -0x1068(%rbp), %rdi
callq 0x31b0
leaq -0x809(%rbp), %rdi
movq %rdi, -0x1060(%rbp)
callq 0x34c0
movq -0x1060(%rbp), %rdx
leaq 0x8ede(%rip), %rsi      # 0x100e9
leaq -0x808(%rbp), %rdi
callq 0x75f0
jmp 0x7219
leaq -0x248(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0x77a0
movq %rax, -0x1070(%rbp)
jmp 0x7235
movq -0x1070(%rbp), %rax
movl (%rax), %edx
leaq -0x798(%rbp), %rdi
leaq -0x808(%rbp), %rsi
callq 0xbff0
movl %eax, -0x1074(%rbp)
jmp 0x7259
leaq -0x808(%rbp), %rdi
callq 0x31b0
leaq -0x809(%rbp), %rdi
callq 0x3360
movl -0x1074(%rbp), %eax
cmpl $0x0, %eax
jge 0x7355
movq 0xed41(%rip), %rdi      # 0x15fc8
leaq 0x908e(%rip), %rsi      # 0x1031c
callq 0x32e0
jmp 0x7295
movq 0xed2c(%rip), %rdi      # 0x15fc8
leaq 0x9090(%rip), %rsi      # 0x10333
callq 0x32e0
movq %rax, -0x1080(%rbp)
jmp 0x72b1
callq 0x3040
movq -0x1080(%rbp), %rdi
movl (%rax), %esi
callq 0x34a0
movq %rax, -0x1088(%rbp)
jmp 0x72cd
movq -0x1088(%rbp), %rdi
movq 0xecdd(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x72e2
jmp 0x7355
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x748d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x7481
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x7344
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x808(%rbp), %rdi
callq 0x31b0
leaq -0x809(%rbp), %rdi
callq 0x3360
jmp 0x7481
leaq -0x830(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x3110
jmp 0x736a
leaq -0x798(%rbp), %rdi
leaq -0x830(%rbp), %rsi
callq 0xc1f0
jmp 0x737f
leaq -0x830(%rbp), %rdi
callq 0x31b0
movl -0xac(%rbp), %edi
movl -0x244(%rbp), %esi
movq %rsp, %rax
leaq -0x1d8(%rbp), %rcx
movq %rcx, (%rax)
leaq 0xeefd(%rip), %rdx      # 0x162a8
xorl %ecx, %ecx
leaq -0x168(%rbp), %r8
leaq -0x1a8(%rbp), %r9
callq 0xdc40
jmp 0x73c2
movq 0xebff(%rip), %rdi      # 0x15fc8
leaq 0x8e81(%rip), %rsi      # 0x10251
callq 0x32e0
movq %rax, -0x1090(%rbp)
jmp 0x73de
movq -0x1090(%rbp), %rdi
movl -0xac(%rbp), %esi
callq 0x34a0
movq %rax, -0x1098(%rbp)
jmp 0x73f9
movq -0x1098(%rbp), %rdi
leaq 0x8f3c(%rip), %rsi      # 0x10343
callq 0x32e0
movq %rax, -0x10a0(%rbp)
jmp 0x7415
movq -0x10a0(%rbp), %rdi
movq 0xeb95(%rip), %rsi      # 0x15fb8
callq 0x3330
jmp 0x742a
leaq -0x244(%rbp), %rsi
leaq -0x168(%rbp), %rdi
callq 0x7a10
jmp 0x743f
movl $0x4, -0x358(%rbp)
leaq -0x7c8(%rbp), %rdi
callq 0x7a40
leaq -0x798(%rbp), %rdi
callq 0xc7d0
jmp 0x74ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x830(%rbp), %rdi
callq 0x31b0
leaq -0x7c8(%rbp), %rdi
callq 0x7a40
leaq -0x798(%rbp), %rdi
callq 0xc7d0
jmp 0x7505
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl $0x1, -0x358(%rbp)
jmp 0x74b8
movl $0x0, -0x358(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x31b0
leaq -0x290(%rbp), %rdi
callq 0x31b0
leaq -0x250(%rbp), %rdi
callq 0x7a40
leaq -0x200(%rbp), %rdi
callq 0x31b0
leaq -0x1e0(%rbp), %rdi
callq 0xc7d0
movl -0x358(%rbp), %eax
testl %eax, %eax
jne 0x7543
jmp 0x7500
jmp 0x3fad
leaq -0x2b0(%rbp), %rdi
callq 0x31b0
leaq -0x290(%rbp), %rdi
callq 0x31b0
leaq -0x250(%rbp), %rdi
callq 0x7a40
leaq -0x200(%rbp), %rdi
callq 0x31b0
leaq -0x1e0(%rbp), %rdi
callq 0xc7d0
jmp 0x7569
leaq -0x1d8(%rbp), %rdi
callq 0x7b30
leaq -0x1a8(%rbp), %rdi
callq 0x7b50
leaq -0x168(%rbp), %rdi
callq 0x7b70
jmp 0x758f
leaq -0x1d8(%rbp), %rdi
callq 0x7b30
leaq -0x1a8(%rbp), %rdi
callq 0x7b50
leaq -0x168(%rbp), %rdi
callq 0x7b70
jmp 0x759b
movl -0x4(%rbp), %eax
addq $0x10b0, %rsp           # imm = 0x10B0
popq %rbp
retq
movq -0xe0(%rbp), %rdi
callq 0x34b0
nopw (%rax,%rax)