// File: ridgelab[P]Kmer-SSR/test/src/taskQueue.cpp
// Function: main
int main()
{
	TaskQueue tasks1 = TaskQueue();
	TaskQueue tasks2 = TaskQueue();
	//TaskQueue tasks();

	//cout << tasks.toString() << endl;

	vector<string> ids;

	stringstream strm;
	string str;
	for (uint32_t j = 0; j < 4; ++j)
	{
		for (uint32_t i = 0; i < 12; ++i)
		{
			strm << "seq_" << i;
			strm >> str;
			ids.push_back(str);
			strm.clear();
		}
	}

	vector<string> seqs( {
		"CATAACGTTGACGGATCATTGTACGCCAGTTGAAGTAAGAGATTTGCAGGCATCACTCTGTCGAAGACGAAACATATGTATACAAATATCAACGCATG",
		"GCCAGGCCACGTTAAGTGCGTAACACTGCTTAA",
		"TAGTGATTATGTCAGTGGGCCACCTATACTTTGGGTAATGTCCATGTAACACTATAAATCCAAGGCATATCTTCTCACACGGTACGCACGAACGGCTCGA",
		"AGGACTCCTGCAGATCCTGGACGCTGACTCTCAAACAAACCGCTGCTTTGCGTCGAGGGCAGACCCGTATAAGTCGCCCTACA",
		"GAAACGAGCGGGTATTGACTCTAGCCTGAAAAAAACATCGCTGTAAGC",
		"AGATACTGTTAAGGACTACTGCCCAGCTCAAATGCAATGGATACTGGCGTCCAAGCGACCTGTTTGACAGACCGCTTGTGCAACTCAAATGCTGT",
		"CCGGACCCCGAGCTTATCTAGGTAACTTTGAACTCTACAACCAATCCAAATCCAAC",
		"GACAGAAGCCGGTATACTAATTGCCGAACATATCGAAGCGATAAGGCTATTACTAAGCG",
		"AACTCAAGGTATTTCCACGCAGCGTATCCATGGAGATAATCGGTTGTGCACTGCATCGAAGCTTATACTTGGCGTACAA",
		"CGCGTGCGGGCCCGATCTTTGGACGGTCACGTGGACGTAGGACTGATTACT",
		
		"TCCAAAGTCGCAAAGATCTGCCTTGGAAAGCAGAGCGCTATTATTGTACAGGATGGCGATCTATTTGCCCGAGTTGACCGACGCAAACGTTCGAGGCTGC",
		"GTAGGTTCTAGAGGATATATCACTTTCCATAAAGTTCTGGTAGCAGTAATCAACTGGAATGGCTC",
		"TACAACACCGCTGTGCGCCGTAAAGATAGTCGCGGCTTCAGGCACGTATGGACATGTTTGAGCCATGTTGAGTTGAGGCCTCAGTTACCTACCGG",
		"ACCAGTAGTTCCCGTTCCGCGAAATTCCCCCGGATTCGTCTCGCATTCGATATTGGGTGTGGAAGAGGTAGGAGGA",
		"TCGCCACAGGCCTCTGAATGCTAGTCCTCGGACGCATCCGACTCAACCGGCGAGGTCCACAACCTTT",
		"TATCGCTATCCCCACGCACTTCTCTGGGCCGATAGCGTAACAGCATTTGTACTCGACAGGGGGATATTGGATAGCCTACCGT",
		"CCACAAAAGTCGTCTGCAAAATCACGTAGGATATTTGTCGACACCGCACCGCCAAGAAGCCATAGCATTT",
		"ATTGCATTATACACAATCTTTTTTATGATGTCTGGACCGTGCCGAGCGAAGTTCTGACATCTGAGGTGTC",
		"AGCGAGTATGCAGGGATCGTGATCATCTACTCGCACGAGCTCTACGTGGCG",
		"AAGCTGGTTTACATATTCCTCGGTTGGTTACGAACGCAAGGGCAGTCTATTCAGGAAGACTGACGCTAGGAGCAC",
		
		"CTCGGGCACGAGATGATTAGCACCGGGAACGCAGTTCCTTC",
		"CTTGCAACTTTTGGTGATGTTCTGTATCTTT",
		"TAATCGGATGGAGCGAGTATAAGCACCACGCGCGAGGTTCAGCACTGTTCCGTATTATCATACCTGTTTTAGCC",
		"GAACCGGGAGAATTAGTACTTGTGAATCGTACGAAACAGGCTCACTGGTAAC",
		"TGACTGCGAGCTGAAGGAGTACCGCTCTTCAAGCCAGCCAGGAGATTACATCATTAATCTCCTCGTGATCAGCTGCGGTTCAACTTCGACTTACCCGTT",
		"AACTCTAACGGGTCTCCTTTTGAATATACCTTGGTTAGAATCTTCCATAACGCGGGATCAACTTGTCCTTAAGTGCACGGTTT",
		"ACAGGGTTGTTCAATGGATGCGTGCGGTAGCCATACGTGGACCTATCTGAGAGGGTATTAATAAACCTACTCGAGTGGC",
		"TGAGTCGCCCGCTCGCGCCCAATTTCCGGTAGAGAATCGCAACGTCGTGCGCA",
		"ATACGACGGGCTGTCCTAACTCGTGCGGTCTT",
		"CTCGTCAGATCCGTACGCTGGGACGCGGTGGTTACTACTAAGG",
		
		"ACCTGTCGATCTCTCTTTCATATATATATGTGCCATTAGGCATGCTAAATGTGCTCGTCTGCATGCTTTCTCACCATTTCGATTCACAAA",
		"TACACGACCCGGGGACGCTGATATTGTGGGGACAAAGTGTCCA",
		"ATGCTTGTAACGACCCCAGTAGGGTTACGCTTTTGTCAGAAACCGTG",
		"ATTAAGGCCGTTCAAGCCCACGTGTGATTAAGCGGTCTGCAG",
		"TGCTATGCCCGTAATCCTAGTCATGGCCCTAAATGACGGGGAAATAGAACTTGGAGGCCAGGGTGACGCCTC",
		"TCTCGGTGCTGGATCGCCGTAAGAAAGAGCTTCCATTTCCACTTCGCGCAATCTTTGT",
		"TATGGCAGGGCTATTTTCAGTTCAAACATTTTAATATATCAACTTGGCCTGTGATCGACCAAAACAAGCGTAGGTCAGGATAAG",
		"GCTCTTTTCGGCCTTATGTATAGTGACACCACATCTTAACGTCGACACAATACGCAACTCCTATCAGTGGAACTA",
		"GGAACGTATCCATTGGAAATCGAGACGATGGGCTTCCACTTGTCTGG",
		"GATTCGAGAGGCCACGGCAGCGCCCAGCCTGTAAGTAAGTA",
		
		"TCTTCGATGTCTGGAGGAGCCACCTTACTTTTGAAAACAGTATGCGATGTGTCTCCAGGTATTTGATAACCTGACTTG",
		"TTCATAACTCATACTTAAAAATTCATAACAAGAAGTTTCCGGAAATT",
		"CCCAGCAAATTACTGAGGGCACTAGGTGGGTCGATCTGTGACTAAATGCCCTAGCTCGATCGCCCTCGGAGGACCAACCTCCCTCGGCTCTGAAAACAT",
		"TATAAGCGCAGAGCACACGAATTGGTGCCTATCTGACAAGGAGCGACATAGACACACCAGTGCAG",
		"GATAGGCTGAGGATTGAGAAGTGCGACACATTGAGTCAAACCCAGTGTACTGTTTTACCTGGCCTCAGTTGATAAGACCCACATAATCCCGTTACACTA",
		"AGTTATTGGTCGACCGCTATCTTAGGCATGGCTTGTAGC",
		"GGTTCCTGCGCCAAACAAAACGATCCGATGCTTCTAGTCG",
		"GTCTAATGGTGTCCTGGGCGTCATTCGGAGGTTGAGATCAGACTTTGTGATGGGGTTCCTTGTGAG"
	} );

	vector<uint32_t> global_sequence_lengths( {
		801, 680, 288, 849, 496, 911, 497, 200, 507, 267,
		779, 189, 521, 928, 333, 870, 178, 382, 895, 506,
		455, 917, 188, 319, 966, 896, 932, 691, 960, 560,
		695, 703, 888, 332, 900, 517, 869, 289, 991, 213,
		877, 405, 710, 435, 840, 677, 360, 345
	} );

	vector<uint32_t> global_positions( {
		757, 918, 849, 478, 623, 860, 373, 375, 553, 936,
		119, 988, 445, 240, 167, 872, 902, 507, 967, 581,
		499, 962, 807, 838, 403, 428, 327, 360, 701, 570,
		579, 700, 772, 438, 458, 482, 936, 880, 739, 158,
		606, 449, 762, 603, 766, 411, 568, 175
	} );

	/*
	 * 	NOTE: A global position cannot technically be larger than the global
	 * 	sequence length. However, for testing purposes, we just generated 48
	 * 	random numbers and stuck them in these two vectors.
	 */
		
	for (uint32_t i = 0; i < 48; ++i)
	{
		Task* temp_task_ptr = new Task(ids[i], seqs[i], global_positions[i], global_sequence_lengths[i]);
		tasks1.add(temp_task_ptr);
		
		temp_task_ptr = new Task(ids[i], seqs[i], global_positions[i], global_sequence_lengths[i]);
		tasks2.add(temp_task_ptr);
	}

	//cout << tasks2.toString() << endl;
	//cout << tasks2.toJson() << endl;

	for (uint32_t i = 0; i < 3; ++i)
	{
		Task* temp_ptr = tasks2.get();
		delete temp_ptr;
	}

	tasks2.clear();

	bool pass = true;
	string pass_or_fail_msg = pass ? "\033[0;32mOK" : "\033[0;31mFAIL";
	cout << "\n\033[0;34mTaskQueue Test: " << pass_or_fail_msg << "\033[0m" << endl;
	
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf30, %rsp            # imm = 0xF30
movl $0x0, -0x4(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x61a0
leaq -0xd8(%rbp), %rdi
callq 0x61a0
jmp 0x25a9
leaq -0x100(%rbp), %rdi
callq 0x43c0
leaq -0x288(%rbp), %rdi
callq 0x2140
jmp 0x25c3
leaq -0x2a8(%rbp), %rdi
callq 0x22e0
movl $0x0, -0x2ac(%rbp)
cmpl $0x4, -0x2ac(%rbp)
jae 0x26e4
movl $0x0, -0x2b0(%rbp)
cmpl $0xc, -0x2b0(%rbp)
jae 0x26ce
leaq -0x278(%rbp), %rdi
leaq 0x69f9(%rip), %rsi      # 0x9004
callq 0x2200
movq %rax, -0xb48(%rbp)
jmp 0x2619
movq -0xb48(%rbp), %rdi
movl -0x2b0(%rbp), %esi
callq 0x22d0
jmp 0x262d
leaq -0x288(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x22a0
jmp 0x2642
leaq -0x100(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x43e0
jmp 0x2657
movq -0x288(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x288(%rbp,%rax), %rdi
xorl %esi, %esi
callq 0x2350
jmp 0x2673
jmp 0x2675
movl -0x2b0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2b0(%rbp)
jmp 0x25f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x439f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x4387
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x436f
jmp 0x26d0
movl -0x2ac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2ac(%rbp)
jmp 0x25d9
movb $0x1, -0x911(%rbp)
leaq -0x8d8(%rbp), %rax
movq %rax, -0xb58(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8e1(%rbp), %rdi
movq %rdi, -0xb50(%rbp)
callq 0x2370
movq -0xb58(%rbp), %rdi
movq -0xb50(%rbp), %rdx
leaq 0x68e1(%rip), %rsi      # 0x9009
callq 0x4450
jmp 0x272f
leaq -0x8b8(%rbp), %rax
movq %rax, -0xb68(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8e2(%rbp), %rdi
movq %rdi, -0xb60(%rbp)
callq 0x2370
movq -0xb68(%rbp), %rdi
movq -0xb60(%rbp), %rdx
leaq 0x6900(%rip), %rsi      # 0x906c
callq 0x4450
jmp 0x2773
leaq -0x898(%rbp), %rax
movq %rax, -0xb78(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8e3(%rbp), %rdi
movq %rdi, -0xb70(%rbp)
callq 0x2370
movq -0xb78(%rbp), %rdi
movq -0xb70(%rbp), %rdx
leaq 0x68de(%rip), %rsi      # 0x908e
callq 0x4450
jmp 0x27b7
leaq -0x878(%rbp), %rax
movq %rax, -0xb88(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8e4(%rbp), %rdi
movq %rdi, -0xb80(%rbp)
callq 0x2370
movq -0xb88(%rbp), %rdi
movq -0xb80(%rbp), %rdx
leaq 0x68ff(%rip), %rsi      # 0x90f3
callq 0x4450
jmp 0x27fb
leaq -0x858(%rbp), %rax
movq %rax, -0xb98(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8e5(%rbp), %rdi
movq %rdi, -0xb90(%rbp)
callq 0x2370
movq -0xb98(%rbp), %rdi
movq -0xb90(%rbp), %rdx
leaq 0x690f(%rip), %rsi      # 0x9147
callq 0x4450
jmp 0x283f
leaq -0x838(%rbp), %rax
movq %rax, -0xba8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8e6(%rbp), %rdi
movq %rdi, -0xba0(%rbp)
callq 0x2370
movq -0xba8(%rbp), %rdi
movq -0xba0(%rbp), %rdx
leaq 0x68fc(%rip), %rsi      # 0x9178
callq 0x4450
jmp 0x2883
leaq -0x818(%rbp), %rax
movq %rax, -0xbb8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8e7(%rbp), %rdi
movq %rdi, -0xbb0(%rbp)
callq 0x2370
movq -0xbb8(%rbp), %rdi
movq -0xbb0(%rbp), %rdx
leaq 0x6918(%rip), %rsi      # 0x91d8
callq 0x4450
jmp 0x28c7
leaq -0x7f8(%rbp), %rax
movq %rax, -0xbc8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8e8(%rbp), %rdi
movq %rdi, -0xbc0(%rbp)
callq 0x2370
movq -0xbc8(%rbp), %rdi
movq -0xbc0(%rbp), %rdx
leaq 0x690d(%rip), %rsi      # 0x9211
callq 0x4450
jmp 0x290b
leaq -0x7d8(%rbp), %rax
movq %rax, -0xbd8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8e9(%rbp), %rdi
movq %rdi, -0xbd0(%rbp)
callq 0x2370
movq -0xbd8(%rbp), %rdi
movq -0xbd0(%rbp), %rdx
leaq 0x6905(%rip), %rsi      # 0x924d
callq 0x4450
jmp 0x294f
leaq -0x7b8(%rbp), %rax
movq %rax, -0xbe8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8ea(%rbp), %rdi
movq %rdi, -0xbe0(%rbp)
callq 0x2370
movq -0xbe8(%rbp), %rdi
movq -0xbe0(%rbp), %rdx
leaq 0x6911(%rip), %rsi      # 0x929d
callq 0x4450
jmp 0x2993
leaq -0x798(%rbp), %rax
movq %rax, -0xbf8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8eb(%rbp), %rdi
movq %rdi, -0xbf0(%rbp)
callq 0x2370
movq -0xbf8(%rbp), %rdi
movq -0xbf0(%rbp), %rdx
leaq 0x6901(%rip), %rsi      # 0x92d1
callq 0x4450
jmp 0x29d7
leaq -0x778(%rbp), %rax
movq %rax, -0xc08(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8ec(%rbp), %rdi
movq %rdi, -0xc00(%rbp)
callq 0x2370
movq -0xc08(%rbp), %rdi
movq -0xc00(%rbp), %rdx
leaq 0x6922(%rip), %rsi      # 0x9336
callq 0x4450
jmp 0x2a1b
leaq -0x758(%rbp), %rax
movq %rax, -0xc18(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8ed(%rbp), %rdi
movq %rdi, -0xc10(%rbp)
callq 0x2370
movq -0xc18(%rbp), %rdi
movq -0xc10(%rbp), %rdx
leaq 0x6920(%rip), %rsi      # 0x9378
callq 0x4450
jmp 0x2a5f
leaq -0x738(%rbp), %rax
movq %rax, -0xc28(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8ee(%rbp), %rdi
movq %rdi, -0xc20(%rbp)
callq 0x2370
movq -0xc28(%rbp), %rdi
movq -0xc20(%rbp), %rdx
leaq 0x693c(%rip), %rsi      # 0x93d8
callq 0x4450
jmp 0x2aa3
leaq -0x718(%rbp), %rax
movq %rax, -0xc38(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8ef(%rbp), %rdi
movq %rdi, -0xc30(%rbp)
callq 0x2370
movq -0xc38(%rbp), %rdi
movq -0xc30(%rbp), %rdx
leaq 0x6945(%rip), %rsi      # 0x9425
callq 0x4450
jmp 0x2ae7
leaq -0x6f8(%rbp), %rax
movq %rax, -0xc48(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8f0(%rbp), %rdi
movq %rdi, -0xc40(%rbp)
callq 0x2370
movq -0xc48(%rbp), %rdi
movq -0xc40(%rbp), %rdx
leaq 0x6945(%rip), %rsi      # 0x9469
callq 0x4450
jmp 0x2b2b
leaq -0x6d8(%rbp), %rax
movq %rax, -0xc58(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8f1(%rbp), %rdi
movq %rdi, -0xc50(%rbp)
callq 0x2370
movq -0xc58(%rbp), %rdi
movq -0xc50(%rbp), %rdx
leaq 0x6954(%rip), %rsi      # 0x94bc
callq 0x4450
jmp 0x2b6f
leaq -0x6b8(%rbp), %rax
movq %rax, -0xc68(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8f2(%rbp), %rdi
movq %rdi, -0xc60(%rbp)
callq 0x2370
movq -0xc68(%rbp), %rdi
movq -0xc60(%rbp), %rdx
leaq 0x6957(%rip), %rsi      # 0x9503
callq 0x4450
jmp 0x2bb3
leaq -0x698(%rbp), %rax
movq %rax, -0xc78(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8f3(%rbp), %rdi
movq %rdi, -0xc70(%rbp)
callq 0x2370
movq -0xc78(%rbp), %rdi
movq -0xc70(%rbp), %rdx
leaq 0x695a(%rip), %rsi      # 0x954a
callq 0x4450
jmp 0x2bf7
leaq -0x678(%rbp), %rax
movq %rax, -0xc88(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8f4(%rbp), %rdi
movq %rdi, -0xc80(%rbp)
callq 0x2370
movq -0xc88(%rbp), %rdi
movq -0xc80(%rbp), %rdx
leaq 0x694a(%rip), %rsi      # 0x957e
callq 0x4450
jmp 0x2c3b
leaq -0x658(%rbp), %rax
movq %rax, -0xc98(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8f5(%rbp), %rdi
movq %rdi, -0xc90(%rbp)
callq 0x2370
movq -0xc98(%rbp), %rdi
movq -0xc90(%rbp), %rdx
leaq 0x6952(%rip), %rsi      # 0x95ca
callq 0x4450
jmp 0x2c7f
leaq -0x638(%rbp), %rax
movq %rax, -0xca8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8f6(%rbp), %rdi
movq %rdi, -0xca0(%rbp)
callq 0x2370
movq -0xca8(%rbp), %rdi
movq -0xca0(%rbp), %rdx
leaq 0x6938(%rip), %rsi      # 0x95f4
callq 0x4450
jmp 0x2cc3
leaq -0x618(%rbp), %rax
movq %rax, -0xcb8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8f7(%rbp), %rdi
movq %rdi, -0xcb0(%rbp)
callq 0x2370
movq -0xcb8(%rbp), %rdi
movq -0xcb0(%rbp), %rdx
leaq 0x6914(%rip), %rsi      # 0x9614
callq 0x4450
jmp 0x2d07
leaq -0x5f8(%rbp), %rax
movq %rax, -0xcc8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8f8(%rbp), %rdi
movq %rdi, -0xcc0(%rbp)
callq 0x2370
movq -0xcc8(%rbp), %rdi
movq -0xcc0(%rbp), %rdx
leaq 0x691b(%rip), %rsi      # 0x965f
callq 0x4450
jmp 0x2d4b
leaq -0x5d8(%rbp), %rax
movq %rax, -0xcd8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8f9(%rbp), %rdi
movq %rdi, -0xcd0(%rbp)
callq 0x2370
movq -0xcd8(%rbp), %rdi
movq -0xcd0(%rbp), %rdx
leaq 0x690c(%rip), %rsi      # 0x9694
callq 0x4450
jmp 0x2d8f
leaq -0x5b8(%rbp), %rax
movq %rax, -0xce8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8fa(%rbp), %rdi
movq %rdi, -0xce0(%rbp)
callq 0x2370
movq -0xce8(%rbp), %rdi
movq -0xce0(%rbp), %rdx
leaq 0x692c(%rip), %rsi      # 0x96f8
callq 0x4450
jmp 0x2dd3
leaq -0x598(%rbp), %rax
movq %rax, -0xcf8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8fb(%rbp), %rdi
movq %rdi, -0xcf0(%rbp)
callq 0x2370
movq -0xcf8(%rbp), %rdi
movq -0xcf0(%rbp), %rdx
leaq 0x693c(%rip), %rsi      # 0x974c
callq 0x4450
jmp 0x2e17
leaq -0x578(%rbp), %rax
movq %rax, -0xd08(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8fc(%rbp), %rdi
movq %rdi, -0xd00(%rbp)
callq 0x2370
movq -0xd08(%rbp), %rdi
movq -0xd00(%rbp), %rdx
leaq 0x6948(%rip), %rsi      # 0x979c
callq 0x4450
jmp 0x2e5b
leaq -0x558(%rbp), %rax
movq %rax, -0xd18(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8fd(%rbp), %rdi
movq %rdi, -0xd10(%rbp)
callq 0x2370
movq -0xd18(%rbp), %rdi
movq -0xd10(%rbp), %rdx
leaq 0x693a(%rip), %rsi      # 0x97d2
callq 0x4450
jmp 0x2e9f
leaq -0x538(%rbp), %rax
movq %rax, -0xd28(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8fe(%rbp), %rdi
movq %rdi, -0xd20(%rbp)
callq 0x2370
movq -0xd28(%rbp), %rdi
movq -0xd20(%rbp), %rdx
leaq 0x6917(%rip), %rsi      # 0x97f3
callq 0x4450
jmp 0x2ee3
leaq -0x518(%rbp), %rax
movq %rax, -0xd38(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x8ff(%rbp), %rdi
movq %rdi, -0xd30(%rbp)
callq 0x2370
movq -0xd38(%rbp), %rdi
movq -0xd30(%rbp), %rdx
leaq 0x68ff(%rip), %rsi      # 0x981f
callq 0x4450
jmp 0x2f27
leaq -0x4f8(%rbp), %rax
movq %rax, -0xd48(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x900(%rbp), %rdi
movq %rdi, -0xd40(%rbp)
callq 0x2370
movq -0xd48(%rbp), %rdi
movq -0xd40(%rbp), %rdx
leaq 0x6916(%rip), %rsi      # 0x987a
callq 0x4450
jmp 0x2f6b
leaq -0x4d8(%rbp), %rax
movq %rax, -0xd58(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x901(%rbp), %rdi
movq %rdi, -0xd50(%rbp)
callq 0x2370
movq -0xd58(%rbp), %rdi
movq -0xd50(%rbp), %rdx
leaq 0x68fe(%rip), %rsi      # 0x98a6
callq 0x4450
jmp 0x2faf
leaq -0x4b8(%rbp), %rax
movq %rax, -0xd68(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x902(%rbp), %rdi
movq %rdi, -0xd60(%rbp)
callq 0x2370
movq -0xd68(%rbp), %rdi
movq -0xd60(%rbp), %rdx
leaq 0x68ea(%rip), %rsi      # 0x98d6
callq 0x4450
jmp 0x2ff3
leaq -0x498(%rbp), %rax
movq %rax, -0xd78(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x903(%rbp), %rdi
movq %rdi, -0xd70(%rbp)
callq 0x2370
movq -0xd78(%rbp), %rdi
movq -0xd70(%rbp), %rdx
leaq 0x68d1(%rip), %rsi      # 0x9901
callq 0x4450
jmp 0x3037
leaq -0x478(%rbp), %rax
movq %rax, -0xd88(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x904(%rbp), %rdi
movq %rdi, -0xd80(%rbp)
callq 0x2370
movq -0xd88(%rbp), %rdi
movq -0xd80(%rbp), %rdx
leaq 0x68d6(%rip), %rsi      # 0x994a
callq 0x4450
jmp 0x307b
leaq -0x458(%rbp), %rax
movq %rax, -0xd98(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x905(%rbp), %rdi
movq %rdi, -0xd90(%rbp)
callq 0x2370
movq -0xd98(%rbp), %rdi
movq -0xd90(%rbp), %rdx
leaq 0x68cd(%rip), %rsi      # 0x9985
callq 0x4450
jmp 0x30bf
leaq -0x438(%rbp), %rax
movq %rax, -0xda8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x906(%rbp), %rdi
movq %rdi, -0xda0(%rbp)
callq 0x2370
movq -0xda8(%rbp), %rdi
movq -0xda0(%rbp), %rdx
leaq 0x68de(%rip), %rsi      # 0x99da
callq 0x4450
jmp 0x3103
leaq -0x418(%rbp), %rax
movq %rax, -0xdb8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x907(%rbp), %rdi
movq %rdi, -0xdb0(%rbp)
callq 0x2370
movq -0xdb8(%rbp), %rdi
movq -0xdb0(%rbp), %rdx
leaq 0x68e6(%rip), %rsi      # 0x9a26
callq 0x4450
jmp 0x3147
leaq -0x3f8(%rbp), %rax
movq %rax, -0xdc8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x908(%rbp), %rdi
movq %rdi, -0xdc0(%rbp)
callq 0x2370
movq -0xdc8(%rbp), %rdi
movq -0xdc0(%rbp), %rdx
leaq 0x68d2(%rip), %rsi      # 0x9a56
callq 0x4450
jmp 0x318b
leaq -0x3d8(%rbp), %rax
movq %rax, -0xdd8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x909(%rbp), %rdi
movq %rdi, -0xdd0(%rbp)
callq 0x2370
movq -0xdd8(%rbp), %rdi
movq -0xdd0(%rbp), %rdx
leaq 0x68b8(%rip), %rsi      # 0x9a80
callq 0x4450
jmp 0x31cf
leaq -0x3b8(%rbp), %rax
movq %rax, -0xde8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x90a(%rbp), %rdi
movq %rdi, -0xde0(%rbp)
callq 0x2370
movq -0xde8(%rbp), %rdi
movq -0xde0(%rbp), %rdx
leaq 0x68c3(%rip), %rsi      # 0x9acf
callq 0x4450
jmp 0x3213
leaq -0x398(%rbp), %rax
movq %rax, -0xdf8(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x90b(%rbp), %rdi
movq %rdi, -0xdf0(%rbp)
callq 0x2370
movq -0xdf8(%rbp), %rdi
movq -0xdf0(%rbp), %rdx
leaq 0x68af(%rip), %rsi      # 0x9aff
callq 0x4450
jmp 0x3257
leaq -0x378(%rbp), %rax
movq %rax, -0xe08(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x90c(%rbp), %rdi
movq %rdi, -0xe00(%rbp)
callq 0x2370
movq -0xe08(%rbp), %rdi
movq -0xe00(%rbp), %rdx
leaq 0x68cf(%rip), %rsi      # 0x9b63
callq 0x4450
jmp 0x329b
leaq -0x358(%rbp), %rax
movq %rax, -0xe18(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x90d(%rbp), %rdi
movq %rdi, -0xe10(%rbp)
callq 0x2370
movq -0xe18(%rbp), %rdi
movq -0xe10(%rbp), %rdx
leaq 0x68cd(%rip), %rsi      # 0x9ba5
callq 0x4450
jmp 0x32df
leaq -0x338(%rbp), %rax
movq %rax, -0xe28(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x90e(%rbp), %rdi
movq %rdi, -0xe20(%rbp)
callq 0x2370
movq -0xe28(%rbp), %rdi
movq -0xe20(%rbp), %rdx
leaq 0x68ed(%rip), %rsi      # 0x9c09
callq 0x4450
jmp 0x3323
leaq -0x318(%rbp), %rax
movq %rax, -0xe38(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x90f(%rbp), %rdi
movq %rdi, -0xe30(%rbp)
callq 0x2370
movq -0xe38(%rbp), %rdi
movq -0xe30(%rbp), %rdx
leaq 0x68d1(%rip), %rsi      # 0x9c31
callq 0x4450
jmp 0x3367
leaq -0x2f8(%rbp), %rax
movq %rax, -0xe48(%rbp)
movq %rax, -0x8e0(%rbp)
leaq -0x910(%rbp), %rdi
movq %rdi, -0xe40(%rbp)
callq 0x2370
movq -0xe48(%rbp), %rdi
movq -0xe40(%rbp), %rdx
leaq 0x68b6(%rip), %rsi      # 0x9c5a
callq 0x4450
jmp 0x33ab
movb $0x0, -0x911(%rbp)
leaq -0x8d8(%rbp), %rax
movq %rax, -0x2d8(%rbp)
movq $0x30, -0x2d0(%rbp)
leaq -0x912(%rbp), %rdi
movq %rdi, -0xe50(%rbp)
callq 0x4500
movq -0xe50(%rbp), %rcx
movq -0x2d8(%rbp), %rsi
movq -0x2d0(%rbp), %rdx
leaq -0x2c8(%rbp), %rdi
callq 0x4520
jmp 0x3401
leaq -0x912(%rbp), %rdi
callq 0x45a0
leaq -0x8d8(%rbp), %rax
movq %rax, -0xe60(%rbp)
addq $0x600, %rax            # imm = 0x600
movq %rax, -0xe58(%rbp)
movq -0xe58(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0xe68(%rbp)
callq 0x2100
movq -0xe60(%rbp), %rcx
movq -0xe68(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0xe58(%rbp)
jne 0x3428
leaq -0x910(%rbp), %rdi
callq 0x2260
leaq -0x90f(%rbp), %rdi
callq 0x2260
leaq -0x90e(%rbp), %rdi
callq 0x2260
leaq -0x90d(%rbp), %rdi
callq 0x2260
leaq -0x90c(%rbp), %rdi
callq 0x2260
leaq -0x90b(%rbp), %rdi
callq 0x2260
leaq -0x90a(%rbp), %rdi
callq 0x2260
leaq -0x909(%rbp), %rdi
callq 0x2260
leaq -0x908(%rbp), %rdi
callq 0x2260
leaq -0x907(%rbp), %rdi
callq 0x2260
leaq -0x906(%rbp), %rdi
callq 0x2260
leaq -0x905(%rbp), %rdi
callq 0x2260
leaq -0x904(%rbp), %rdi
callq 0x2260
leaq -0x903(%rbp), %rdi
callq 0x2260
leaq -0x902(%rbp), %rdi
callq 0x2260
leaq -0x901(%rbp), %rdi
callq 0x2260
leaq -0x900(%rbp), %rdi
callq 0x2260
leaq -0x8ff(%rbp), %rdi
callq 0x2260
leaq -0x8fe(%rbp), %rdi
callq 0x2260
leaq -0x8fd(%rbp), %rdi
callq 0x2260
leaq -0x8fc(%rbp), %rdi
callq 0x2260
leaq -0x8fb(%rbp), %rdi
callq 0x2260
leaq -0x8fa(%rbp), %rdi
callq 0x2260
leaq -0x8f9(%rbp), %rdi
callq 0x2260
leaq -0x8f8(%rbp), %rdi
callq 0x2260
leaq -0x8f7(%rbp), %rdi
callq 0x2260
leaq -0x8f6(%rbp), %rdi
callq 0x2260
leaq -0x8f5(%rbp), %rdi
callq 0x2260
leaq -0x8f4(%rbp), %rdi
callq 0x2260
leaq -0x8f3(%rbp), %rdi
callq 0x2260
leaq -0x8f2(%rbp), %rdi
callq 0x2260
leaq -0x8f1(%rbp), %rdi
callq 0x2260
leaq -0x8f0(%rbp), %rdi
callq 0x2260
leaq -0x8ef(%rbp), %rdi
callq 0x2260
leaq -0x8ee(%rbp), %rdi
callq 0x2260
leaq -0x8ed(%rbp), %rdi
callq 0x2260
leaq -0x8ec(%rbp), %rdi
callq 0x2260
leaq -0x8eb(%rbp), %rdi
callq 0x2260
leaq -0x8ea(%rbp), %rdi
callq 0x2260
leaq -0x8e9(%rbp), %rdi
callq 0x2260
leaq -0x8e8(%rbp), %rdi
callq 0x2260
leaq -0x8e7(%rbp), %rdi
callq 0x2260
leaq -0x8e6(%rbp), %rdi
callq 0x2260
leaq -0x8e5(%rbp), %rdi
callq 0x2260
leaq -0x8e4(%rbp), %rdi
callq 0x2260
leaq -0x8e3(%rbp), %rdi
callq 0x2260
leaq -0x8e2(%rbp), %rdi
callq 0x2260
leaq -0x8e1(%rbp), %rdi
callq 0x2260
leaq 0x66a8(%rip), %rsi      # 0x9d48
leaq -0xa00(%rbp), %rdi
movq %rdi, -0xe78(%rbp)
movl $0xc0, %edx
callq 0x2190
movq -0xe78(%rbp), %rax
movq %rax, -0x940(%rbp)
movq $0x30, -0x938(%rbp)
leaq -0xa01(%rbp), %rdi
movq %rdi, -0xe70(%rbp)
callq 0x45c0
movq -0xe70(%rbp), %rcx
movq -0x940(%rbp), %rsi
movq -0x938(%rbp), %rdx
leaq -0x930(%rbp), %rdi
callq 0x45e0
jmp 0x3707
leaq -0xa01(%rbp), %rdi
callq 0x4660
leaq 0x66ee(%rip), %rsi      # 0x9e08
leaq -0xaf0(%rbp), %rdi
movq %rdi, -0xe88(%rbp)
movl $0xc0, %edx
callq 0x2190
movq -0xe88(%rbp), %rax
movq %rax, -0xa30(%rbp)
movq $0x30, -0xa28(%rbp)
leaq -0xaf1(%rbp), %rdi
movq %rdi, -0xe80(%rbp)
callq 0x45c0
movq -0xe80(%rbp), %rcx
movq -0xa30(%rbp), %rsi
movq -0xa28(%rbp), %rdx
leaq -0xa20(%rbp), %rdi
callq 0x45e0
jmp 0x3781
leaq -0xaf1(%rbp), %rdi
callq 0x4660
movl $0x0, -0xaf8(%rbp)
cmpl $0x30, -0xaf8(%rbp)
jae 0x413c
movl $0x48, %edi
callq 0x2210
movq %rax, -0xe90(%rbp)
jmp 0x37b7
movl -0xaf8(%rbp), %eax
movl %eax, %esi
leaq -0x100(%rbp), %rdi
callq 0x4680
movq %rax, -0xea8(%rbp)
movl -0xaf8(%rbp), %eax
movl %eax, %esi
leaq -0x2c8(%rbp), %rdi
callq 0x4680
movq %rax, -0xea0(%rbp)
movl -0xaf8(%rbp), %eax
movl %eax, %esi
leaq -0xa20(%rbp), %rdi
callq 0x46a0
movl (%rax), %eax
movl %eax, -0xe94(%rbp)
movl -0xaf8(%rbp), %eax
movl %eax, %esi
leaq -0x930(%rbp), %rdi
callq 0x46a0
movq -0xe90(%rbp), %rdi
movq -0xea8(%rbp), %rsi
movq -0xea0(%rbp), %rdx
movl -0xe94(%rbp), %ecx
movl (%rax), %r8d
callq 0x8010
jmp 0x3842
movq -0xe90(%rbp), %rax
movq %rax, -0xb00(%rbp)
movq -0xb00(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x63d0
jmp 0x3862
movl $0x48, %edi
callq 0x2210
movq %rax, -0xeb0(%rbp)
jmp 0x3875
movl -0xaf8(%rbp), %eax
movl %eax, %esi
leaq -0x100(%rbp), %rdi
callq 0x4680
movq %rax, -0xec8(%rbp)
movl -0xaf8(%rbp), %eax
movl %eax, %esi
leaq -0x2c8(%rbp), %rdi
callq 0x4680
movq %rax, -0xec0(%rbp)
movl -0xaf8(%rbp), %eax
movl %eax, %esi
leaq -0xa20(%rbp), %rdi
callq 0x46a0
movl (%rax), %eax
movl %eax, -0xeb4(%rbp)
movl -0xaf8(%rbp), %eax
movl %eax, %esi
leaq -0x930(%rbp), %rdi
callq 0x46a0
movq -0xeb0(%rbp), %rdi
movq -0xec8(%rbp), %rsi
movq -0xec0(%rbp), %rdx
movl -0xeb4(%rbp), %ecx
movl (%rax), %r8d
callq 0x8010
jmp 0x3900
movq -0xeb0(%rbp), %rax
movq %rax, -0xb00(%rbp)
movq -0xb00(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0x63d0
jmp 0x3923
jmp 0x3925
movl -0xaf8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xaf8(%rbp)
jmp 0x3797
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x4026
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x401a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x400e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x4002
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3ff6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3fea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3fde
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3fd2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3fc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3fba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3fae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3fa2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f7e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f72
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f66
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f5a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f12
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3f06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3efa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3eee
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3ee2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3ed6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3eca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3ebe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3eb2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3ea6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3e0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3dfe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x3df2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0x912(%rbp), %rdi
callq 0x45a0
leaq -0x8d8(%rbp), %rax
movq %rax, -0xed8(%rbp)
addq $0x600, %rax            # imm = 0x600
movq %rax, -0xed0(%rbp)
movq -0xed0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0xee0(%rbp)
callq 0x2100
movq -0xed8(%rbp), %rcx
movq -0xee0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0xed0(%rbp)
jne 0x3dbf
jmp 0x3df2
leaq -0x910(%rbp), %rdi
callq 0x2260
leaq -0x90f(%rbp), %rdi
callq 0x2260
leaq -0x90e(%rbp), %rdi
callq 0x2260
leaq -0x90d(%rbp), %rdi
callq 0x2260
leaq -0x90c(%rbp), %rdi
callq 0x2260
leaq -0x90b(%rbp), %rdi
callq 0x2260
leaq -0x90a(%rbp), %rdi
callq 0x2260
leaq -0x909(%rbp), %rdi
callq 0x2260
leaq -0x908(%rbp), %rdi
callq 0x2260
leaq -0x907(%rbp), %rdi
callq 0x2260
leaq -0x906(%rbp), %rdi
callq 0x2260
leaq -0x905(%rbp), %rdi
callq 0x2260
leaq -0x904(%rbp), %rdi
callq 0x2260
leaq -0x903(%rbp), %rdi
callq 0x2260
leaq -0x902(%rbp), %rdi
callq 0x2260
leaq -0x901(%rbp), %rdi
callq 0x2260
leaq -0x900(%rbp), %rdi
callq 0x2260
leaq -0x8ff(%rbp), %rdi
callq 0x2260
leaq -0x8fe(%rbp), %rdi
callq 0x2260
leaq -0x8fd(%rbp), %rdi
callq 0x2260
leaq -0x8fc(%rbp), %rdi
callq 0x2260
leaq -0x8fb(%rbp), %rdi
callq 0x2260
leaq -0x8fa(%rbp), %rdi
callq 0x2260
leaq -0x8f9(%rbp), %rdi
callq 0x2260
leaq -0x8f8(%rbp), %rdi
callq 0x2260
leaq -0x8f7(%rbp), %rdi
callq 0x2260
leaq -0x8f6(%rbp), %rdi
callq 0x2260
leaq -0x8f5(%rbp), %rdi
callq 0x2260
leaq -0x8f4(%rbp), %rdi
callq 0x2260
leaq -0x8f3(%rbp), %rdi
callq 0x2260
leaq -0x8f2(%rbp), %rdi
callq 0x2260
leaq -0x8f1(%rbp), %rdi
callq 0x2260
leaq -0x8f0(%rbp), %rdi
callq 0x2260
leaq -0x8ef(%rbp), %rdi
callq 0x2260
leaq -0x8ee(%rbp), %rdi
callq 0x2260
leaq -0x8ed(%rbp), %rdi
callq 0x2260
leaq -0x8ec(%rbp), %rdi
callq 0x2260
leaq -0x8eb(%rbp), %rdi
callq 0x2260
leaq -0x8ea(%rbp), %rdi
callq 0x2260
leaq -0x8e9(%rbp), %rdi
callq 0x2260
leaq -0x8e8(%rbp), %rdi
callq 0x2260
leaq -0x8e7(%rbp), %rdi
callq 0x2260
leaq -0x8e6(%rbp), %rdi
callq 0x2260
leaq -0x8e5(%rbp), %rdi
callq 0x2260
leaq -0x8e4(%rbp), %rdi
callq 0x2260
leaq -0x8e3(%rbp), %rdi
callq 0x2260
leaq -0x8e2(%rbp), %rdi
callq 0x2260
leaq -0x8e1(%rbp), %rdi
callq 0x2260
testb $0x1, -0x911(%rbp)
jne 0x403d
jmp 0x408a
movq -0x8e0(%rbp), %rax
leaq -0x8d8(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0xee8(%rbp)
je 0x4088
movq -0xee8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0xef0(%rbp)
callq 0x2100
movq -0xef0(%rbp), %rax
leaq -0x8d8(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0xee8(%rbp)
jne 0x4057
jmp 0x408a
jmp 0x436f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xa01(%rbp), %rdi
callq 0x4660
jmp 0x4363
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xaf1(%rbp), %rdi
callq 0x4660
jmp 0x4357
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
jmp 0x434b
movq -0xe90(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
movl $0x48, %esi
callq 0x2220
jmp 0x434b
movq -0xeb0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
movl $0x48, %esi
callq 0x2220
jmp 0x434b
movl $0x0, -0xb04(%rbp)
cmpl $0x3, -0xb04(%rbp)
jae 0x41b6
leaq -0xd8(%rbp), %rdi
callq 0x6430
movq %rax, -0xef8(%rbp)
jmp 0x4164
movq -0xef8(%rbp), %rax
movq %rax, -0xb10(%rbp)
movq -0xb10(%rbp), %rax
movq %rax, -0xf00(%rbp)
cmpq $0x0, %rax
je 0x41a3
movq -0xf00(%rbp), %rdi
callq 0x80b0
movq -0xf00(%rbp), %rdi
movl $0x48, %esi
callq 0x2220
jmp 0x41a5
movl -0xb04(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb04(%rbp)
jmp 0x4146
leaq -0xd8(%rbp), %rdi
callq 0x62f0
jmp 0x41c4
movb $0x1, -0xb11(%rbp)
movb -0xb11(%rbp), %dl
leaq 0x5ac5(%rip), %rcx      # 0x9c9d
leaq 0x5ac8(%rip), %rax      # 0x9ca7
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0xf10(%rbp)
leaq -0xb39(%rbp), %rdi
movq %rdi, -0xf08(%rbp)
callq 0x2370
movq -0xf10(%rbp), %rsi
movq -0xf08(%rbp), %rdx
leaq -0xb38(%rbp), %rdi
callq 0x4450
jmp 0x421c
leaq -0xb39(%rbp), %rdi
callq 0x2260
movq 0x9da9(%rip), %rdi      # 0xdfd8
leaq 0x5a7d(%rip), %rsi      # 0x9cb3
callq 0x2200
movq %rax, -0xf18(%rbp)
jmp 0x4244
movq -0xf18(%rbp), %rdi
leaq -0xb38(%rbp), %rsi
callq 0x21d0
movq %rax, -0xf20(%rbp)
jmp 0x4260
movq -0xf20(%rbp), %rdi
leaq 0x5a5e(%rip), %rsi      # 0x9ccc
callq 0x2200
movq %rax, -0xf28(%rbp)
jmp 0x427c
movq -0xf28(%rbp), %rdi
movq 0x9d3e(%rip), %rsi      # 0xdfc8
callq 0x2240
jmp 0x4291
movl $0x0, -0x4(%rbp)
leaq -0xb38(%rbp), %rdi
callq 0x2100
leaq -0xa20(%rbp), %rdi
callq 0x46c0
leaq -0x930(%rbp), %rdi
callq 0x46c0
leaq -0x2c8(%rbp), %rdi
callq 0x4720
leaq -0x2a8(%rbp), %rdi
callq 0x2100
leaq -0x288(%rbp), %rdi
callq 0x2160
leaq -0x100(%rbp), %rdi
callq 0x4720
leaq -0xd8(%rbp), %rdi
callq 0x6290
leaq -0x70(%rbp), %rdi
callq 0x6290
movl -0x4(%rbp), %eax
addq $0xf30, %rsp            # imm = 0xF30
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xb39(%rbp), %rdi
callq 0x2260
jmp 0x434b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe0(%rbp)
movl %eax, -0xe4(%rbp)
leaq -0xb38(%rbp), %rdi
callq 0x2100
leaq -0xa20(%rbp), %rdi
callq 0x46c0
leaq -0x930(%rbp), %rdi
callq 0x46c0
leaq -0x2c8(%rbp), %rdi
callq 0x4720
leaq -0x2a8(%rbp), %rdi
callq 0x2100
leaq -0x288(%rbp), %rdi
callq 0x2160
leaq -0x100(%rbp), %rdi
callq 0x4720
leaq -0xd8(%rbp), %rdi
callq 0x6290
leaq -0x70(%rbp), %rdi
callq 0x6290
movq -0xe0(%rbp), %rdi
callq 0x2360
nopw %cs:(%rax,%rax)
nop