// File: /workspace/github_cpp_makefile_star2_O1/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 0x6770
xorps %xmm0, %xmm0
movaps %xmm0, 0xc0(%rsp)
movq $0x0, 0xd0(%rsp)
leaq 0xf0(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x4c5a(%rip), %rsi      # 0xa136
leaq 0x4c56(%rip), %rdx      # 0xa139
leaq 0xe0(%rsp), %r12
movq %r12, %rdi
callq 0x70f4
leaq 0x100(%rsp), %r14
leaq 0x110(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x4be2(%rip), %rsi      # 0xa0f0
leaq 0x4bde(%rip), %rdx      # 0xa0f3
movq %r14, %rdi
callq 0x70f4
leaq 0x120(%rsp), %r14
leaq 0x130(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4bbc(%rip), %rsi      # 0xa0f4
leaq 0x4bba(%rip), %rdx      # 0xa0f9
movq %r14, %rdi
callq 0x70f4
leaq 0x188(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
movq %rsp, %rcx
movl $0x3, %edx
callq 0x67b6
movq $-0x60, %r14
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x557f
movq (%r15), %rsi
incq %rsi
callq 0x3220
addq $-0x20, %r15
addq $0x20, %r14
jne 0x556b
xorps %xmm0, %xmm0
movaps %xmm0, 0x70(%rsp)
movq $0x0, 0x80(%rsp)
leaq 0x10(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x4b4c(%rip), %rsi      # 0xa0fa
leaq 0x4b66(%rip), %rdx      # 0xa11b
movq %rsp, %rdi
callq 0x70f4
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 0x55ee
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x4b21(%rip), %rsi      # 0xa11c
leaq 0x4b1e(%rip), %rdx      # 0xa120
callq 0x70f4
leaq 0x40(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x4b0a(%rip), %rsi      # 0xa121
leaq 0x4b10(%rip), %rdx      # 0xa12e
leaq 0x30(%rsp), %rdi
callq 0x70f4
leaq 0xe0(%rsp), %rdi
movq %rsp, %rsi
leaq 0x30(%rsp), %rcx
movl $0x20, %edx
callq 0x3ad6
movl %eax, %ebx
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x565b
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5671
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
leaq 0x30(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x4aaf(%rip), %rsi      # 0xa12f
leaq 0x4aac(%rip), %rdx      # 0xa133
callq 0x70f4
leaq 0xb0(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0x4a9b(%rip), %rsi      # 0xa13a
leaq 0x4aa9(%rip), %rdx      # 0xa14f
leaq 0xa0(%rsp), %rdi
callq 0x70f4
movl %ebx, 0x94(%rsp)
leaq 0x4a73(%rip), %rcx      # 0xa134
movq %rsp, %rdi
leaq 0xe0(%rsp), %rsi
leaq 0x30(%rsp), %rdx
leaq 0xa0(%rsp), %r8
callq 0x4418
leaq 0x150(%rsp), %rdi
movq %rsp, %rbx
movq %rbx, %rsi
callq 0x3280
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x5706
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
je 0x5723
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x3220
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x573a
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x4a09(%rip), %rsi      # 0xa150
leaq 0x4a08(%rip), %rdx      # 0xa156
callq 0x70f4
leaq 0x30(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x49f5(%rip), %rsi      # 0xa157
leaq 0x4a00(%rip), %rdx      # 0xa169
callq 0x70f4
leaq 0xe0(%rsp), %rdi
movq %rsp, %rsi
leaq 0x30(%rsp), %r8
movl $0x6e, %edx
movl $0x5, %ecx
callq 0x67fe
movl %eax, %r15d
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x57a7
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x57bd
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x49a0(%rip), %rsi      # 0xa16a
leaq 0x49af(%rip), %rdx      # 0xa180
callq 0x70f4
leaq 0xe0(%rsp), %rdi
movq %rsp, %rsi
callq 0x4d52
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x57fc
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x4978(%rip), %rsi      # 0xa181
leaq 0x497d(%rip), %rdx      # 0xa18d
callq 0x70f4
leaq 0x30(%rsp), %rbx
movq %r13, (%rbx)
leaq 0x496a(%rip), %rsi      # 0xa18e
leaq 0x4982(%rip), %rdx      # 0xa1ad
movq %rbx, %rdi
callq 0x70f4
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 0x44b2
addq $0x10, %rsp
xorps %xmm0, %xmm0
leaq 0xa0(%rsp), %rdi
movaps %xmm0, (%rdi)
movaps 0xc0(%rsp), %xmm0
movq 0xd0(%rsp), %rax
leaq 0x1a0(%rsp), %rbx
movups (%rbx), %xmm1
movaps %xmm1, 0xc0(%rsp)
movq 0x10(%rbx), %rcx
movq %rcx, 0xd0(%rsp)
movaps (%rdi), %xmm1
movaps %xmm0, (%rdi)
movq %rax, 0x10(%rdi)
movups %xmm1, (%rbx)
movq $0x0, 0x10(%rbx)
callq 0x632c
movq %rbx, %rdi
callq 0x632c
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x58d8
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x58ee
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x48b7(%rip), %rsi      # 0xa1b2
leaq 0x48b5(%rip), %rdx      # 0xa1b7
callq 0x70f4
leaq 0x30(%rsp), %rdi
movq %r13, (%rdi)
leaq 0x4898(%rip), %rsi      # 0xa1ae
leaq 0x489a(%rip), %rdx      # 0xa1b7
callq 0x70f4
leaq 0xe0(%rsp), %rdi
movq %rsp, %rsi
movss 0x46eb(%rip), %xmm0     # 0xa020
leaq 0x30(%rsp), %rcx
movl $0x20, %edx
callq 0x7f80
movss %xmm0, 0x9c(%rsp)
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x5964
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x597a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x484d(%rip), %rsi      # 0xa1d4
leaq 0x484c(%rip), %rdx      # 0xa1da
callq 0x70f4
leaq 0x30(%rsp), %rbx
movq %r13, (%rbx)
leaq 0x4816(%rip), %rsi      # 0xa1b8
leaq 0x4831(%rip), %rdx      # 0xa1da
movq %rbx, %rdi
callq 0x70f4
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 0x8764
addq $0x10, %rsp
movq 0xa0(%rsp), %r14
movq 0xa8(%rsp), %rbx
movq 0xb0(%rsp), %rax
movq %rax, 0x20(%rsp)
xorps %xmm0, %xmm0
movaps %xmm0, 0xa0(%rsp)
movq $0x0, 0xb0(%rsp)
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x5a2e
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5a44
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
movq %r12, (%rdi)
leaq 0x478a(%rip), %rsi      # 0xa1db
leaq 0x4796(%rip), %rdx      # 0xa1ee
movq %r14, 0x28(%rsp)
callq 0x70f4
leaq 0x118(%rsp), %rdi
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
callq 0x3080
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x5a8e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
movq %rsp, %rdi
leaq 0xe0(%rsp), %rsi
callq 0x4dea
leaq 0x50(%rsp), %rdi
movq %rsp, %r13
movq %r13, %rsi
callq 0x3280
movq (%r13), %rdi
cmpq %r12, %rdi
je 0x5ac4
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
leaq 0x30(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x65d6
xorps %xmm0, %xmm0
movq %rsp, %rdi
movaps %xmm0, (%rdi)
movaps 0x70(%rsp), %xmm0
movq 0x80(%rsp), %rax
leaq 0x30(%rsp), %r13
movups (%r13), %xmm1
movaps %xmm1, 0x70(%rsp)
movq 0x10(%r13), %rcx
movq %rcx, 0x80(%rsp)
movaps (%rdi), %xmm1
movaps %xmm0, (%rdi)
movq %rax, 0x10(%rdi)
movups %xmm1, (%r13)
movq $0x0, 0x10(%r13)
callq 0x632c
movq %r13, %rdi
callq 0x632c
leaq 0xe0(%rsp), %rdi
callq 0x52a6
leaq 0x138(%rsp), %r13
movq %r13, %rdi
callq 0x64ae
movq -0x20(%r13), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x5b69
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x3220
leaq 0x108(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x5b8a
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x3220
movl %r15d, 0x98(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x632c
cmpl $0x1, %ebp
je 0x5bae
cmpl $0x0, 0x94(%rsp)
je 0x5bc4
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x8409(%rip), %rdi      # 0xdfc8
callq 0x3260
movq 0x83fd(%rip), %rdi      # 0xdfc8
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq 0x83e2(%rip), %rdi      # 0xdfc8
callq 0x3030
movq %rax, %rdi
callq 0x3150
movq 0x83ce(%rip), %rdi      # 0xdfc8
leaq 0x45ee(%rip), %rsi      # 0xa1ef
movl $0x5, %edx
callq 0x3260
movq 0x150(%rsp), %rsi
movq 0x158(%rsp), %rdx
movq 0x83a6(%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 0x8370(%rip), %r12      # 0xdfc8
leaq 0x4596(%rip), %rsi      # 0xa1f5
movl $0xc, %edx
movq %r12, %rdi
callq 0x3260
movq 0xc0(%rsp), %r14
movq 0xc8(%rsp), %r15
cmpq %r15, %r14
je 0x5cb7
movq 0x8340(%rip), %r13      # 0xdfc8
leaq 0x43ea(%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 0x5c8f
movq (%r12), %rax
addq -0x18(%rax), %r12
movq %r12, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq 0x82f2(%rip), %rdi      # 0xdfc8
callq 0x3030
movq %rax, %rdi
callq 0x3150
movq 0x82de(%rip), %rdi      # 0xdfc8
leaq 0x4511(%rip), %rsi      # 0xa202
movl $0x7, %edx
callq 0x3260
movq 0x82c6(%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 0x8289(%rip), %rdi      # 0xdfc8
leaq 0x44c4(%rip), %rsi      # 0xa20a
movl $0x6, %edx
callq 0x3260
cvtss2sd 0x9c(%rsp), %xmm0
movq 0x8268(%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 0x8232(%rip), %r15      # 0xdfc8
leaq 0x4474(%rip), %rsi      # 0xa211
movl $0x8, %edx
movq %r15, %rdi
callq 0x3260
cmpq %rbx, 0x28(%rsp)
je 0x5de8
movq 0x8210(%rip), %r12      # 0xdfc8
leaq 0x42ba(%rip), %r13      # 0xa079
movq 0x28(%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 0x5dc4
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x31f0
movsbl %al, %esi
movq 0x81c2(%rip), %r15      # 0xdfc8
movq %r15, %rdi
callq 0x3030
movq %rax, %rdi
callq 0x3150
movq 0x70(%rsp), %rax
cmpq 0x78(%rsp), %rax
je 0x5ee1
movq 0x819b(%rip), %rdi      # 0xdfc8
leaq 0x43e6(%rip), %rsi      # 0xa21a
movl $0xb, %edx
callq 0x3260
movq 0x70(%rsp), %rbx
movq 0x78(%rsp), %r14
cmpq %r14, %rbx
je 0x5ef9
leaq 0xe0(%rsp), %r12
movq 0x8168(%rip), %r13      # 0xdfc8
leaq 0x4243(%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 0x7024
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 0x5ed6
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x3220
addq $0x20, %rbx
cmpq %r14, %rbx
jne 0x5e67
jmp 0x5ef9
movq 0x80e0(%rip), %rdi      # 0xdfc8
leaq 0x4337(%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 0x80b1(%rip), %rdi      # 0xdfc8
callq 0x3030
xorl %ebp, %ebp
movq %rax, %rdi
callq 0x3150
leaq 0x70(%rsp), %rdi
callq 0x632c
leaq 0x188(%rsp), %rdi
callq 0x632c
leaq 0xc0(%rsp), %rdi
callq 0x632c
movq 0x170(%rsp), %rdi
testq %rdi, %rdi
leaq 0x160(%rsp), %rbx
movq 0x28(%rsp), %r14
je 0x5f74
movq 0x180(%rsp), %rsi
subq %rdi, %rsi
callq 0x3220
testq %r14, %r14
je 0x5f89
movq 0x20(%rsp), %rsi
subq %r14, %rsi
movq %r14, %rdi
callq 0x3220
movq 0x50(%rsp), %rdi
leaq 0x60(%rsp), %rax
cmpq %rax, %rdi
je 0x5fa5
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3220
movq 0x150(%rsp), %rdi
cmpq %rbx, %rdi
je 0x5fc2
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 0x6001
jmp 0x6001
jmp 0x6001
movq %rdx, %rbx
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x60ca
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x60ca
movq %rdx, %rbx
movq %rax, %r15
jmp 0x60ca
jmp 0x6075
jmp 0x6094
jmp 0x60b2
jmp 0x6075
jmp 0x6094
jmp 0x60b2
jmp 0x6075
jmp 0x6094
jmp 0x60b2
jmp 0x6094
jmp 0x60b2
jmp 0x6075
jmp 0x6094
jmp 0x60b2
movq %rdx, %rbx
movq %rax, %r15
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
je 0x6062
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x6062
movq %rdx, %rbx
movq %rax, %r15
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x60b8
movq 0x40(%rsp), %rsi
jmp 0x60a8
jmp 0x60b2
movq %rdx, %rbx
movq %rax, %r15
movq 0x30(%rsp), %rdi
cmpq %r13, %rdi
je 0x609a
movq 0x40(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x609a
movq %rdx, %rbx
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x60b8
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x60b8
movq %rdx, %rbx
movq %rax, %r15
movq $0x0, 0x20(%rsp)
movq $0x0, 0x28(%rsp)
leaq 0xe0(%rsp), %rdi
callq 0x6fd2
cmpl $0x1, %ebx
jne 0x624a
movq %r15, %rdi
callq 0x30c0
movq %rax, %r15
movq 0x50(%rsp), %rsi
movq 0x58(%rsp), %rdx
movq 0x7eec(%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 0x5f26
jmp 0x6247
movq %rax, %r15
callq 0x3350
jmp 0x624a
movq %rax, %rdi
callq 0x7018
movq %rdx, %rbx
movq %rax, %r15
movq (%rsp), %rdi
cmpq %r12, %rdi
je 0x616d
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x616d
movq %rdx, %rbx
movq %rax, %r15
movq $0x0, 0x20(%rsp)
movq $0x0, 0x28(%rsp)
jmp 0x60d7
movq %rax, %r15
leaq 0x140(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x3410
movb $0x1, %al
jmp 0x61b1
jmp 0x61a2
movq %rax, %r15
xorl %eax, %eax
jmp 0x61b1
movq %rax, %r15
xorl %eax, %eax
movq %r12, %r14
cmpq %r14, %r12
sete %cl
orb %al, %cl
jne 0x61eb
addq $-0x10, %r14
leaq 0xe0(%rsp), %rbx
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x61db
movq (%r14), %rsi
incq %rsi
callq 0x3220
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %rbx, %r14
movq %rax, %r14
jne 0x61c7
movq $0x0, 0x20(%rsp)
xorl %r14d, %r14d
leaq 0x60(%rsp), %rbx
jmp 0x6273
movq %rax, %r15
movq $0x0, 0x20(%rsp)
xorl %r14d, %r14d
leaq 0x60(%rsp), %rbx
jmp 0x629d
jmp 0x6247
movq %rax, %r15
movq 0xe0(%rsp), %rdi
leaq 0xf0(%rsp), %rax
cmpq %rax, %rdi
je 0x624a
movq 0xf0(%rsp), %rsi
incq %rsi
callq 0x3220
jmp 0x624a
jmp 0x6247
jmp 0x6247
movq %rax, %r15
leaq 0x60(%rsp), %rbx
leaq 0x70(%rsp), %rdi
callq 0x632c
leaq 0x188(%rsp), %rdi
callq 0x632c
leaq 0x160(%rsp), %r13
movq 0x28(%rsp), %r14
leaq 0xc0(%rsp), %rdi
callq 0x632c
movq 0x170(%rsp), %rdi
testq %rdi, %rdi
je 0x629d
movq 0x180(%rsp), %rsi
subq %rdi, %rsi
callq 0x3220
testq %r14, %r14
je 0x62b2
movq 0x20(%rsp), %rsi
subq %r14, %rsi
movq %r14, %rdi
callq 0x3220
movq 0x50(%rsp), %rdi
cmpq %rbx, %rdi
je 0x62c9
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x3220
movq 0x150(%rsp), %rdi
cmpq %r13, %rdi
je 0x62e6
movq 0x160(%rsp), %rsi
incq %rsi
callq 0x3220
movq %r15, %rdi
callq 0x33a0