// File: /workspace/github_cpp_makefile_star2_O3/Se6[P]CmdLineArgs/example.cpp
// Function: main
int main(int argc, char **argv){
	
	string name;
	bool help;
    int number;
	float ratio;
	string usage;

    vector<int> values;
    vector<int> default_numbers = {1, 2, 3};

    vector<string> some_strings;
    vector<string> default_strings  = {"one", "two", "three"};

    vector<string> remaining;
	
	try{
        CmdLineArgs cl(argc, argv, "Example of command line arguments");

        help            = cl.getFlag("help", "Getting usage");
        name            = cl.getParam("name", "stone", "The name of something");
        number          = cl.getParam("number", 'n', 5, "Number of whatever");

        cl.addUsageSeparator("  == Advanced options:");
        some_strings    = cl.getParams("some_strings", default_strings, false, "some strings separated by comma");
        ratio           = cl.getParam("ratio", 0.2f, "The ratio");
        values          = cl.getParams("values", default_numbers, true, "A comma separated list of 3 values");

        cl.addUsageOutro("\nSome examples....\n");

        usage           = cl.usage();
        remaining       = cl.getRemaining();

        cl.throwIfUnparsed();
        
    } catch (const exception& error) {
		cerr << usage << error.what() << endl;
		return 1;
	}
	
	if(argc==1 || help)
		cout << usage;

	cout << endl;
	cout << "name=" << name << endl;
    cout << "some_stings=";
    for(auto &st: some_strings)
        cout << st << ",";
	cout << endl;
    cout << "number=" << number << endl;
	cout << "ratio=" << ratio << endl;
	cout << "numbers=";
    for(auto num: values)
        cout << num << ",";
	cout << endl;
	
	if(!remaining.empty()){
		cout << "remaining: ";
		for(auto rem: remaining)
			cout << rem << " ";
	}else
		cout << "no arg remaining";
	
	cout << endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rsi, %rbx
movl %edi, %ebp
leaq 0x160(%rsp), %r13
movq %r13, -0x10(%r13)
xorl %eax, %eax
movq %rax, -0x8(%r13)
movb %al, (%r13)
leaq 0x60(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movabsq $0x200000001, %rax      # imm = 0x200000001
leaq 0xe0(%rsp), %rsi
movq %rax, (%rsi)
movl $0x3, 0x8(%rsi)
leaq 0x170(%rsp), %rdi
movq %rsp, %rcx
movl $0x3, %edx
callq 0x675c
xorps %xmm0, %xmm0
movaps %xmm0, 0xc0(%rsp)
movq $0x0, 0xd0(%rsp)
leaq 0xf0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x4c40(%rip), %rsi      # 0xa136
leaq 0x4c3c(%rip), %rdx      # 0xa139
leaq 0xe0(%rsp), %r14
movq %r14, %rdi
callq 0x7134
leaq 0x100(%rsp), %r12
leaq 0x110(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x4bc8(%rip), %rsi      # 0xa0f0
leaq 0x4bc4(%rip), %rdx      # 0xa0f3
movq %r12, %rdi
callq 0x7134
leaq 0x120(%rsp), %r12
leaq 0x130(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4ba2(%rip), %rsi      # 0xa0f4
leaq 0x4ba0(%rip), %rdx      # 0xa0f9
movq %r12, %rdi
callq 0x7134
leaq 0x188(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
movq %rsp, %rcx
movl $0x3, %edx
callq 0x67a2
movq $-0x60, %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x5599
movq (%r15), %rsi
incq %rsi
callq 0x3220
addq $-0x20, %r15
addq $0x20, %r14
jne 0x5585
xorps %xmm0, %xmm0
movaps %xmm0, 0x70(%rsp)
movq $0x0, 0x80(%rsp)
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x4b32(%rip), %rsi      # 0xa0fa
leaq 0x4b4c(%rip), %rdx      # 0xa11b
movq %rsp, %rdi
callq 0x7134
leaq 0xe0(%rsp), %rdi
movq %rsp, %rcx
movl %ebp, %esi
movq %rbx, %rdx
movl $0x1, %r8d
callq 0x36e0
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5608
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x4b07(%rip), %rsi      # 0xa11c
leaq 0x4b04(%rip), %rdx      # 0xa120
callq 0x7134
leaq 0x40(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x4af0(%rip), %rsi      # 0xa121
leaq 0x4af6(%rip), %rdx      # 0xa12e
leaq 0x30(%rsp), %rdi
callq 0x7134
leaq 0xe0(%rsp), %rdi
movq %rsp, %rsi
leaq 0x30(%rsp), %rcx
movl $0x20, %edx
callq 0x3ab6
movl %eax, %ebx
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x5675
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x568b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
leaq 0x30(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x4a95(%rip), %rsi      # 0xa12f
leaq 0x4a92(%rip), %rdx      # 0xa133
callq 0x7134
leaq 0xb0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4a81(%rip), %rsi      # 0xa13a
leaq 0x4a8f(%rip), %rdx      # 0xa14f
leaq 0xa0(%rsp), %rdi
callq 0x7134
movl %ebx, 0x94(%rsp)
leaq 0x4a59(%rip), %rcx      # 0xa134
movq %rsp, %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x30(%rsp), %rdx
leaq 0xa0(%rsp), %r8
callq 0x43f8
leaq 0x150(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x3280
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x5720
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
je 0x573d
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x3220
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x5754
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x49ef(%rip), %rsi      # 0xa150
leaq 0x49ee(%rip), %rdx      # 0xa156
callq 0x7134
leaq 0x30(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x49db(%rip), %rsi      # 0xa157
leaq 0x49e6(%rip), %rdx      # 0xa169
callq 0x7134
leaq 0xe0(%rsp), %rdi
movq %rsp, %rsi
leaq 0x30(%rsp), %r8
movl $0x6e, %edx
movl $0x5, %ecx
callq 0x67ea
movl %eax, %r15d
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x57c1
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x57d7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x4986(%rip), %rsi      # 0xa16a
leaq 0x4995(%rip), %rdx      # 0xa180
callq 0x7134
leaq 0xe0(%rsp), %rdi
movq %rsp, %rsi
callq 0x4d64
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5816
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x495e(%rip), %rsi      # 0xa181
leaq 0x4963(%rip), %rdx      # 0xa18d
callq 0x7134
leaq 0x30(%rsp), %rbx
movq %r13, (%rbx)
leaq 0x4950(%rip), %rsi      # 0xa18e
leaq 0x4968(%rip), %rdx      # 0xa1ad
movq %rbx, %rdi
callq 0x7134
leaq 0x1a0(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
movq %rsp, %rdx
leaq 0x188(%rsp), %r8
movl $0x20, %ecx
xorl %r9d, %r9d
pushq $0x2c
pushq %rbx
callq 0x4492
addq $0x10, %rsp
movq 0xd0(%rsp), %rax
leaq 0x1a0(%rsp), %rbx
movaps (%rbx), %xmm0
movq 0x10(%rbx), %rcx
movq %rcx, 0xd0(%rsp)
movaps 0xc0(%rsp), %xmm1
movaps %xmm0, 0xc0(%rsp)
leaq 0xa0(%rsp), %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%rbx)
movq $0x0, 0x10(%rbx)
callq 0x6316
movq %rbx, %rdi
callq 0x6316
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x58ec
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5902
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x48a3(%rip), %rsi      # 0xa1b2
leaq 0x48a1(%rip), %rdx      # 0xa1b7
callq 0x7134
leaq 0x30(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x4884(%rip), %rsi      # 0xa1ae
leaq 0x4886(%rip), %rdx      # 0xa1b7
callq 0x7134
leaq 0xe0(%rsp), %rdi
movq %rsp, %rsi
movss 0x46d7(%rip), %xmm0     # 0xa020
leaq 0x30(%rsp), %rcx
movl $0x20, %edx
callq 0x7f8a
movss %xmm0, 0x9c(%rsp)
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x5978
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x598e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x4839(%rip), %rsi      # 0xa1d4
leaq 0x4838(%rip), %rdx      # 0xa1da
callq 0x7134
leaq 0x30(%rsp), %rbx
movq %r13, (%rbx)
leaq 0x4802(%rip), %rsi      # 0xa1b8
leaq 0x481d(%rip), %rdx      # 0xa1da
movq %rbx, %rdi
callq 0x7134
leaq 0xa0(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
movq %rsp, %rdx
leaq 0x170(%rsp), %r8
movl $0x20, %ecx
movl $0x1, %r9d
pushq $0x2c
pushq %rbx
callq 0x87ce
addq $0x10, %rsp
movq 0xa0(%rsp), %r14
movq 0xa8(%rsp), %rbx
movq 0xb0(%rsp), %rax
movq %rax, 0x28(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0xa0(%rsp)
movq $0x0, 0xb0(%rsp)
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a42
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5a58
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x4776(%rip), %rsi      # 0xa1db
leaq 0x4782(%rip), %rdx      # 0xa1ee
movq %r14, 0x20(%rsp)
callq 0x7134
leaq 0x118(%rsp), %rdi
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x3080
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5aa2
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
leaq 0xe0(%rsp), %rsi
callq 0x4dfc
leaq 0x50(%rsp), %rdi
movq %rsp, %r13
movq %r13, %rsi
callq 0x3280
movq (%r13), %rdi
cmpq %r12, %rdi
je 0x5ad8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
leaq 0x30(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x65c2
movq 0x80(%rsp), %rax
leaq 0x30(%rsp), %r13
movaps (%r13), %xmm0
movq 0x10(%r13), %rcx
movq %rcx, 0x80(%rsp)
movaps 0x70(%rsp), %xmm1
movaps %xmm0, 0x70(%rsp)
movq %rsp, %rdi
movaps %xmm1, (%rdi)
movq %rax, 0x10(%rdi)
xorps %xmm0, %xmm0
movaps %xmm0, (%r13)
movq $0x0, 0x10(%r13)
callq 0x6316
movq %r13, %rdi
callq 0x6316
leaq 0xe0(%rsp), %rdi
callq 0x52c0
leaq 0x138(%rsp), %r13
movq %r13, %rdi
callq 0x649a
movq -0x20(%r13), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x5b77
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x3220
leaq 0x108(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5b98
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x3220
movl %r15d, 0x98(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x6316
cmpl $0x1, %ebp
je 0x5bbc
cmpl $0x0, 0x94(%rsp)
je 0x5bd2
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x83fb(%rip), %rdi      # 0xdfc8
callq 0x3260
movq 0x83ef(%rip), %rdi      # 0xdfc8
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq 0x83d4(%rip), %rdi      # 0xdfc8
callq 0x3030
movq %rax, %rdi
callq 0x3150
movq 0x83c0(%rip), %rdi      # 0xdfc8
leaq 0x45e0(%rip), %rsi      # 0xa1ef
movl $0x5, %edx
callq 0x3260
movq 0x150(%rsp), %rsi
movq 0x158(%rsp), %rdx
movq 0x8398(%rip), %rdi      # 0xdfc8
callq 0x3260
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r12, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3150
movq 0x8362(%rip), %r12      # 0xdfc8
leaq 0x4588(%rip), %rsi      # 0xa1f5
movl $0xc, %edx
movq %r12, %rdi
callq 0x3260
movq 0xc0(%rsp), %r14
movq 0xc8(%rsp), %r15
cmpq %r15, %r14
je 0x5cc5
movq 0x8332(%rip), %r13      # 0xdfc8
leaq 0x43dc(%rip), %rbp      # 0xa079
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %r13, %rdi
callq 0x3260
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x3260
addq $0x20, %r14
cmpq %r15, %r14
jne 0x5c9d
movq (%r12), %rax
addq -0x18(%rax), %r12
movq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq 0x82e4(%rip), %rdi      # 0xdfc8
callq 0x3030
movq %rax, %rdi
callq 0x3150
movq 0x82d0(%rip), %rdi      # 0xdfc8
leaq 0x4503(%rip), %rsi      # 0xa202
movl $0x7, %edx
callq 0x3260
movq 0x82b8(%rip), %rdi      # 0xdfc8
movl 0x98(%rsp), %esi
callq 0x3390
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3150
movq 0x827b(%rip), %rdi      # 0xdfc8
leaq 0x44b6(%rip), %rsi      # 0xa20a
movl $0x6, %edx
callq 0x3260
cvtss2sd 0x9c(%rsp), %xmm0
movq 0x825a(%rip), %rdi      # 0xdfc8
callq 0x3320
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3150
movq 0x8224(%rip), %r15      # 0xdfc8
leaq 0x4466(%rip), %rsi      # 0xa211
movl $0x8, %edx
movq %r15, %rdi
callq 0x3260
cmpq %rbx, 0x20(%rsp)
je 0x5df6
movq 0x8202(%rip), %r12      # 0xdfc8
leaq 0x42ac(%rip), %r13      # 0xa079
movq 0x20(%rsp), %r14
movl (%r14), %esi
movq %r12, %rdi
callq 0x3390
movl $0x1, %edx
movq %rax, %rdi
movq %r13, %rsi
callq 0x3260
addq $0x4, %r14
cmpq %rbx, %r14
jne 0x5dd2
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq 0x81b4(%rip), %r15      # 0xdfc8
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3150
movq 0x70(%rsp), %rax
cmpq 0x78(%rsp), %rax
je 0x5eef
movq 0x818d(%rip), %rdi      # 0xdfc8
leaq 0x43d8(%rip), %rsi      # 0xa21a
movl $0xb, %edx
callq 0x3260
movq 0x70(%rsp), %rbx
movq 0x78(%rsp), %r14
cmpq %r14, %rbx
je 0x5f07
leaq 0xe0(%rsp), %r12
movq 0x815a(%rip), %r13      # 0xdfc8
leaq 0x4235(%rip), %rbp      # 0xa0aa
leaq 0xf0(%rsp), %rax
movq %rax, 0xe0(%rsp)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x7060
movq 0xe0(%rsp), %rsi
movq 0xe8(%rsp), %rdx
movq %r13, %rdi
callq 0x3260
movl $0x1, %edx
movq %rax, %rdi
movq %rbp, %rsi
callq 0x3260
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x5ee4
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x3220
addq $0x20, %rbx
cmpq %r14, %rbx
jne 0x5e75
jmp 0x5f07
movq 0x80d2(%rip), %rdi      # 0xdfc8
leaq 0x4329(%rip), %rsi      # 0xa226
movl $0x10, %edx
callq 0x3260
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq 0x80a3(%rip), %rdi      # 0xdfc8
callq 0x3030
xorl %ebp, %ebp
movq %rax, %rdi
callq 0x3150
leaq 0x70(%rsp), %rdi
callq 0x6316
leaq 0x188(%rsp), %rdi
callq 0x6316
leaq 0xc0(%rsp), %rdi
callq 0x6316
movq 0x170(%rsp), %rdi
testq %rdi, %rdi
leaq 0x160(%rsp), %rbx
movq 0x20(%rsp), %r14
je 0x5f82
movq 0x180(%rsp), %rsi
subq %rdi, %rsi
callq 0x3220
testq %r14, %r14
je 0x5f97
movq 0x28(%rsp), %rsi
subq %r14, %rsi
movq %r14, %rdi
callq 0x3220
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x5fb3
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3220
movq 0x150(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5fd0
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x3220
movl %ebp, %eax
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x600f
jmp 0x600f
jmp 0x600f
movq %rdx, %rbx
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x60d8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x60d8
movq %rdx, %rbx
movq %rax, %r15
jmp 0x60d8
jmp 0x6083
jmp 0x60a2
jmp 0x60c0
jmp 0x6083
jmp 0x60a2
jmp 0x60c0
jmp 0x6083
jmp 0x60a2
jmp 0x60c0
jmp 0x60a2
jmp 0x60c0
jmp 0x6083
jmp 0x60a2
jmp 0x60c0
movq %rdx, %rbx
movq %rax, %r15
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
je 0x6070
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6070
movq %rdx, %rbx
movq %rax, %r15
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x60c6
movq 0x40(%rsp), %rsi
jmp 0x60b6
jmp 0x60c0
movq %rdx, %rbx
movq %rax, %r15
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x60a8
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x60a8
movq %rdx, %rbx
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x60c6
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x60c6
movq %rdx, %rbx
movq %rax, %r15
movq $0x0, 0x28(%rsp)
movq $0x0, 0x20(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x700e
cmpl $0x1, %ebx
jne 0x6234
movq %r15, %rdi
callq 0x30c0
movq %rax, %r15
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x7ede(%rip), %rdi      # 0xdfe8
callq 0x3260
movq %rax, %r12
movq (%r15), %rax
movq %r15, %rdi
callq *0x10(%rax)
movq %r12, %rdi
movq %rax, %rsi
callq 0x3200
movq %rax, %rdi
callq 0x30e0
movl $0x1, %ebp
callq 0x3350
jmp 0x5f34
jmp 0x6231
movq %rax, %r15
callq 0x3350
jmp 0x6234
movq %rax, %rdi
callq 0x7054
movq %rdx, %rbx
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x617b
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x617b
movq %rdx, %rbx
movq %rax, %r15
movq $0x0, 0x28(%rsp)
movq $0x0, 0x20(%rsp)
jmp 0x60e5
movq %rax, %r15
leaq 0x140(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x3410
jmp 0x61e1
jmp 0x61ae
movq %rax, %r15
addq $-0x10, %r12
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0x61cb
movq (%r12), %rsi
incq %rsi
callq 0x3220
leaq -0x20(%r12), %rax
addq $-0x10, %r12
cmpq %r14, %r12
movq %rax, %r12
jne 0x61b5
jmp 0x61e1
movq %rax, %r15
movq $0x0, 0x28(%rsp)
xorl %r14d, %r14d
leaq 0x60(%rsp), %rbx
jmp 0x625d
movq %rax, %r15
leaq 0x60(%rsp), %rbx
jmp 0x629c
jmp 0x6231
movq %rax, %r15
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x6234
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6234
jmp 0x6231
jmp 0x6231
movq %rax, %r15
leaq 0x60(%rsp), %rbx
leaq 0x70(%rsp), %rdi
callq 0x6316
leaq 0x188(%rsp), %rdi
callq 0x6316
leaq 0x160(%rsp), %r13
movq 0x20(%rsp), %r14
leaq 0xc0(%rsp), %rdi
callq 0x6316
movq 0x170(%rsp), %rdi
testq %rdi, %rdi
je 0x6287
movq 0x180(%rsp), %rsi
subq %rdi, %rsi
callq 0x3220
testq %r14, %r14
je 0x629c
movq 0x28(%rsp), %rsi
subq %r14, %rsi
movq %r14, %rdi
callq 0x3220
movq 0x50(%rsp), %rdi
cmpq %rbx, %rdi
je 0x62b3
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3220
movq 0x150(%rsp), %rdi
cmpq %r13, %rdi
je 0x62d0
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x3220
movq %r15, %rdi
callq 0x33a0