// File: sjain12[P]CliqueCounting/tests/test_cliques_brute_force.cpp
// Function: main
int main(int argc, char *argv[])
{
    if(argc < 9) {
        usage();
        exit(1);
    }

    std::vector<std::string> graphs; // input files

    int min_clique_size = 0, max_clique_size = 0, runs = 0, i = 0;
    float start_threshold = 0.0, end_threshold = 0.0, threshold_interval = 0.0;
	int num_samples=0, full=0;
    char c;
    printf("*****************************\n");
    while ((c = getopt(argc, argv, "i:m:M:r:")) != -1) {
        switch (c) {
            case 'i': {
                // multiple input files
                char *token = std::strtok(optarg, ",");
                printf("Input Files: ");
                while (token != NULL) {
                    graphs.push_back(std::string(token));
                    printf("%s,",token);
                    token = std::strtok(NULL, ",");
                }
                printf("\n");
            }
            break;

            case 'm':
                min_clique_size = atoi(optarg);
                cout << "Min Clique Size: " << min_clique_size << endl;
            break;

            case 'M':
                max_clique_size = atoi(optarg);
                cout << "Max Clique Size: " << max_clique_size << endl;
            break;

            case 'r':
                runs = atoi(optarg);
                cout << "Runs: " << runs << endl;
            break;

        }
    }
    printf("*****************************\n\n");

    populate_nCr();
    
    for (std::vector<std::string>::iterator it=graphs.begin(); it!=graphs.end(); ++it)
    {
        std::string fname = "../graphs/" + *it;
        std::cout << fname << std::endl;

        Graph g;
        printf("Loading graph\n");
        if (loadGraph(fname.c_str(), g, 1, IOFormat::escape))
            exit(1);

        printf("Converting to CSR\n");
        CGraph cg = makeCSR(g);

        printf("Creating DAG\n");
        CDAG dag = degreeOrdered(&cg);

        cout << "vertices: " << g.nVertices << " edges = " << g.nEdges << std::endl;

        string f = *it;
        char *token = std::strtok(strdup(f.c_str()), ".");
        string gname(token);
        cout << "GNAME = " << gname << endl;
        for(i=min_clique_size; i<=max_clique_size; i++)
        {
			string outfile(gname + "_" + to_string(i) + "_" + to_string(runs) + "_bf");
			std::string ofname = "../results/cliques/" + outfile;
    		std::cout << ofname << std::endl;
    		std::ofstream of;
    		of.open(ofname);
    		if (!of.is_open())
    		{
        		std::cout << "Could not open output file." << std::endl;
        		exit(1);
  			}
    		printf("Output File: %s\n", ofname.c_str());
			of << "csize,estimate,time" << endl;
       	
			for (int run=0; run < runs; run++)
			{	
            	cliques_brute_force(cg, dag, of, gname, "", i);
            	of << std::endl;
			}
			of.close();
        }
        delGraph(g);
        delCGraph(cg);
        delCDAG(dag);
    }
   


}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x680, %rsp            # imm = 0x680
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpl $0x9, -0x8(%rbp)
jge 0x4d5e
callq 0x4d10
movl $0x1, %edi
callq 0x33b0
leaq -0x28(%rbp), %rdi
callq 0x5b70
movl $0x0, -0x2c(%rbp)
movl $0x0, -0x30(%rbp)
movl $0x0, -0x34(%rbp)
movl $0x0, -0x38(%rbp)
movl $0x0, -0x3c(%rbp)
movl $0x0, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movl $0x0, -0x48(%rbp)
movl $0x0, -0x4c(%rbp)
leaq 0xf417(%rip), %rdi      # 0x141c4
xorl %eax, %eax
callq 0x3050
jmp 0x4db6
jmp 0x4db8
movl -0x8(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0xf41d(%rip), %rdx      # 0x141e3
callq 0x30c0
movb %al, -0x4d(%rbp)
movsbl %al, %eax
cmpl $-0x1, %eax
je 0x504e
movsbl -0x4d(%rbp), %eax
addl $-0x4d, %eax
movl %eax, %ecx
movq %rcx, -0x588(%rbp)
subl $0x25, %eax
ja 0x5049
movq -0x588(%rbp), %rax
leaq 0xf20f(%rip), %rcx      # 0x14010
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5936
movq 0x1819e(%rip), %rax     # 0x1cfc0
movq (%rax), %rdi
leaq 0xf3d0(%rip), %rsi      # 0x141fc
callq 0x3470
movq %rax, -0x68(%rbp)
leaq 0xf3b0(%rip), %rdi      # 0x141ec
xorl %eax, %eax
callq 0x3050
jmp 0x4e45
jmp 0x4e47
cmpq $0x0, -0x68(%rbp)
je 0x4f1a
movq -0x68(%rbp), %rax
movq %rax, -0x598(%rbp)
leaq -0x89(%rbp), %rdi
movq %rdi, -0x590(%rbp)
callq 0x3550
movq -0x598(%rbp), %rsi
movq -0x590(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x59c0
jmp 0x4e8c
leaq -0x28(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x5b90
jmp 0x4e9e
leaq -0x88(%rbp), %rdi
callq 0x31c0
leaq -0x89(%rbp), %rdi
callq 0x3350
movq -0x68(%rbp), %rsi
leaq 0xf339(%rip), %rdi      # 0x141fa
xorl %eax, %eax
callq 0x3050
jmp 0x4eca
xorl %eax, %eax
movl %eax, %edi
leaq 0xf327(%rip), %rsi      # 0x141fc
callq 0x3470
movq %rax, -0x68(%rbp)
jmp 0x4e47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4f09
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x31c0
leaq -0x89(%rbp), %rdi
callq 0x3350
jmp 0x5936
leaq 0xf326(%rip), %rdi      # 0x14247
xorl %eax, %eax
callq 0x3050
jmp 0x4f2a
jmp 0x5049
movq 0x1808a(%rip), %rax     # 0x1cfc0
movq (%rax), %rdi
callq 0x3460
movl %eax, -0x2c(%rbp)
movq 0x18088(%rip), %rdi     # 0x1cfd0
leaq 0xf2af(%rip), %rsi      # 0x141fe
callq 0x32e0
movq %rax, -0x5a0(%rbp)
jmp 0x4f5d
movq -0x5a0(%rbp), %rdi
movl -0x2c(%rbp), %esi
callq 0x3530
movq %rax, -0x5a8(%rbp)
jmp 0x4f75
movq -0x5a8(%rbp), %rdi
movq 0x18035(%rip), %rsi     # 0x1cfb8
callq 0x3330
jmp 0x4f8a
jmp 0x5049
movq 0x1802a(%rip), %rax     # 0x1cfc0
movq (%rax), %rdi
callq 0x3460
movl %eax, -0x30(%rbp)
movq 0x18028(%rip), %rdi     # 0x1cfd0
leaq 0xf261(%rip), %rsi      # 0x14210
callq 0x32e0
movq %rax, -0x5b0(%rbp)
jmp 0x4fbd
movq -0x5b0(%rbp), %rdi
movl -0x30(%rbp), %esi
callq 0x3530
movq %rax, -0x5b8(%rbp)
jmp 0x4fd5
movq -0x5b8(%rbp), %rdi
movq 0x17fd5(%rip), %rsi     # 0x1cfb8
callq 0x3330
jmp 0x4fea
jmp 0x5049
movq 0x17fcd(%rip), %rax     # 0x1cfc0
movq (%rax), %rdi
callq 0x3460
movl %eax, -0x34(%rbp)
movq 0x17fcb(%rip), %rdi     # 0x1cfd0
leaq 0xf216(%rip), %rsi      # 0x14222
callq 0x32e0
movq %rax, -0x5c0(%rbp)
jmp 0x501a
movq -0x5c0(%rbp), %rdi
movl -0x34(%rbp), %esi
callq 0x3530
movq %rax, -0x5c8(%rbp)
jmp 0x5032
movq -0x5c8(%rbp), %rdi
movq 0x17f78(%rip), %rsi     # 0x1cfb8
callq 0x3330
jmp 0x5047
jmp 0x5049
jmp 0x4db8
leaq 0xf1d4(%rip), %rdi      # 0x14229
xorl %eax, %eax
callq 0x3050
jmp 0x505e
callq 0x3b80
jmp 0x5065
leaq -0x28(%rbp), %rdi
callq 0x5bc0
movq %rax, -0x98(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5c30
movq %rax, -0xa0(%rbp)
leaq -0x98(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
callq 0x5bf0
testb $0x1, %al
jne 0x50a1
jmp 0x5921
leaq -0x98(%rbp), %rdi
callq 0x5d70
movq %rax, %rdx
leaq 0xf192(%rip), %rsi      # 0x14249
leaq -0xc0(%rbp), %rdi
callq 0x5c60
jmp 0x50c5
movq 0x17f04(%rip), %rdi     # 0x1cfd0
leaq -0xc0(%rbp), %rsi
callq 0x32a0
movq %rax, -0x5d0(%rbp)
jmp 0x50e1
movq -0x5d0(%rbp), %rdi
movq 0x17ec9(%rip), %rsi     # 0x1cfb8
callq 0x3330
jmp 0x50f6
leaq 0xf157(%rip), %rdi      # 0x14254
xorl %eax, %eax
callq 0x3050
jmp 0x5106
leaq -0xc0(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
leaq -0xe0(%rbp), %rsi
movl $0x1, %ecx
movl %ecx, %edx
callq 0x12760
movl %eax, -0x5d4(%rbp)
jmp 0x5130
movl -0x5d4(%rbp), %eax
cmpl $0x0, %eax
je 0x5156
movl $0x1, %edi
callq 0x33b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5913
leaq 0xf106(%rip), %rdi      # 0x14263
xorl %eax, %eax
callq 0x3050
jmp 0x5166
movups -0xe0(%rbp), %xmm0
movups -0xd0(%rbp), %xmm1
movaps %xmm1, -0x110(%rbp)
movaps %xmm0, -0x120(%rbp)
movaps -0x120(%rbp), %xmm0
movaps -0x110(%rbp), %xmm1
movq %rsp, %rax
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
leaq -0x100(%rbp), %rdi
xorl %esi, %esi
callq 0x8e20
jmp 0x51aa
leaq 0xf0c5(%rip), %rdi      # 0x14276
xorl %eax, %eax
callq 0x3050
jmp 0x51ba
leaq -0x160(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x37e0
jmp 0x51cf
movq 0x17dfa(%rip), %rdi     # 0x1cfd0
leaq 0xf0a7(%rip), %rsi      # 0x14284
callq 0x32e0
movq %rax, -0x5e0(%rbp)
jmp 0x51eb
movq -0x5e0(%rbp), %rdi
movq -0xe0(%rbp), %rsi
callq 0x3570
movq %rax, -0x5e8(%rbp)
jmp 0x5207
movq -0x5e8(%rbp), %rdi
leaq 0xf07a(%rip), %rsi      # 0x1428f
callq 0x32e0
movq %rax, -0x5f0(%rbp)
jmp 0x5223
movq -0x5f0(%rbp), %rdi
movq -0xd8(%rbp), %rsi
callq 0x3570
movq %rax, -0x5f8(%rbp)
jmp 0x523f
movq -0x5f8(%rbp), %rdi
movq 0x17d6b(%rip), %rsi     # 0x1cfb8
callq 0x3330
jmp 0x5254
leaq -0x98(%rbp), %rdi
callq 0x5d70
movq %rax, %rsi
leaq -0x180(%rbp), %rdi
callq 0x3140
jmp 0x5271
leaq -0x180(%rbp), %rdi
callq 0x3130
movq %rax, %rdi
callq 0x3580
movq %rax, %rdi
leaq 0xee6c(%rip), %rsi      # 0x140fb
callq 0x3470
movq %rax, -0x188(%rbp)
movq -0x188(%rbp), %rax
movq %rax, -0x608(%rbp)
leaq -0x1a9(%rbp), %rdi
movq %rdi, -0x600(%rbp)
callq 0x3550
movq -0x608(%rbp), %rsi
movq -0x600(%rbp), %rdx
leaq -0x1a8(%rbp), %rdi
callq 0x59c0
jmp 0x52d8
leaq -0x1a9(%rbp), %rdi
callq 0x3350
movq 0x17ce5(%rip), %rdi     # 0x1cfd0
leaq 0xefa7(%rip), %rsi      # 0x14299
callq 0x32e0
movq %rax, -0x610(%rbp)
jmp 0x5300
movq -0x610(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x32a0
movq %rax, -0x618(%rbp)
jmp 0x531c
movq -0x618(%rbp), %rdi
movq 0x17c8e(%rip), %rsi     # 0x1cfb8
callq 0x3330
jmp 0x5331
movl -0x2c(%rbp), %eax
movl %eax, -0x38(%rbp)
movl -0x38(%rbp), %eax
cmpl -0x30(%rbp), %eax
jg 0x57e3
leaq 0xef58(%rip), %rdx      # 0x142a2
leaq -0x250(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x5eb0
jmp 0x535f
movl -0x38(%rbp), %esi
leaq -0x270(%rbp), %rdi
callq 0x5f30
jmp 0x5370
leaq -0x230(%rbp), %rdi
leaq -0x250(%rbp), %rsi
leaq -0x270(%rbp), %rdx
callq 0x5de0
jmp 0x538c
leaq 0xef0f(%rip), %rdx      # 0x142a2
leaq -0x210(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x5d90
jmp 0x53a8
movl -0x34(%rbp), %esi
leaq -0x290(%rbp), %rdi
callq 0x5f30
jmp 0x53b9
leaq -0x1f0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
leaq -0x290(%rbp), %rdx
callq 0x5de0
jmp 0x53d5
leaq 0xeec8(%rip), %rdx      # 0x142a4
leaq -0x1d0(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x5d90
jmp 0x53f1
leaq -0x1f0(%rbp), %rdi
callq 0x31c0
leaq -0x290(%rbp), %rdi
callq 0x31c0
leaq -0x210(%rbp), %rdi
callq 0x31c0
leaq -0x230(%rbp), %rdi
callq 0x31c0
leaq -0x270(%rbp), %rdi
callq 0x31c0
leaq -0x250(%rbp), %rdi
callq 0x31c0
leaq 0xee68(%rip), %rsi      # 0x142a8
leaq -0x2b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rdx
callq 0x5c60
jmp 0x5455
movq 0x17b74(%rip), %rdi     # 0x1cfd0
leaq -0x2b0(%rbp), %rsi
callq 0x32a0
movq %rax, -0x620(%rbp)
jmp 0x5471
movq -0x620(%rbp), %rdi
movq 0x17b39(%rip), %rsi     # 0x1cfb8
callq 0x3330
jmp 0x5486
leaq -0x4b0(%rbp), %rdi
callq 0x3510
jmp 0x5494
leaq -0x4b0(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
movl $0x10, %edx
callq 0x3160
jmp 0x54ae
leaq -0x4b0(%rbp), %rdi
callq 0x3230
movb %al, -0x621(%rbp)
jmp 0x54c2
movb -0x621(%rbp), %al
testb $0x1, %al
jne 0x5610
jmp 0x54d2
movq 0x17af7(%rip), %rdi     # 0x1cfd0
leaq 0xec01(%rip), %rsi      # 0x140e1
callq 0x32e0
movq %rax, -0x630(%rbp)
jmp 0x54ee
movq -0x630(%rbp), %rdi
movq 0x17abc(%rip), %rsi     # 0x1cfb8
callq 0x3330
jmp 0x5503
movl $0x1, %edi
callq 0x33b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1a9(%rbp), %rdi
callq 0x3350
jmp 0x5907
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x58fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x55cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x55c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x55b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x55a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x559c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x31c0
leaq -0x290(%rbp), %rdi
callq 0x31c0
leaq -0x210(%rbp), %rdi
callq 0x31c0
leaq -0x230(%rbp), %rdi
callq 0x31c0
leaq -0x270(%rbp), %rdi
callq 0x31c0
leaq -0x250(%rbp), %rdi
callq 0x31c0
jmp 0x58fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x57d2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x57c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x57ba
leaq -0x2b0(%rbp), %rdi
callq 0x3130
movq %rax, %rsi
leaq 0xec96(%rip), %rdi      # 0x142bc
xorl %eax, %eax
callq 0x3050
jmp 0x562f
leaq 0xec97(%rip), %rsi      # 0x142cd
leaq -0x4b0(%rbp), %rdi
callq 0x32e0
movq %rax, -0x638(%rbp)
jmp 0x564b
movq -0x638(%rbp), %rdi
movq 0x1795f(%rip), %rsi     # 0x1cfb8
callq 0x3330
jmp 0x5660
movl $0x0, -0x4b4(%rbp)
movl -0x4b4(%rbp), %eax
cmpl -0x34(%rbp), %eax
jge 0x577a
leaq -0x4d8(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x3140
jmp 0x568e
leaq -0x4f9(%rbp), %rdi
movq %rdi, -0x640(%rbp)
callq 0x3550
movq -0x640(%rbp), %rdx
leaq 0xeb99(%rip), %rsi      # 0x14248
leaq -0x4f8(%rbp), %rdi
callq 0x59c0
jmp 0x56bd
movslq -0x38(%rbp), %r9
leaq -0x100(%rbp), %rdi
leaq -0x160(%rbp), %rsi
leaq -0x4b0(%rbp), %rdx
leaq -0x4d8(%rbp), %rcx
leaq -0x4f8(%rbp), %r8
callq 0x4580
jmp 0x56eb
leaq -0x4f8(%rbp), %rdi
callq 0x31c0
leaq -0x4f9(%rbp), %rdi
callq 0x3350
leaq -0x4d8(%rbp), %rdi
callq 0x31c0
movq 0x178a2(%rip), %rsi     # 0x1cfb8
leaq -0x4b0(%rbp), %rdi
callq 0x3330
jmp 0x5724
jmp 0x5726
movl -0x4b4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4b4(%rbp)
jmp 0x566a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x5760
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x4f8(%rbp), %rdi
callq 0x31c0
leaq -0x4f9(%rbp), %rdi
callq 0x3350
leaq -0x4d8(%rbp), %rdi
callq 0x31c0
jmp 0x57ba
leaq -0x4b0(%rbp), %rdi
callq 0x3410
jmp 0x5788
leaq -0x4b0(%rbp), %rdi
callq 0x3440
leaq -0x2b0(%rbp), %rdi
callq 0x31c0
leaq -0x1d0(%rbp), %rdi
callq 0x31c0
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x5337
leaq -0x4b0(%rbp), %rdi
callq 0x3440
leaq -0x2b0(%rbp), %rdi
callq 0x31c0
leaq -0x1d0(%rbp), %rdi
callq 0x31c0
jmp 0x58fb
movups -0xe0(%rbp), %xmm0
movups -0xd0(%rbp), %xmm1
movaps %xmm1, -0x510(%rbp)
movaps %xmm0, -0x520(%rbp)
movaps -0x520(%rbp), %xmm0
movaps -0x510(%rbp), %xmm1
movq %rsp, %rax
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x84c0
jmp 0x581e
movups -0x100(%rbp), %xmm0
movups -0xf0(%rbp), %xmm1
movaps %xmm1, -0x530(%rbp)
movaps %xmm0, -0x540(%rbp)
movaps -0x540(%rbp), %xmm0
movaps -0x530(%rbp), %xmm1
movq %rsp, %rax
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x8720
jmp 0x5859
movups -0x160(%rbp), %xmm0
movups -0x150(%rbp), %xmm1
movups -0x140(%rbp), %xmm2
movups -0x130(%rbp), %xmm3
movaps %xmm3, -0x550(%rbp)
movaps %xmm2, -0x560(%rbp)
movaps %xmm1, -0x570(%rbp)
movaps %xmm0, -0x580(%rbp)
movaps -0x580(%rbp), %xmm0
movaps -0x570(%rbp), %xmm1
movaps -0x560(%rbp), %xmm2
movaps -0x550(%rbp), %xmm3
movq %rsp, %rax
movups %xmm3, 0x30(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm1, 0x10(%rax)
movups %xmm0, (%rax)
callq 0x3730
jmp 0x58c6
leaq -0x1a8(%rbp), %rdi
callq 0x31c0
leaq -0x180(%rbp), %rdi
callq 0x31c0
leaq -0xc0(%rbp), %rdi
callq 0x31c0
leaq -0x98(%rbp), %rdi
callq 0x6050
jmp 0x5075
leaq -0x1a8(%rbp), %rdi
callq 0x31c0
leaq -0x180(%rbp), %rdi
callq 0x31c0
leaq -0xc0(%rbp), %rdi
callq 0x31c0
jmp 0x5936
leaq -0x28(%rbp), %rdi
callq 0x6070
movl -0x4(%rbp), %eax
addq $0x680, %rsp            # imm = 0x680
popq %rbp
retq
leaq -0x28(%rbp), %rdi
callq 0x6070
movq -0x58(%rbp), %rdi
callq 0x3540
nopl (%rax,%rax)