// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x918, %rsp            # imm = 0x918
leaq 0x128(%rsp), %rdi
callq 0x33a0
leaq 0xc0(%rsp), %rdi
callq 0x33a0
xorps %xmm0, %xmm0
movaps %xmm0, 0x30(%rsp)
andq $0x0, 0x40(%rsp)
leaq 0x790(%rsp), %rbx
movq %rbx, %rdi
callq 0x20e0
leaq 0xb0(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
xorl %eax, %eax
leaq 0x7a0(%rsp), %r14
leaq 0x2b7a(%rip), %r15      # 0x5004
leaq 0xa0(%rsp), %r12
leaq 0x30(%rsp), %r13
movq %rax, 0x68(%rsp)
cmpl $0x4, %eax
je 0x24f9
xorl %ebp, %ebp
cmpq $0xc, %rbp
je 0x24f0
movq %r14, %rdi
movq %r15, %rsi
callq 0x2170
movq %rax, %rdi
movq %rbp, %rsi
callq 0x20d0
movq %rbx, %rdi
movq %r12, %rsi
callq 0x21b0
movq %r13, %rdi
movq %r12, %rsi
callq 0x2e0a
movq 0x790(%rsp), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
xorl %esi, %esi
callq 0x2250
incq %rbp
jmp 0x24a3
movq 0x68(%rsp), %rax
incl %eax
jmp 0x2497
leaq 0x2b09(%rip), %rsi      # 0x5009
leaq 0x190(%rsp), %rbx
leaq 0x70(%rsp), %rdx
movq %rbx, %rdi
callq 0x2e36
leaq 0x1b0(%rsp), %r14
leaq 0x2b48(%rip), %rsi      # 0x506c
leaq 0x50(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x1d0(%rsp), %r14
leaq 0x2b4e(%rip), %rsi      # 0x508e
leaq 0x1(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x1f0(%rsp), %r14
leaq 0x2b97(%rip), %rsi      # 0x50f3
leaq 0x2f(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x210(%rsp), %r14
leaq 0x2bcf(%rip), %rsi      # 0x5147
leaq 0x2e(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x230(%rsp), %r14
leaq 0x2be4(%rip), %rsi      # 0x5178
leaq 0x2d(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x250(%rsp), %r14
leaq 0x2c28(%rip), %rsi      # 0x51d8
leaq 0x2c(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x270(%rsp), %r14
leaq 0x2c45(%rip), %rsi      # 0x5211
leaq 0x2b(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x290(%rsp), %r14
leaq 0x2c65(%rip), %rsi      # 0x524d
leaq 0x2a(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x2b0(%rsp), %r14
leaq 0x2c99(%rip), %rsi      # 0x529d
leaq 0x29(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x2d0(%rsp), %r14
leaq 0x2cb1(%rip), %rsi      # 0x52d1
leaq 0x28(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x2f0(%rsp), %r14
leaq 0x2cfa(%rip), %rsi      # 0x5336
leaq 0x27(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x310(%rsp), %r14
leaq 0x2d20(%rip), %rsi      # 0x5378
leaq 0x26(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x330(%rsp), %r14
leaq 0x2d64(%rip), %rsi      # 0x53d8
leaq 0x25(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x350(%rsp), %r14
leaq 0x2d95(%rip), %rsi      # 0x5425
leaq 0x24(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x370(%rsp), %r14
leaq 0x2dbd(%rip), %rsi      # 0x5469
leaq 0x23(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x390(%rsp), %r14
leaq 0x2df4(%rip), %rsi      # 0x54bc
leaq 0x22(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x3b0(%rsp), %r14
leaq 0x2e1f(%rip), %rsi      # 0x5503
leaq 0x21(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x3d0(%rsp), %r14
leaq 0x2e4a(%rip), %rsi      # 0x554a
leaq 0x20(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x3f0(%rsp), %r14
leaq 0x2e62(%rip), %rsi      # 0x557e
leaq 0x1f(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x410(%rsp), %r14
leaq 0x2e92(%rip), %rsi      # 0x55ca
leaq 0x1e(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x430(%rsp), %r14
leaq 0x2ea0(%rip), %rsi      # 0x55f4
leaq 0x1d(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x450(%rsp), %r14
leaq 0x2ea4(%rip), %rsi      # 0x5614
leaq 0x1c(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x470(%rsp), %r14
leaq 0x2ed3(%rip), %rsi      # 0x565f
leaq 0x1b(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x490(%rsp), %r14
leaq 0x2eec(%rip), %rsi      # 0x5694
leaq 0x1a(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x4b0(%rsp), %r14
leaq 0x2f34(%rip), %rsi      # 0x56f8
leaq 0x19(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x4d0(%rsp), %r14
leaq 0x2f6c(%rip), %rsi      # 0x574c
leaq 0x18(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x4f0(%rsp), %r14
leaq 0x2fa0(%rip), %rsi      # 0x579c
leaq 0x17(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x510(%rsp), %r14
leaq 0x2fba(%rip), %rsi      # 0x57d2
leaq 0x16(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x530(%rsp), %r14
leaq 0x2fbf(%rip), %rsi      # 0x57f3
leaq 0x15(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x550(%rsp), %r14
leaq 0x2fcf(%rip), %rsi      # 0x581f
leaq 0x14(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x570(%rsp), %r14
leaq 0x300e(%rip), %rsi      # 0x587a
leaq 0x13(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x590(%rsp), %r14
leaq 0x301e(%rip), %rsi      # 0x58a6
leaq 0x12(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x5b0(%rsp), %r14
leaq 0x3032(%rip), %rsi      # 0x58d6
leaq 0x11(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x5d0(%rsp), %r14
leaq 0x3041(%rip), %rsi      # 0x5901
leaq 0x10(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x5f0(%rsp), %r14
leaq 0x306e(%rip), %rsi      # 0x594a
leaq 0xf(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x610(%rsp), %r14
leaq 0x308d(%rip), %rsi      # 0x5985
leaq 0xe(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x630(%rsp), %r14
leaq 0x30c6(%rip), %rsi      # 0x59da
leaq 0xd(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x650(%rsp), %r14
leaq 0x30f6(%rip), %rsi      # 0x5a26
leaq 0xc(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x670(%rsp), %r14
leaq 0x310a(%rip), %rsi      # 0x5a56
leaq 0xb(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x690(%rsp), %r14
leaq 0x3118(%rip), %rsi      # 0x5a80
leaq 0xa(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x6b0(%rsp), %r14
leaq 0x314b(%rip), %rsi      # 0x5acf
leaq 0x9(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x6d0(%rsp), %r14
leaq 0x315f(%rip), %rsi      # 0x5aff
leaq 0x8(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x6f0(%rsp), %r14
leaq 0x31a7(%rip), %rsi      # 0x5b63
leaq 0x7(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x710(%rsp), %r14
leaq 0x31cd(%rip), %rsi      # 0x5ba5
leaq 0x6(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x730(%rsp), %r14
leaq 0x3215(%rip), %rsi      # 0x5c09
leaq 0x5(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x750(%rsp), %r14
leaq 0x3221(%rip), %rsi      # 0x5c31
leaq 0x4(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x770(%rsp), %r14
leaq 0x322e(%rip), %rsi      # 0x5c5a
leaq 0x3(%rsp), %rdx
movq %r14, %rdi
callq 0x2e36
leaq 0x88(%rsp), %rdi
leaq 0x190(%rsp), %rsi
pushq $0x30
popq %rdx
leaq 0x2(%rsp), %rcx
callq 0x2e72
movl $0x5e0, %ebx            # imm = 0x5E0
leaq (%rsp,%rbx), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0x2080
addq $-0x20, %rbx
cmpq $-0x20, %rbx
jne 0x2a5b
leaq 0x32c0(%rip), %rsi      # 0x5d3c
leaq 0x190(%rsp), %rbx
movl $0xc0, %edx
movq %rbx, %rdi
callq 0x2120
leaq 0x70(%rsp), %rdi
pushq $0x30
popq %rdx
leaq 0x50(%rsp), %rcx
movq %rbx, %rsi
callq 0x2eac
leaq 0x334f(%rip), %rsi      # 0x5dfc
leaq 0x190(%rsp), %rbx
movl $0xc0, %edx
movq %rbx, %rdi
callq 0x2120
leaq 0x50(%rsp), %rdi
pushq $0x30
popq %rdx
leaq 0x1(%rsp), %rcx
movq %rbx, %rsi
callq 0x2eac
xorl %r13d, %r13d
pushq $0x48
popq %rbx
leaq 0x128(%rsp), %r14
leaq 0xc0(%rsp), %r15
xorl %ebp, %ebp
cmpq $0x30, %rbp
je 0x2b89
movq %rbx, %rdi
callq 0x2180
movq %rax, %r12
movq 0x30(%rsp), %rsi
addq %r13, %rsi
movq 0x88(%rsp), %rdx
addq %r13, %rdx
movq 0x50(%rsp), %rax
movl (%rax,%rbp,4), %ecx
movq 0x70(%rsp), %rax
movl (%rax,%rbp,4), %r8d
movq %r12, %rdi
callq 0x3d34
movq %r14, %rdi
movq %r12, %rsi
callq 0x34da
movq %rbx, %rdi
callq 0x2180
movq %rax, %r12
movq 0x30(%rsp), %rsi
addq %r13, %rsi
movq 0x88(%rsp), %rdx
addq %r13, %rdx
movq 0x50(%rsp), %rax
movl (%rax,%rbp,4), %ecx
movq 0x70(%rsp), %rax
movl (%rax,%rbp,4), %r8d
movq %r12, %rdi
callq 0x3d34
movq %r15, %rdi
movq %r12, %rsi
callq 0x34da
incq %rbp
addq $0x20, %r13
jmp 0x2aef
pushq $0x3
popq %rbp
leaq 0xc0(%rsp), %rbx
pushq $0x48
popq %r14
subl $0x1, %ebp
jb 0x2bc2
movq %rbx, %rdi
callq 0x352c
movq %rax, %r15
testq %rax, %rax
je 0x2bb5
movq %r15, %rdi
callq 0x3da8
movq %r15, %rdi
movq %r14, %rsi
callq 0x2190
jmp 0x2b98
leaq 0xc0(%rsp), %rdi
callq 0x3444
leaq 0x30c7(%rip), %rsi      # 0x5c9d
leaq 0x190(%rsp), %rdi
leaq 0x1(%rsp), %rdx
callq 0x2e36
movq 0x63e9(%rip), %rdi      # 0x8fd8
leaq 0x30b1(%rip), %rsi      # 0x5ca7
callq 0x2170
leaq 0x190(%rsp), %rsi
movq %rax, %rdi
callq 0x2160
leaq 0x30ae(%rip), %rsi      # 0x5cc0
movq %rax, %rdi
callq 0x2170
movq %rax, %rdi
callq 0x2090
leaq 0x190(%rsp), %rdi
callq 0x2080
leaq 0x50(%rsp), %rdi
callq 0x3316
leaq 0x70(%rsp), %rdi
callq 0x3316
leaq 0x88(%rsp), %rdi
callq 0x2ee2
leaq 0xa0(%rsp), %rdi
callq 0x2080
leaq 0x790(%rsp), %rdi
callq 0x2100
leaq 0x30(%rsp), %rdi
callq 0x2ee2
leaq 0xc0(%rsp), %rdi
callq 0x3416
leaq 0x128(%rsp), %rdi
callq 0x3416
xorl %eax, %eax
addq $0x918, %rsp            # imm = 0x918
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2d9a
jmp 0x2d9a
movq %rax, %r15
jmp 0x2da7
movq %rax, %r15
jmp 0x2db1
movq %rax, %r15
movl $0x5e0, %r12d           # imm = 0x5E0
leaq (%rsp,%r12), %rdi
addq $0x190, %rdi            # imm = 0x190
callq 0x2080
addq $-0x20, %r12
cmpq $-0x20, %r12
jne 0x2cc5
movb $0x1, %al
jmp 0x2d44
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
jmp 0x2d3f
movq %rax, %r15
xorl %eax, %eax
cmpq %r14, %rbx
sete %cl
testb %al, %al
jne 0x2dc3
testb %cl, %cl
jne 0x2dc3
addq $-0x20, %r14
movq %r14, %rdi
callq 0x2080
cmpq %rbx, %r14
jne 0x2d52
jmp 0x2dc3
jmp 0x2dc0
movq %rax, %r15
jmp 0x2ddd
movq %rax, %r15
jmp 0x2df4
movq %rax, %r15
leaq 0x190(%rsp), %rdi
callq 0x2080
jmp 0x2d9d
jmp 0x2d9a
jmp 0x2d8a
movq %rax, %r15
pushq $0x48
popq %rsi
movq %r12, %rdi
callq 0x2190
jmp 0x2d9d
movq %rax, %r15
leaq 0x50(%rsp), %rdi
callq 0x3316
leaq 0x70(%rsp), %rdi
callq 0x3316
leaq 0x88(%rsp), %rdi
callq 0x2ee2
jmp 0x2dc3
movq %rax, %r15
leaq 0xa0(%rsp), %rdi
callq 0x2080
leaq 0x790(%rsp), %rdi
callq 0x2100
leaq 0x30(%rsp), %rdi
callq 0x2ee2
leaq 0xc0(%rsp), %rdi
callq 0x3416
leaq 0x128(%rsp), %rdi
callq 0x3416
movq %r15, %rdi
callq 0x2260
nop