// File: /workspace/github_cpp_makefile_star2_O3/qema[P]orca-py/liborca.cpp
// Function: motif_counts(char const*, int, char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
int motif_counts(const char* orbit_type, int graphlet_size, 
        const char* input_str, const char* output_filename, string &out_str) {
    common2.clear();
    common3.clear();
    bool use_adj_matrix;
    //fstream fin; // input and output files
    stringstream fin(input_str);
    // open input, output files
    if (strcmp(orbit_type, "node")!=0 && strcmp(orbit_type, "edge")!=0) {
        cerr << "Incorrect orbit type '" << orbit_type << "'. Should be 'node' or 'edge'." << endl;
        return 0;
    }
    if (graphlet_size!=4 && graphlet_size!=5) {
        cerr << "Incorrect graphlet size " << graphlet_size << ". Should be 4 or 5." << endl;
        return 0;
    }
    //fin.open(input_filename, fstream::in);
    if (fin.fail()) {
        //cerr << "Failed to open file " << input_filename << endl;
        cerr << "Failed to open string stream" << endl;
        return 0;
    }
    // read input graph
    fin >> n >> m;
    //cout << n << " " << m;
    int d_max=0;
    edges = (PAIR*)malloc(m*sizeof(PAIR));
    deg = (int*)calloc(n,sizeof(int));
    for (int i=0;i<m;i++) {
        int a,b;
        fin >> a >> b;
        if (!(0<=a && a<n) || !(0<=b && b<n)) {
            cerr << "Node ids should be between 1 and n-1." << endl;
            return 0;
        }
        if (a==b) {
            cerr << "Self loops (edge from x to x) are not allowed." << endl;
            return 0;
        }
        deg[a]++; deg[b]++;
        edges[i]=PAIR(a,b);
    }
    for (int i=0;i<n;i++) d_max=max(d_max,deg[i]);
    //printf("nodes: %d\n",n);
    //printf("edges: %d\n",m);
    //printf("max degree: %d\n",d_max);
    //fin.close();
    if ((int)(set<PAIR>(edges,edges+m).size())!=m) {
        cerr << "Input file contains duplicate undirected edges." << endl;
        return 0;
    }
    // set up adjacency matrix if it's smaller than 100MB
    if ((int64)n*n < 100LL*1024*1024*8) {
        use_adj_matrix = true;
        adjacent = adjacent_matrix;
        adj_matrix = (int*)calloc((n*n)/adj_chunk+1,sizeof(int));
        for (int i=0;i<m;i++) {
            int a=edges[i].a, b=edges[i].b;
            adj_matrix[(a*n+b)/adj_chunk]|=(1<<((a*n+b)%adj_chunk));
            adj_matrix[(b*n+a)/adj_chunk]|=(1<<((b*n+a)%adj_chunk));
        }
    } else {
        use_adj_matrix = false;
        adjacent = adjacent_list;
    }
    // set up adjacency, incidence lists
    adj = (int**)malloc(n*sizeof(int*));
    for (int i=0;i<n;i++) adj[i] = (int*)malloc(deg[i]*sizeof(int));
    inc = (PII**)malloc(n*sizeof(PII*));
    for (int i=0;i<n;i++) inc[i] = (PII*)malloc(deg[i]*sizeof(PII));
    int *d = (int*)calloc(n,sizeof(int));
    for (int i=0;i<m;i++) {
        int a=edges[i].a, b=edges[i].b;
        adj[a][d[a]]=b; adj[b][d[b]]=a;
        inc[a][d[a]]=PII(b,i); inc[b][d[b]]=PII(a,i);
        d[a]++; d[b]++;
    }
    for (int i=0;i<n;i++) {
        sort(adj[i],adj[i]+deg[i]);
        sort(inc[i],inc[i]+deg[i]);
    }
    // initialize orbit counts
    orbit = (int64**)malloc(n*sizeof(int64*));
    for (int i=0;i<n;i++) orbit[i] = (int64*)calloc(73,sizeof(int64));
    // initialize edge orbit counts
    eorbit = (int64**)malloc(m*sizeof(int64*));
    for (int i=0;i<m;i++) eorbit[i] = (int64*)calloc(68,sizeof(int64));

    if (strcmp(orbit_type,"node") == 0) {
        //printf("Counting NODE orbits of graphlets on %d nodes.\n\n",graphlet_size);
        if (graphlet_size==4) count4();
        if (graphlet_size==5) count5();
        if (strcmp(output_filename, "std") == 0) {
            cout << "orbit counts: \n" << writeResultsString(graphlet_size) << endl;
        } else {
            //out_str = writeResults(graphlet_size, output_filename);
            out_str = writeResultsString(graphlet_size);
        }
    } else {
        //printf("Counting EDGE orbits of graphlets on %d nodes.\n\n",graphlet_size);
        if (graphlet_size==4) ecount4();
        if (graphlet_size==5) ecount5();
        if (strcmp(output_filename, "std") == 0) {
            cout << "orbit counts: \n" << writeEdgeResultsString(graphlet_size) << endl;
        } else {
            //out_str = writeEdgeResults(graphlet_size, output_filename);
            out_str = writeEdgeResultsString(graphlet_size);
        }
    }

    free(edges);
    free(deg);
    free(d);
    if (use_adj_matrix) {
        free(adj_matrix);
    } else {
        for (int i=0;i<n;i++) free(adj[i]);
        free(adj);
    }
    for (int i=0;i<n;i++) free(inc[i]);
    free(inc);
    for (int i=0;i<n;i++) free(orbit[i]);
    free(orbit);
    for (int i=0;i<m;i++) free(eorbit[i]);
    free(eorbit);
    return 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1f8, %rsp            # imm = 0x1F8
movq %r8, %r15
movq %rcx, %r12
movq %rdx, %rbx
movl %esi, %r14d
movq %rdi, %rbp
movq %fs:0x28, %rax
movq %rax, 0x1f0(%rsp)
movq 0x609e(%rip), %rdi      # 0x14fb0
callq 0xfcce
movq 0x6062(%rip), %rdi      # 0x14f80
callq 0xfd48
leaq 0x38(%rsp), %rdi
leaq 0x34(%rsp), %rdx
movq %rbx, %rsi
callq 0xfbbe
leaq 0x68(%rsp), %rdi
leaq 0x38(%rsp), %rsi
movl $0x18, %edx
callq 0x52e0
leaq 0x48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xef64
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x51f0
leaq 0x30fa(%rip), %rsi      # 0x12065
movq %rbp, %rdi
callq 0x5290
testl %eax, %eax
je 0xefcd
leaq 0x30ec(%rip), %rsi      # 0x1206a
movq %rbp, %rdi
callq 0x5290
testl %eax, %eax
je 0xefcd
movq 0x605f(%rip), %rbx      # 0x14ff0
leaq 0x30d7(%rip), %rsi      # 0x1206f
movl $0x16, %edx
movq %rbx, %rdi
callq 0x5220
testq %rbp, %rbp
je 0xf04f
movq %rbp, %rdi
callq 0x50c0
movq 0x6033(%rip), %rdi      # 0x14ff0
movq %rbp, %rsi
movq %rax, %rdx
callq 0x5220
jmp 0xf066
leal -0x6(%r14), %eax
cmpl $-0x3, %eax
ja 0xf02a
movq 0x6013(%rip), %rdi      # 0x14ff0
leaq 0x30c1(%rip), %rsi      # 0x120a5
movl $0x18, %edx
callq 0x5220
movq 0x5ffb(%rip), %rdi      # 0x14ff0
movl %r14d, %esi
callq 0x5320
movq %rax, %rbx
leaq 0x30b7(%rip), %rsi      # 0x120be
movl $0x13, %edx
movq %rax, %rdi
callq 0x5220
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x51c0
jmp 0xf095
movq 0x68(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x88(%rsp,%rax)
je 0xf0f3
movl $0x1c, %edx
leaq 0x3085(%rip), %rsi      # 0x120d2
jmp 0xf072
movq (%rbx), %rax
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x5310
movl $0x1e, %edx
leaq 0x3014(%rip), %rsi      # 0x12086
movq 0x5f77(%rip), %rbx      # 0x14ff0
movq %rbx, %rdi
callq 0x5220
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x51c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x5030
movq %rax, %rdi
callq 0x5130
xorl %ebx, %ebx
movq 0x5e8f(%rip), %rsi      # 0x14f40
leaq 0x68(%rsp), %rdi
callq 0x5160
leaq 0xe8(%rsp), %rdi
callq 0x5080
movq %fs:0x28, %rax
cmpq 0x1f0(%rsp), %rax
jne 0xf9b5
movl %ebx, %eax
addq $0x1f8, %rsp            # imm = 0x1F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r15, 0x18(%rsp)
movq 0x5ea1(%rip), %rsi      # 0x14fa0
leaq 0x68(%rsp), %rdi
callq 0x50f0
movq 0x5e40(%rip), %rbx      # 0x14f50
movq %rax, %rdi
movq %rbx, %rsi
callq 0x50f0
movslq (%rbx), %r15
leaq (,%r15,8), %rdi
callq 0x5280
movq 0x5e86(%rip), %rcx      # 0x14fb8
movq %rax, (%rcx)
movq 0x5e64(%rip), %rax      # 0x14fa0
movslq (%rax), %rdi
movl $0x4, %esi
callq 0x5110
movq 0x5e78(%rip), %rcx      # 0x14fc8
movq %rax, (%rcx)
testq %r15, %r15
movq %r14, 0x8(%rsp)
jle 0xf22c
movq %r12, 0x10(%rsp)
xorl %r14d, %r14d
leaq 0x68(%rsp), %r12
leaq 0x38(%rsp), %r13
leaq 0x34(%rsp), %rbx
movq %r12, %rdi
movq %r13, %rsi
callq 0x50f0
movq %rax, %rdi
movq %rbx, %rsi
callq 0x50f0
movslq 0x38(%rsp), %rax
movl $0x25, %edx
testq %rax, %rax
movq 0x5dfe(%rip), %rcx      # 0x14fa0
js 0xf34f
movl (%rcx), %esi
cmpl %esi, %eax
jge 0xf34f
movl 0x34(%rsp), %ecx
testl %ecx, %ecx
js 0xf34f
cmpl %esi, %ecx
jge 0xf34f
cmpl %ecx, %eax
je 0xf3a3
movq 0x5df3(%rip), %rcx      # 0x14fc8
movq (%rcx), %rcx
incl (%rcx,%rax,4)
movslq 0x34(%rsp), %rax
incl (%rcx,%rax,4)
movl 0x38(%rsp), %eax
movl 0x34(%rsp), %ecx
cmpl %eax, %ecx
movl %eax, %edx
cmovll %ecx, %edx
cmovll %eax, %ecx
movq 0x5dbc(%rip), %rax      # 0x14fb8
movq (%rax), %rax
shlq $0x20, %rcx
orq %rcx, %rdx
movq %rdx, (%rax,%r14,8)
incq %r14
movq 0x5d3c(%rip), %rax      # 0x14f50
movslq (%rax), %r15
cmpq %r15, %r14
jl 0xf178
movq 0x5d29(%rip), %rbx      # 0x14f50
movq 0x10(%rsp), %r12
movq 0x5d85(%rip), %rax      # 0x14fb8
movq (%rax), %rsi
movslq %r15d, %rax
leaq (%rsi,%rax,8), %rdx
leaq 0x38(%rsp), %rdi
callq 0xfbfc
movl (%rbx), %ebx
leaq 0x38(%rsp), %rdi
movl 0x28(%rdi), %r14d
callq 0xfd92
cmpl %r14d, %ebx
movq 0x5d3f(%rip), %rax      # 0x14fa0
jne 0xf358
movl (%rax), %r13d
movslq %r13d, %rbx
movq %rbx, %rax
imulq %rbx, %rax
movq %rax, 0x20(%rsp)
cmpq $0x31ffffff, %rax       # imm = 0x31FFFFFF
movq %r12, 0x10(%rsp)
ja 0xf3ee
leaq -0x9c52(%rip), %rax     # 0x563f
movl %r13d, %ecx
imull %ecx, %ecx
leal 0x1f(%rcx), %edx
testl %ecx, %ecx
cmovnsl %ecx, %edx
movq 0x5d02(%rip), %rcx      # 0x14fa8
movq %rax, (%rcx)
sarl $0x5, %edx
incl %edx
movslq %edx, %rdi
movl $0x4, %esi
callq 0x5110
movq 0x5cc6(%rip), %rcx      # 0x14f88
movq %rax, (%rcx)
movq 0x5c84(%rip), %rcx      # 0x14f50
movslq (%rcx), %rdx
testq %rdx, %rdx
jle 0xf3ff
movq 0x5cd9(%rip), %rcx      # 0x14fb8
movq (%rcx), %rsi
xorl %edi, %edi
movl (%rsi,%rdi,8), %r8d
movl 0x4(%rsi,%rdi,8), %r9d
movl %r13d, %r10d
imull %r8d, %r10d
leal (%r10,%r9), %ecx
movl $0x1, %r11d
shll %cl, %r11d
addl %r9d, %r10d
addl $0x1f, %r10d
testl %ecx, %ecx
cmovnsl %ecx, %r10d
sarl $0x5, %r10d
movslq %r10d, %rcx
orl %r11d, (%rax,%rcx,4)
imull %r13d, %r9d
leal (%r9,%r8), %ecx
movl $0x1, %r10d
shll %cl, %r10d
addl %r9d, %r8d
addl $0x1f, %r8d
testl %ecx, %ecx
cmovnsl %ecx, %r8d
sarl $0x5, %r8d
movslq %r8d, %rcx
orl %r10d, (%rax,%rcx,4)
incq %rdi
cmpq %rdi, %rdx
jne 0xf2e4
jmp 0xf3ff
leaq 0x2d99(%rip), %rsi      # 0x120ef
jmp 0xf3af
movq 0x5c91(%rip), %rbx      # 0x14ff0
leaq 0x2dde(%rip), %rsi      # 0x12144
movl $0x2f, %edx
movq %rbx, %rdi
callq 0x5220
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x51c0
movsbl %al, %esi
movq 0x5c5f(%rip), %rdi      # 0x14ff0
callq 0x5030
movq %rax, %rdi
callq 0x5130
jmp 0xf0a8
movl $0x2e, %edx
leaq 0x2d66(%rip), %rsi      # 0x12115
movq 0x5c3a(%rip), %rbx      # 0x14ff0
movq %rbx, %rdi
callq 0x5220
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x51c0
movsbl %al, %esi
movq 0x5c14(%rip), %rdi      # 0x14ff0
callq 0x5030
movq %rax, %rdi
callq 0x5130
jmp 0xf0a8
leaq -0x9e16(%rip), %rax     # 0x55df
movq 0x5bac(%rip), %rcx      # 0x14fa8
movq %rax, (%rcx)
movq %rbx, 0x28(%rsp)
leaq (,%rbx,8), %r12
movq %r12, %rdi
callq 0x5280
movq 0x5b7d(%rip), %rcx      # 0x14f98
movq %rax, (%rcx)
testl %r13d, %r13d
jle 0xf48e
xorl %r14d, %r14d
movq 0x5b6b(%rip), %r15      # 0x14f98
movq 0x5b94(%rip), %rbx      # 0x14fc8
movq (%rbx), %rax
movslq (%rax,%r14,4), %rdi
shlq $0x2, %rdi
callq 0x5280
movq (%r15), %rcx
movq %rax, (%rcx,%r14,8)
incq %r14
cmpq %r14, %r13
jne 0xf434
movq %r12, %rdi
callq 0x5280
movq 0x5b2e(%rip), %r14      # 0x14f90
movq %rax, (%r14)
testl %r13d, %r13d
jle 0xf4a0
xorl %r15d, %r15d
movq (%rbx), %rax
movslq (%rax,%r15,4), %rdi
shlq $0x3, %rdi
callq 0x5280
movq (%r14), %rcx
movq %rax, (%rcx,%r15,8)
incq %r15
cmpq %r15, %r13
jne 0xf46d
jmp 0xf4a0
movq %r12, %rdi
callq 0x5280
movq 0x5af3(%rip), %rcx      # 0x14f90
movq %rax, (%rcx)
movl $0x4, %esi
movq 0x28(%rsp), %rdi
callq 0x5110
movq %rax, %rbx
movq 0x5a97(%rip), %r14      # 0x14f50
cmpl $0x0, (%r14)
movq 0x5adc(%rip), %r15      # 0x14fa0
jle 0xf53b
movq 0x5aeb(%rip), %rax      # 0x14fb8
movq (%rax), %rax
movq 0x5ac1(%rip), %rcx      # 0x14f98
movq (%rcx), %rcx
movq 0x5aaf(%rip), %rdx      # 0x14f90
movq (%rdx), %rdx
xorl %esi, %esi
movslq (%rax,%rsi,8), %rdi
movslq 0x4(%rax,%rsi,8), %r8
movq (%rcx,%rdi,8), %r9
movslq (%rbx,%rdi,4), %r10
movl %r8d, (%r9,%r10,4)
movq (%rcx,%r8,8), %r9
movslq (%rbx,%r8,4), %r11
movl %edi, (%r9,%r11,4)
movq (%rdx,%rdi,8), %r9
movl %r8d, (%r9,%r10,8)
movl %esi, 0x4(%r9,%r10,8)
movq (%rdx,%r8,8), %r9
movl %edi, (%r9,%r11,8)
movl %esi, 0x4(%r9,%r11,8)
leal 0x1(%r10), %r9d
movl %r9d, (%rbx,%rdi,4)
incl (%rbx,%r8,4)
incq %rsi
movslq (%r14), %rdi
cmpq %rdi, %rsi
jl 0xf4e6
movl (%r15), %r13d
testl %r13d, %r13d
jle 0xf5eb
xorl %r14d, %r14d
movq 0x5a7a(%rip), %rax      # 0x14fc8
movq (%rax), %rax
movslq (%rax,%r14,4), %rax
testq %rax, %rax
je 0xf5d7
movq 0x5a37(%rip), %rcx      # 0x14f98
movq (%rcx), %rcx
movq (%rcx,%r14,8), %r12
leaq (%r12,%rax,4), %r13
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %r12, %rdi
movq %r13, %rsi
callq 0x1083d
movq %r12, %rdi
movq %r13, %rsi
callq 0x10939
movq 0x5a32(%rip), %rax      # 0x14fc8
movq (%rax), %rax
movslq (%rax,%r14,4), %rax
testq %rax, %rax
je 0xf5d7
movq 0x59e7(%rip), %rcx      # 0x14f90
movq (%rcx), %rcx
movq (%rcx,%r14,8), %r12
leaq (%r12,%rax,8), %r13
bsrq %rax, %rdx
xorl $0x3f, %edx
addl %edx, %edx
xorq $0x7e, %rdx
movq %r12, %rdi
movq %r13, %rsi
callq 0x10b8a
movq %r12, %rdi
movq %r13, %rsi
callq 0x10c5c
incq %r14
movl (%r15), %r13d
movslq %r13d, %rdi
cmpq %rdi, %r14
jl 0xf547
jmp 0xf5ee
movslq %r13d, %rdi
shlq $0x3, %rdi
callq 0x5280
movq 0x594a(%rip), %r12      # 0x14f48
movq %rax, (%r12)
testl %r13d, %r13d
jle 0xf62c
movl %r13d, %r14d
xorl %r15d, %r15d
movl $0x49, %edi
movl $0x8, %esi
callq 0x5110
movq (%r12), %rcx
movq %rax, (%rcx,%r15,8)
incq %r15
cmpq %r15, %r14
jne 0xf60d
movq 0x591d(%rip), %rax      # 0x14f50
movslq (%rax), %r14
leaq (,%r14,8), %rdi
callq 0x5280
movq 0x5916(%rip), %r13      # 0x14f60
movq %rax, (%r13)
testq %r14, %r14
jle 0xf675
xorl %r15d, %r15d
movl $0x44, %edi
movl $0x8, %esi
callq 0x5110
movq (%r13), %rcx
movq %rax, (%rcx,%r15,8)
incq %r15
cmpq %r15, %r14
jne 0xf656
leaq 0x29e9(%rip), %rsi      # 0x12065
movq %rbp, %rdi
callq 0x5290
testl %eax, %eax
je 0xf6ac
movq 0x8(%rsp), %rax
cmpl $0x5, %eax
movq 0x5931(%rip), %r14      # 0x14fc8
je 0xf6db
cmpl $0x4, %eax
movq 0x58fd(%rip), %r15      # 0x14fa0
jne 0xf6e7
callq 0x5f52
jmp 0xf6e7
movq 0x8(%rsp), %rax
cmpl $0x5, %eax
movq 0x590d(%rip), %r14      # 0x14fc8
je 0xf757
cmpl $0x4, %eax
movq 0x58d5(%rip), %r15      # 0x14fa0
jne 0xf763
callq 0x56da
jmp 0xf763
callq 0xa971
movq 0x58b9(%rip), %r15      # 0x14fa0
leaq 0x2a86(%rip), %rsi      # 0x12174
movq 0x10(%rsp), %rdi
callq 0x5290
testl %eax, %eax
je 0xf70d
leaq 0x38(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xecde
jmp 0xf787
movq 0x58ac(%rip), %rdi      # 0x14fc0
leaq 0x2a5d(%rip), %rsi      # 0x12178
movl $0xf, %edx
callq 0x5220
leaq 0x38(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xecde
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq 0x587b(%rip), %rdi      # 0x14fc0
callq 0x5220
movq %rax, %rdi
callq 0x50d0
jmp 0xf801
callq 0x687e
movq 0x583d(%rip), %r15      # 0x14fa0
leaq 0x2a0a(%rip), %rsi      # 0x12174
movq 0x10(%rsp), %rdi
callq 0x5290
testl %eax, %eax
je 0xf7bc
leaq 0x38(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xe907
leaq 0x38(%rsp), %r15
movq 0x18(%rsp), %rdi
movq %r15, %rsi
callq 0x5250
movq (%r15), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0xf7b3
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x57e6(%rip), %r15      # 0x14fa0
jmp 0xf81d
movq 0x57fd(%rip), %rdi      # 0x14fc0
leaq 0x29ae(%rip), %rsi      # 0x12178
movl $0xf, %edx
callq 0x5220
leaq 0x38(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0xe907
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq 0x57cc(%rip), %rdi      # 0x14fc0
callq 0x5220
movq %rax, %rdi
callq 0x50d0
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0xf81d
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x51f0
movq 0x5794(%rip), %rax      # 0x14fb8
movq (%rax), %rdi
callq 0x5240
movq (%r14), %rdi
callq 0x5240
movq %rbx, %rdi
callq 0x5240
cmpq $0x32000000, 0x20(%rsp) # imm = 0x32000000
jae 0xf850
movq 0x573a(%rip), %r14      # 0x14f88
jmp 0xf87d
cmpl $0x0, (%r15)
movq 0x573d(%rip), %r14      # 0x14f98
jle 0xf87d
xorl %ebx, %ebx
movq 0x5732(%rip), %r14      # 0x14f98
movq (%r14), %rax
movq (%rax,%rbx,8), %rdi
callq 0x5240
incq %rbx
movslq (%r15), %rax
cmpq %rax, %rbx
jl 0xf866
movq (%r14), %rdi
callq 0x5240
cmpl $0x0, (%r15)
jle 0xf8ab
xorl %ebx, %ebx
movq 0x56fc(%rip), %r14      # 0x14f90
movq (%r14), %rax
movq (%rax,%rbx,8), %rdi
callq 0x5240
incq %rbx
movslq (%r15), %rax
cmpq %rax, %rbx
jl 0xf894
movq 0x56de(%rip), %rax      # 0x14f90
movq (%rax), %rdi
callq 0x5240
cmpl $0x0, (%r15)
jle 0xf8da
xorl %ebx, %ebx
movq (%r12), %rax
movq (%rax,%rbx,8), %rdi
callq 0x5240
incq %rbx
movslq (%r15), %rax
cmpq %rax, %rbx
jl 0xf8c2
movq (%r12), %rdi
callq 0x5240
movq 0x5666(%rip), %r14      # 0x14f50
cmpl $0x0, (%r14)
jle 0xf90a
xorl %ebx, %ebx
movq (%r13), %rax
movq (%rax,%rbx,8), %rdi
callq 0x5240
incq %rbx
movslq (%r14), %rax
cmpq %rax, %rbx
jl 0xf8f2
movq (%r13), %rdi
callq 0x5240
movl $0x1, %ebx
jmp 0xf0aa
jmp 0xf979
jmp 0xf979
jmp 0xf979
jmp 0xf927
jmp 0xf979
movq %rax, %rbx
movq 0x38(%rsp), %rdi
leaq 0x48(%rsp), %rax
cmpq %rax, %rdi
je 0xf97c
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0xf97c
jmp 0xf979
jmp 0xf979
jmp 0xf979
jmp 0xf979
movq %rax, %rbx
leaq 0x48(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xf99a
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x51f0
jmp 0xf99a
movq %rax, %rbx
jmp 0xf99a
jmp 0xf979
jmp 0xf979
movq %rax, %rbx
movq 0x55bd(%rip), %rsi      # 0x14f40
leaq 0x68(%rsp), %rdi
callq 0x5160
leaq 0xe8(%rsp), %rdi
callq 0x5080
movq %fs:0x28, %rax
cmpq 0x1f0(%rsp), %rax
jne 0xf9b5
movq %rbx, %rdi
callq 0x5330
callq 0x5210