LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O2/perdisci[P]LSH/lsh.cpp
// Function: rp::LSH::LSH(unsigned int, unsigned int, unsigned int, unsigned int)
LSH::LSH(const unsigned minhash_sig_len, const unsigned lsh_bands,
             const unsigned ngram_len, const unsigned seed) {
        this->minhash_sig_len = minhash_sig_len;
        this->lsh_bands = lsh_bands;
        this->ngram_len = ngram_len;
        this->seed = seed;
        
        mh = MinHash(minhash_sig_len,seed);
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movl %r8d, %ebp
movl %ecx, %r12d
movl %edx, %r13d
movl %esi, %r15d
movq %rdi, %r14
leaq 0x10(%rdi), %rbx
pushq $0x64
popq %rsi
movq %rbx, %rdi
xorl %edx, %edx
callq 0xb16c
leaq 0x70(%r14), %rax
andl $0x0, 0x70(%r14)
andq $0x0, 0x78(%r14)
movq %rax, 0x80(%r14)
movq %rax, 0x88(%r14)
andq $0x0, 0x90(%r14)
leaq 0xa0(%r14), %rax
andl $0x0, 0xa0(%r14)
andq $0x0, 0xa8(%r14)
movq %rax, 0xb0(%r14)
movq %rax, 0xb8(%r14)
andq $0x0, 0xc0(%r14)
andl $0x0, 0xd0(%r14)
leaq 0xd0(%r14), %rax
andq $0x0, 0xd8(%r14)
movq %rax, 0xe0(%r14)
movq %rax, 0xe8(%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0xf0(%r14)
movups %xmm0, 0x100(%r14)
movups %xmm0, 0x110(%r14)
movups %xmm0, 0x120(%r14)
movups %xmm0, 0x130(%r14)
movl %r15d, (%r14)
movl %r13d, 0x4(%r14)
movl %r12d, 0x8(%r14)
movl %ebp, 0xc(%r14)
leaq 0x10(%rsp), %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0xb16c
leaq 0x10(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xdafa
movq %r14, %rdi
callq 0x78a2
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, 0x8(%rsp)
leaq 0x128(%r14), %rdi
leaq 0x110(%r14), %r12
leaq 0xf8(%r14), %r13
leaq 0xc8(%r14), %rbp
leaq 0x98(%r14), %r15
addq $0x68, %r14
callq 0xb026
movq %r12, %rdi
callq 0xb026
movq %r13, %rdi
callq 0x738e
movq %rbp, %rdi
callq 0x78b8
movq %r15, %rdi
callq 0x788e
movq %r14, %rdi
callq 0x788e
movq %rbx, %rdi
callq 0x78a2
movq 0x8(%rsp), %rdi
callq 0x65a0
nop
// File: /workspace/github_c_makefile_star2_O2/perdisci[P]LSH/lsh.cpp
// Function: rp::LSH::candidate_probability(unsigned int, unsigned int, float)
float LSH::candidate_probability(unsigned minhash_sig_len, unsigned lsh_bands, float jaccard_sim) {
        unsigned r = minhash_sig_len/lsh_bands;
        unsigned b = lsh_bands;
        float s = jaccard_sim;
        return 1 - std::pow((1 - std::pow(s,r)),b);
    }

// Assembly:
pushq %rbx
movl %edx, %ebx
movl %esi, %eax
xorl %edx, %edx
divl %ebx
cvtss2sd %xmm0, %xmm0
cvtsi2sd %rax, %xmm1
callq 0x6580
movsd 0x3be5(%rip), %xmm2     # 0x116b8
subsd %xmm0, %xmm2
movl %ebx, %eax
cvtsi2sd %rax, %xmm1
movapd %xmm2, %xmm0
callq 0x6580
movsd 0x3bc9(%rip), %xmm1     # 0x116b8
subsd %xmm0, %xmm1
cvtsd2ss %xmm1, %xmm0
popq %rbx
retq
nop
// File: /workspace/github_c_makefile_star2_O2/CkTD[P]btree/table.c
// Function: table_rows_destory
static void _table_rows_destory(TableRows *rows, int destory_row)
{
    int i;

    if (destory_row)
    {
        for(i = 0; i< rows->counts; i++)
        {
            table_row_destory(rows->rows[i]);
        }
    }
    free(rows->rows);
    free(rows);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
testl %esi, %esi
je 0x273b
xorl %r14d, %r14d
cmpq %r14, (%rbx)
jbe 0x273b
movq 0x8(%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0x1030
incq %r14
jmp 0x2724
movq 0x8(%rbx), %rdi
callq 0x1030
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x1030
// File: /workspace/github_c_makefile_star2_O2/CkTD[P]btree/table.c
// Function: table_search_range
TableRows *table_search_range(Table *table, uint64_t column, uint64_t min_value, uint64_t max_value, uint64_t limit)
{
    TableRows *rows;

    table_lock(table);

    if(table_index_is_exist(table->indexs, column))
        rows = table_search_by_index(table, column, min_value, max_value, limit);
    else
        rows = table_search_by_exhaustion(table, column, min_value, max_value, limit);

    table_unlock(table);

    return rows;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %r8, %r12
movq %rcx, (%rsp)
movq %rdx, 0x8(%rsp)
movq %rsi, %r13
movq %rdi, %rbx
callq 0x28c1
movq 0x8(%rbx), %rax
movq %rax, %rbp
movl 0x8(%rax,%r13,8), %r15d
callq 0x30c3
movq %rax, %r14
testl %r15d, %r15d
je 0x2866
xorl %r15d, %r15d
movq %rbp, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x2feb
movq %rax, %rdi
movq %r12, %rsi
movq 0x8(%rsp), %rdx
movq (%rsp), %rcx
callq 0x186f
movq %rax, %r12
movq %rax, %rdi
callq 0x1554
movq %rax, %r13
cmpq %r15, %r13
je 0x2844
movq %r12, %rdi
movq %r15, %rsi
callq 0x1558
movq 0x10(%rbx), %rdi
movq %rax, %rsi
callq 0x3083
movq %r14, %rdi
movq %rax, %rsi
callq 0x308c
incq %r15
jmp 0x2818
movq %r12, %rdi
callq 0x153e
movq %rbx, %rdi
callq 0x28f0
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r13, 0x10(%rsp)
movq (%rsp), %rbp
movq 0x10(%rbx), %rax
movq 0x18(%rax), %rax
movq (%rax), %r13
xorl %r15d, %r15d
cmpq %r13, %r15
jae 0x284c
testq %r12, %r12
je 0x284c
movq 0x10(%rbx), %rdi
movq %r15, %rsi
callq 0x3083
movq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
cmpq 0x8(%rsp), %rcx
setb %dl
cmpq %rbp, %rcx
seta %cl
orb %dl, %cl
jne 0x28bc
movq %r14, %rdi
movq %rax, %rsi
callq 0x308c
decq %r12
incq %r15
jmp 0x287d
// File: /workspace/github_c_makefile_star2_O2/CkTD[P]btree/table.c
// Function: table_search
TableRows *table_search(Table *table, uint64_t column, uint64_t value, uint64_t limit)
{
    TableRows *rows;

    table_lock(table);

    rows = table_search_range(table, column, value, value, limit);

    table_unlock(table);

    return rows;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %rbx
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
callq 0x28c1
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
movq %r14, %rcx
movq %rbx, %r8
callq 0x27a4
movq %rax, %rbx
movq %r12, %rdi
callq 0x28f0
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/CkTD[P]btree/table.c
// Function: table_append
void table_append(Table *table, TableRow *row)
{
    uint64_t rowid;
    
    table_lock(table);
    
    rowid = table_content_append_row(table->content, row);
    table_index_update(table->indexs, row, rowid);

    table_unlock(table);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x28c1
movq 0x10(%rbx), %rax
movq 0x18(%rax), %rdi
movq %r14, %rsi
callq 0x308c
movq %rax, %r15
movq 0x8(%rbx), %r12
xorl %r13d, %r13d
cmpq $0x64, %r13
je 0x29c8
cmpq $0x1, 0x8(%r12,%r13,8)
jne 0x29c3
movq (%r14,%r13,8), %rbp
movq %r12, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x2feb
movq %rax, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x1693
incq %r13
jmp 0x2996
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x28f0
// File: /workspace/github_c_makefile_star2_O2/CkTD[P]btree/table.c
// Function: table_create_index
int table_create_index(Table *table, uint64_t column)
{
    TableRows *rows;
    int rtv;
    
    table_lock(table);
    
    rows = table_content_get_all_rows(table->content);
    rtv = table_index_create(table->indexs, column, rows);
    
    table_unlock(table);
    return rtv;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x28c1
movq 0x8(%rbx), %r12
cmpq $0x0, 0x8(%r12,%r14,8)
je 0x2a11
cmpq $0x0, 0x328(%r12,%r14,8)
je 0x2a84
pushq $-0x1
popq %r14
jmp 0x2a6a
movq 0x10(%rbx), %rax
movq 0x18(%rax), %r15
movq $0x1, 0x8(%r12,%r14,8)
pushq $0x1
popq %rdx
movq %r12, %rdi
movq %r14, %rsi
callq 0x2feb
cmpq $0x0, 0x328(%r12,%r14,8)
je 0x2aa3
movq %rax, %r13
movq (%r15), %r12
xorl %ebp, %ebp
cmpq %rbp, %r12
je 0x2a67
movq %r15, %rdi
movq %rbp, %rsi
callq 0x26e4
movq (%rax,%r14,8), %rsi
movq %r13, %rdi
movq %rbp, %rdx
callq 0x1693
incq %rbp
jmp 0x2a43
xorl %r14d, %r14d
movq %rbx, %rdi
callq 0x28f0
movl %r14d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1f8e(%rip), %rdi      # 0x4a19
leaq 0x1ebf(%rip), %rsi      # 0x4951
leaq 0x1fa3(%rip), %rcx      # 0x4a3c
movl $0x19d, %edx            # imm = 0x19D
callq 0x10d0
leaq 0x1f6f(%rip), %rdi      # 0x4a19
leaq 0x1ea0(%rip), %rsi      # 0x4951
leaq 0x1f84(%rip), %rcx      # 0x4a3c
movl $0x1a4, %edx            # imm = 0x1A4
callq 0x10d0
// File: /workspace/github_c_makefile_star2_O2/CkTD[P]btree/table.c
// Function: table_close
void table_close(Table *table)
{
    pthread_mutex_destroy(&table->mutex);
    table_flush(table);
    table_index_destory(table->indexs);
    table_content_destory(table->content);
    free(table->dir);
    free(table);
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
addq $0x18, %rdi
callq 0x10b0
movq %rbx, %rdi
callq 0x2d9b
movq 0x8(%rbx), %r14
pushq $0x65
popq %r15
cmpq $0xc9, %r15
je 0x2f8f
movq (%r14,%r15,8), %rdi
testq %rdi, %rdi
je 0x2f8a
cmpq $0x1, -0x320(%r14,%r15,8)
jne 0x2fcc
callq 0x1b91
incq %r15
jmp 0x2f68
movq %r14, %rdi
callq 0x1030
movq 0x10(%rbx), %r14
movq 0x18(%r14), %rdi
pushq $0x1
popq %rsi
callq 0x2716
movq (%r14), %rdi
callq 0x1030
movq %r14, %rdi
callq 0x1030
movq (%rbx), %rdi
callq 0x1030
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x1030
leaq 0x1c1f(%rip), %rdi      # 0x4bf2
leaq 0x1977(%rip), %rsi      # 0x4951
leaq 0x1c50(%rip), %rcx      # 0x4c31
movl $0x1c8, %edx            # imm = 0x1C8
callq 0x10d0
// File: /workspace/github_c_makefile_star2_O2/CkTD[P]btree/table.c
// Function: table_index_get
static BTree *table_index_get(TableIndex *index, uint64_t column, int is_creat)
{
    BTree        *bt;
    BTreeOpenFlag flag;
    char          full_name[64];

    if (index->index_trees[column] == NULL)
    {
        table_index_get_path(index, column, full_name);

        flag.file = full_name;
        flag.order = 101;
        if (is_creat)
        {
            flag.create_if_missing = 1;
            flag.error_if_exist = 1;
        }
        else
        {
            flag.create_if_missing = 0;
            flag.error_if_exist = 0;
        }
        

        bt = bt_open(flag);
        assert(bt != NULL);
        index->index_trees[column] = bt;
    }


    return index->index_trees[column];
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x78, %rsp
movq 0x328(%rdi,%rsi,8), %rax
testq %rax, %rax
jne 0x3059
movl %edx, %ebp
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x30(%rsp), %r15
movq %r15, %rdx
callq 0x2753
movq %r15, 0x18(%rsp)
movq $0x65, 0x20(%rsp)
xorl %eax, %eax
testl %ebp, %ebp
setne %al
movl %eax, 0x28(%rsp)
movl %eax, 0x2c(%rsp)
movq 0x28(%rsp), %rax
movq %rax, 0x10(%rsp)
movups 0x18(%rsp), %xmm0
movups %xmm0, (%rsp)
callq 0x1906
testq %rax, %rax
je 0x3064
movq %rax, 0x328(%r14,%rbx,8)
addq $0x78, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1954(%rip), %rdi      # 0x49bf
leaq 0x18df(%rip), %rsi      # 0x4951
leaq 0x1951(%rip), %rcx      # 0x49ca
movl $0x17c, %edx            # imm = 0x17C
callq 0x10d0
// File: /workspace/github_c_makefile_star2_O2/CkTD[P]btree/table.c
// Function: table_rows_append_row
static uint64_t table_rows_append_row(TableRows *rows, TableRow *row)
{
    uint64_t rowid;
    rowid = rows->counts;

    rows->counts++;
    rows->rows = (TableRow **)realloc(rows->rows, sizeof(TableRow *) * (rows->counts));
    rows->rows[rowid] = row;

    return rowid;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
movq (%rdi), %r15
movq 0x8(%rdi), %rdi
leaq 0x1(%r15), %rax
movq %rax, (%r14)
leaq 0x8(,%r15,8), %rsi
callq 0x1140
movq %rax, 0x8(%r14)
movq %rbx, (%rax,%r15,8)
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/CkTD[P]btree/table.c
// Function: table_content_get_path
static char *table_content_get_path(const char *dir)
{
    int   len;
    char *full_path;
    const char *fixed_name = "/table";  // 6 characters
    len = strlen(dir);
    full_path = (char *)malloc(len + 7);
    strcpy(full_path, dir);
    strcpy(full_path + len, fixed_name);
    return full_path;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
callq 0x1090
movq %rax, %r14
addl $0x7, %eax
movslq %eax, %rdi
callq 0x1130
movq %rax, %r15
movq %rax, %rdi
movq %rbx, %rsi
callq 0x1050
movslq %r14d, %rax
movl $0x6261742f, (%r15,%rax) # imm = 0x6261742F
movl $0x656c62, 0x3(%r15,%rax) # imm = 0x656C62
movq %r15, %rax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O2/nmmmnu[P]HM2/test_hm.c
// Function: hm_memtable_test
void hm_memtable_test(){
	hm_memtable_t *v = hm_memtable_createa();

	_hm_memtable_test_dump(v);
	_hm_memtable_test_overwrite(v);
	_hm_memtable_test_remove(v);

	hm_memtable_destroy(v);
	free(v);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
xorl %eax, %eax
callq 0x1d7e
movq %rax, %rbx
movq %rax, %rdi
callq 0x162b
movq %rax, %r14
movq %rbx, %rdi
callq 0x1dae
movq %rax, %r15
testq %rax, %rax
je 0x141f
movq %r15, %rdi
callq 0x1db8
testq %rax, %rax
je 0x141f
movq %rax, %rdi
callq 0x18c7
movq %r15, %rdi
callq 0x1dd2
jmp 0x1408
movq %r15, %rdi
callq 0x1db3
movq %rbx, %rdi
callq 0x1daa
cmpq %r14, %rax
leaq 0xc0d(%rip), %r15       # 0x2046
leaq 0xc09(%rip), %r14       # 0x2049
movq %r14, %rcx
cmoveq %r15, %rcx
leaq 0xbcc(%rip), %r12       # 0x201a
leaq 0xc32(%rip), %r13       # 0x2087
leaq 0xc39(%rip), %rdx       # 0x2095
movq %r12, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x1050
leaq 0xc2c(%rip), %rdx       # 0x209c
movq %r12, %rdi
movq %r13, %rsi
movq %r15, %rcx
xorl %eax, %eax
callq 0x1050
leaq 0xc19(%rip), %rdx       # 0x20a0
movq %r12, %rdi
movq %r13, %rsi
movq %r15, %rcx
xorl %eax, %eax
callq 0x1050
movq %rbx, %rdi
callq 0x162b
leaq 0xc38(%rip), %r15       # 0x20de
leaq 0xc37(%rip), %rsi       # 0x20e4
movq %r15, %rdi
callq 0x139e
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1d96
leaq 0xc0b(%rip), %rbp       # 0x20d2
movq %r15, %rdi
movq %rbp, %rsi
callq 0x139e
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1d96
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1d9b
movq %rax, %rdi
callq 0x1827
movq %rax, %rdi
movq %rbp, %rsi
callq 0x1070
testl %eax, %eax
movq %r14, %rcx
leaq 0xb3f(%rip), %r15       # 0x2046
cmoveq %r15, %rcx
leaq 0xbdb(%rip), %rdx       # 0x20ed
movq %r12, %rdi
movq %r12, %rbp
movq %r13, %rsi
xorl %eax, %eax
callq 0x1050
movq %rbx, %rdi
callq 0x162b
leaq 0xb8d(%rip), %rsi       # 0x20be
movq %rbx, %rdi
callq 0x1da0
leaq 0xb72(%rip), %rsi       # 0x20b2
movq %rbx, %rdi
callq 0x1da0
leaq 0xb78(%rip), %rsi       # 0x20c7
movq %rbx, %rdi
callq 0x1da0
leaq 0xb47(%rip), %rsi       # 0x20a5
movq %rbx, %rdi
callq 0x1d9b
movq %rax, %rdi
callq 0x1827
leaq 0xb37(%rip), %rsi       # 0x20ac
movq %rax, %rdi
callq 0x1070
testl %eax, %eax
movq %r14, %rcx
cmoveq %r15, %rcx
movq %r15, %r12
leaq 0xb67(%rip), %r15       # 0x20f7
movq %rbp, %r13
movq %rbp, %rdi
leaq 0xaea(%rip), %rbp       # 0x2087
movq %rbp, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x1050
movq %rbx, %rdi
callq 0x1da5
cmpq $0x1, %rax
movq %r14, %rcx
cmoveq %r12, %rcx
movq %r13, %rdi
movq %rbp, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x1050
movq %rbx, %rdi
leaq 0xace(%rip), %rsi       # 0x20a5
callq 0x1da0
movq %rbx, %rdi
callq 0x1da5
testq %rax, %rax
cmoveq %r12, %r14
movq %r13, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %r14, %rcx
xorl %eax, %eax
callq 0x1050
movq %rbx, %rdi
callq 0x1d8c
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1030
// File: /workspace/github_c_makefile_star2_O2/nmmmnu[P]HM2/test_hm.c
// Function: hm_memtable_populate
static size_t _hm_memtable_populate(hm_memtable_t *v){
	hm_memtable_removeall(v);

	hm_pair_t *p;
	size_t size = 0;

	// go to empty list
	p = hm_pair_create("3 city", "Sofia");	size += hm_pair_sizeof(p);	hm_memtable_put(v, p);
	// go first
	p = hm_pair_create("1 name", "Niki");	size += hm_pair_sizeof(p);	hm_memtable_put(v, p);
	// go middle
	p = hm_pair_create("2 age", "22");	size += hm_pair_sizeof(p);	hm_memtable_put(v, p);
	// go last
	p = hm_pair_create("4 os", "Linux");	size += hm_pair_sizeof(p);	hm_memtable_put(v, p);

	return size;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %rbx
callq 0x1d91
leaq 0xa62(%rip), %rdi       # 0x20a5
leaq 0xa62(%rip), %rsi       # 0x20ac
callq 0x139e
movq %rax, %r14
movq %rax, %rdi
callq 0x1809
movq %rax, %r15
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1d96
leaq 0xa43(%rip), %rdi       # 0x20b2
leaq 0xa43(%rip), %rsi       # 0x20b9
callq 0x139e
movq %rax, %r12
movq %rax, %rdi
callq 0x1809
movq %rax, %r14
addq %r15, %r14
movq %rbx, %rdi
movq %r12, %rsi
callq 0x1d96
leaq 0xa20(%rip), %rdi       # 0x20be
leaq 0xa1f(%rip), %rsi       # 0x20c4
callq 0x139e
movq %rax, %r15
movq %rax, %rdi
callq 0x1809
movq %rax, %r12
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1d96
leaq 0x9fd(%rip), %rdi       # 0x20c7
leaq 0x9fb(%rip), %rsi       # 0x20cc
callq 0x139e
movq %rax, %r15
movq %rax, %rdi
callq 0x1809
movq %rax, %r13
addq %r12, %r13
addq %r14, %r13
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1d96
movq %r13, %rax
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
nop
// File: /workspace/github_c_makefile_star2_O2/albinoloverats[P]hide/src/webp.c
// Function: init
extern image_type_t *init(void)
{
	static image_type_t webp;
	webp.type = "WEBP";
	webp.is_type = is_webp;
	webp.read = read_webp;
	webp.write = write_webp;
	webp.info = info_webp;
	webp.free = free_webp;
	return &webp;
}

// Assembly:
leaq 0xe3d(%rip), %rax       # 0x2000
movq %rax, 0x2ebe(%rip)      # 0x4088
leaq 0x2eb7(%rip), %rax      # 0x4088
leaq 0x40(%rip), %rcx        # 0x1218
movq %rcx, 0x2eb1(%rip)      # 0x4090
leaq 0x93(%rip), %rcx        # 0x1279
movq %rcx, 0x2eab(%rip)      # 0x4098
leaq 0x22d(%rip), %rcx       # 0x1421
movq %rcx, 0x2ea5(%rip)      # 0x40a0
leaq 0x361(%rip), %rcx       # 0x1563
movq %rcx, 0x2e9f(%rip)      # 0x40a8
leaq 0x36d(%rip), %rcx       # 0x157d
movq %rcx, 0x2e99(%rip)      # 0x40b0
retq
// File: /workspace/github_c_makefile_star2_O2/albinoloverats[P]hide/src/webp.c
// Function: is_webp
static bool is_webp(char *file_name)
{
	FILE *fp = fopen(file_name, "rb");
	if (!fp)
		return false;

	uint8_t header[1024];
	fread(header, 1, sizeof header, fp);
	fclose(fp);

	return WebPGetInfo(header, sizeof header, NULL, NULL);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x408, %rsp            # imm = 0x408
leaq 0xddc(%rip), %rsi       # 0x2005
callq 0x1090
testq %rax, %rax
je 0x126c
movq %rax, %rbx
movq %rsp, %r14
pushq $0x1
popq %rsi
movl $0x400, %edx            # imm = 0x400
movq %r14, %rdi
movq %rax, %rcx
callq 0x1050
movq %rbx, %rdi
callq 0x1060
movl $0x400, %esi            # imm = 0x400
movq %r14, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x1070
testl %eax, %eax
setne %al
jmp 0x126e
xorl %eax, %eax
addq $0x408, %rsp            # imm = 0x408
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/albinoloverats[P]hide/src/webp.c
// Function: write_webp
static int write_webp(image_info_t image_info, void (*progress_update)(uint64_t, uint64_t))
{
	errno = EXIT_SUCCESS;

	FILE *fp = fopen(image_info.file, "wb");
	if (!fp)
		return errno;

	uint8_t *raw = NULL;
	uint64_t l = image_info.width * image_info.bpp;
	uint8_t *img = malloc(l * image_info.height);
	for (uint64_t y = 0; y < image_info.height; y++)
	{
		memcpy(img + y * l, image_info.buffer[y], l);
		free(image_info.buffer[y]);
		if (progress_update)
			progress_update(y, image_info.height);
	}
	free(image_info.buffer);

	size_t (*webpencode)(const uint8_t *, int, int, int, uint8_t **) = image_info.bpp == 4 ? WebPEncodeLosslessRGBA : WebPEncodeLosslessRGB;
	l = webpencode(img, image_info.width, image_info.height, l, &raw);

	fwrite(raw, 1, l, fp);
	free(raw);
	free(img);
	fclose(fp);

	return errno;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rdi, %r13
callq 0x1040
movq %rax, %rbx
andl $0x0, (%rax)
movq 0x70(%rsp), %rdi
leaq 0xbbf(%rip), %rsi       # 0x2008
callq 0x1090
testq %rax, %rax
je 0x14f8
movq %rax, 0x20(%rsp)
movq %rbx, 0x28(%rsp)
andq $0x0, 0x30(%rsp)
leaq 0x70(%rsp), %rbx
movq 0x28(%rbx), %r12
movq 0x30(%rbx), %rax
movzwl 0x38(%rbx), %ebp
movq %rbp, 0x8(%rsp)
movq %rax, 0x10(%rsp)
imulq %rax, %rbp
movq %rbp, %rdi
imulq %r12, %rdi
callq 0x10b0
movq %rax, %r14
movq 0x40(%rbx), %rcx
movq %rcx, (%rsp)
xorl %r15d, %r15d
movq %rax, 0x18(%rsp)
cmpq %r15, %r12
je 0x14de
movq (%rsp), %rax
movq (%rax,%r15,8), %rbx
movq %r14, %rdi
movq %rbx, %rsi
movq %rbp, %rdx
callq 0x10a0
movq %rbx, %rdi
callq 0x1030
testq %r13, %r13
je 0x14d6
movq %r15, %rdi
movq %r12, %rsi
callq *%r13
incq %r15
addq %rbp, %r14
jmp 0x14a5
movq (%rsp), %rdi
callq 0x1030
cmpw $0x4, 0x8(%rsp)
jne 0x14fc
movq 0x2ad2(%rip), %rax      # 0x3fc8
jmp 0x1503
movl (%rbx), %eax
jmp 0x1554
movq 0x2ae5(%rip), %rax      # 0x3fe8
leaq 0x30(%rsp), %rbx
movq 0x18(%rsp), %r15
movq %r15, %rdi
movq 0x10(%rsp), %rsi
movl %r12d, %edx
movl %ebp, %ecx
movq %rbx, %r8
callq *%rax
movq (%rbx), %rdi
pushq $0x1
popq %rsi
movq %rax, %rdx
movq 0x20(%rsp), %r14
movq %r14, %rcx
callq 0x10e0
movq (%rbx), %rdi
callq 0x1030
movq %r15, %rdi
callq 0x1030
movq %r14, %rdi
callq 0x1060
movq 0x28(%rsp), %rax
movl (%rax), %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/aux_funcs.c
// Function: append
t_vect	*append(t_vect *src, int add)
{
	t_vect		*copy = (t_vect*)malloc(sizeof(t_vect));

	init_vector(copy);
	for (int i = 0;i < src->used; i++)
		push_back(copy, src->tab[i]);
	push_back(copy, add);
	return copy;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %esi, %ebx
movq %rdi, %r15
pushq $0x18
popq %rdi
callq 0x1080
movq %rax, %r14
movq %rax, %rdi
callq 0x1b68
xorl %r12d, %r12d
cmpq %r12, 0x10(%r15)
jbe 0x1261
movq (%r15), %rax
movl (%rax,%r12,4), %esi
movq %r14, %rdi
callq 0x1c0c
incq %r12
jmp 0x1247
movq %r14, %rdi
movl %ebx, %esi
callq 0x1c0c
movq %r14, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/free.c
// Function: free_paths
void	free_paths(t_graph *g)
{
	for (int i = 0; i < g->paths->size; i++)
		free(g->paths->path[i].tab);
	free(g->paths->path);
	free(g->paths);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %r14d, %r14d
xorl %r15d, %r15d
movq 0x8(%rbx), %rax
movq (%rax), %rdi
cmpq %r15, 0x8(%rax)
jbe 0x1326
movq (%rdi,%r14), %rdi
callq 0x1030
incq %r15
addq $0x18, %r14
jmp 0x1307
callq 0x1030
movq 0x8(%rbx), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x1030
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/free.c
// Function: free_graph
void	free_graph(t_graph *g)
{
	for (int i = 0; i < g->vertx; i++)
		free(g->adj[i].tab);
	free(g->adj);
	free_paths(g);
	free(g);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
xorl %r14d, %r14d
xorl %r15d, %r15d
movslq 0x10(%rbx), %rax
movq (%rbx), %rdi
cmpq %rax, %r15
jge 0x136f
movq (%rdi,%r14), %rdi
callq 0x1030
incq %r15
addq $0x18, %r14
jmp 0x1351
callq 0x1030
movq %rbx, %rdi
callq 0x12f4
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x1030
nop
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/graph.c
// Function: get_dimensions
int		get_dimensions(t_graph *new)
{
	int n, m, dir, node;

	scanf("%d %d %d %d", &n, &m, &dir, &node);
	if (!valid_dimensions(n,m,new))
	{
		free(new);
		return 0;
	}
	if (!valid_params(dir, node, new))
	{
		free(new);
		return 0;
	}
	if (!init_adj(new))
		return 0;
	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
leaq 0xbaa(%rip), %rdi       # 0x2044
xorl %r14d, %r14d
leaq -0x30(%rbp), %r15
leaq -0x2c(%rbp), %r12
leaq -0x28(%rbp), %rcx
leaq -0x24(%rbp), %r8
movq %r15, %rsi
movq %r12, %rdx
xorl %eax, %eax
callq 0x1090
movl (%r15), %edi
movl (%r12), %esi
movq %rbx, %rdx
callq 0x1b47
testl %eax, %eax
je 0x14ec
movl -0x28(%rbp), %edi
movl -0x24(%rbp), %esi
movq %rbx, %rdx
callq 0x1aa8
movq %rbx, %rdi
testl %eax, %eax
je 0x14f6
callq 0x1424
movl %eax, %r14d
jmp 0x14fe
movq %rbx, %rdi
callq 0x1030
jmp 0x14fe
callq 0x1030
xorl %r14d, %r14d
movl %r14d, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/main_paths.c
// Function: find_all_paths
void	find_all_paths(t_graph *g)
{
	t_vect *spur = (t_vect*)malloc(sizeof(t_vect));
	t_queue *bfs = init_queue(); 
	init_vector(spur);
	push_back(spur, g->start);
	init_paths(g);
	push_q(bfs, create_state(g->start, spur));
	while (bfs->size > 0)
	{
		t_qlayer *front = bfs->head;
		for (int i = 0; i < g->adj[front->node].used; i++)
		{
			for (int j = 0; j < front->prefix->used; j++)
				if (front->prefix->tab[j] == g->adj[front->node].tab[i])
					goto st;
			add_path(g, append(front->prefix, g->adj[front->node].tab[i]));
			push_q(bfs, create_state(g->adj[front->node].tab[i], append(front->prefix, g->adj[front->node].tab[i])));
			st:;
		}	
		pop_q(bfs);
	}
	free(spur->tab);
	free(spur);
	free(bfs);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r14
pushq $0x18
popq %rdi
callq 0x1080
movq %rax, %rbx
xorl %eax, %eax
callq 0x19f4
movq %rax, %r15
movq %rbx, %rdi
callq 0x1b68
movl 0x1c(%r14), %esi
movq %rbx, %rdi
callq 0x1c0c
movq %r14, %rdi
callq 0x1754
movl 0x1c(%r14), %edi
movq %rbx, -0x30(%rbp)
movq %rbx, %rsi
callq 0x11ba
movq %r15, %rdi
movq %rax, %rsi
callq 0x1a07
cmpq $0x0, 0x10(%r15)
je 0x16f9
movq (%r15), %r13
xorl %ebx, %ebx
movq (%r14), %rax
movslq 0x18(%r13), %rcx
imulq $0x18, %rcx, %rdx
cmpq %rbx, 0x10(%rax,%rdx)
jbe 0x16ec
movq (%r13), %rdi
movq 0x10(%rdi), %rcx
addq %rdx, %rax
xorl %edx, %edx
cmpq %rdx, %rcx
je 0x1699
movq (%rdi), %rsi
movl (%rsi,%rdx,4), %esi
movq (%rax), %r8
incq %rdx
cmpl (%r8,%rbx,4), %esi
jne 0x1680
jmp 0x16e4
movq (%rax), %rax
movl (%rax,%rbx,4), %esi
callq 0x1221
movq %r14, %rdi
movq %rax, %rsi
callq 0x186c
movq (%r14), %rax
movslq 0x18(%r13), %rcx
imulq $0x18, %rcx, %rcx
movq (%rax,%rcx), %rax
movl (%rax,%rbx,4), %r12d
movq (%r13), %rdi
movl %r12d, %esi
callq 0x1221
movl %r12d, %edi
movq %rax, %rsi
callq 0x11ba
movq %r15, %rdi
movq %rax, %rsi
callq 0x1a07
incq %rbx
jmp 0x1661
movq %r15, %rdi
callq 0x1a42
jmp 0x1651
movq -0x30(%rbp), %rbx
movq (%rbx), %rdi
callq 0x1030
movq %rbx, %rdi
callq 0x1030
movq %r15, %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1030
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/main_paths.c
// Function: main
int main()
{
	t_graph *g;
	g = generate_graph();
	find_all_paths(g);
	print_paths(g);
	free_graph(g);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
xorl %eax, %eax
callq 0x15b2
movq %rax, %rbx
movq %rax, %rdi
callq 0x15f4
movq %rbx, %rdi
callq 0x190d
movq %rbx, %rdi
callq 0x133e
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/path_routines.c
// Function: init_paths
void	init_paths(t_graph *g)
{
	t_paths *new = (t_paths*)malloc(sizeof(t_paths));

	new->path = (t_vect*)malloc(sizeof(t_vect)*50);
	for (int i = 0; i < 50; i++)
		init_vector(&new->path[i]);
	new->size = 50;
	new->used = 0;
	g->paths = new;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %rbx
pushq $0x18
popq %rdi
callq 0x1080
movq %rax, %r14
movl $0x4b0, %edi            # imm = 0x4B0
callq 0x1080
movq %rax, %r15
movq %rax, (%r14)
xorl %r12d, %r12d
cmpq $0x4b0, %r12            # imm = 0x4B0
je 0x1798
leaq (%r15,%r12), %rdi
callq 0x1b68
addq $0x18, %r12
jmp 0x1780
movq $0x32, 0x8(%r14)
andq $0x0, 0x10(%r14)
movq %r14, 0x8(%rbx)
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/path_routines.c
// Function: extend_paths
void	extend_paths(t_graph *g)
{
	size_t new_size = g->paths->size * 2;

	t_vect *copy = (t_vect*)malloc(sizeof(t_vect)*new_size); 
	for (int i = 0; i < new_size; i++)
		init_vector(&copy[i]);
	for (int i = 0; i < g->paths->size; i++)
	{
		for (int j = 0; j < g->paths->path[i].used; j++)
			push_back(&copy[i],g->paths->path[i].tab[j]);
		free(g->paths->path[i].tab);
	}
	free(g->paths->path);
	g->paths->path = copy;
	g->paths->size = new_size;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movq 0x8(%rdi), %rax
movq 0x8(%rax), %r14
imulq $0x30, %r14, %rdi
addq %r14, %r14
callq 0x1080
movq %rax, %r15
movq %rax, -0x30(%rbp)
movq %r14, -0x38(%rbp)
subq $0x1, %r14
jb 0x17f9
movq %r15, %rdi
callq 0x1b68
addq $0x18, %r15
jmp 0x17e5
xorl %r13d, %r13d
movq 0x8(%rbx), %rax
cmpq %r13, 0x8(%rax)
jbe 0x1842
imulq $0x18, %r13, %r12
movq -0x30(%rbp), %rcx
leaq (%rcx,%r12), %r15
xorl %r14d, %r14d
movq (%rax), %rax
movq (%rax,%r12), %rdi
cmpq %r14, 0x10(%rax,%r12)
jbe 0x1838
movl (%rdi,%r14,4), %esi
movq %r15, %rdi
callq 0x1c0c
incq %r14
movq 0x8(%rbx), %rax
jmp 0x1815
callq 0x1030
incq %r13
jmp 0x17fc
movq (%rax), %rdi
callq 0x1030
movq 0x8(%rbx), %rax
movq -0x30(%rbp), %rcx
movq %rcx, (%rax)
movq -0x38(%rbp), %rcx
movq %rcx, 0x8(%rax)
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/path_routines.c
// Function: add_path
void	add_path(t_graph *g, t_vect *new)
{
	size_t pos = g->paths->used;
	size_t size = g->paths->size;

	if (pos >= size)
		extend_paths(g);
	for (int i = 0 ; i < new->used; i++)
		push_back(&g->paths->path[pos], new->tab[i]);
	g->paths->used++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
movq 0x8(%rdi), %rax
movq 0x10(%rax), %r12
cmpq 0x8(%rax), %r12
jb 0x1893
movq %r14, %rdi
callq 0x17b2
xorl %r15d, %r15d
imulq $0x18, %r12, %r12
movq 0x8(%r14), %rax
cmpq %r15, 0x10(%rbx)
jbe 0x18bb
movq (%rax), %rdi
addq %r12, %rdi
movq (%rbx), %rax
movl (%rax,%r15,4), %esi
callq 0x1c0c
incq %r15
jmp 0x189a
incq 0x10(%rax)
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/print_paths.c
// Function: print_path_nb
void 	print_path_nb(t_graph *g)
{
	if (g->paths->used == 0)
		printf(BOLDWHITE "There is no path from vertex %d\n" RESET , g->start + 1);
	else if (g->paths->used == 1)
		printf(BOLDWHITE "There is 1 path from vertex %d\n" RESET , g->start + 1);
	else
		printf(BOLDWHITE "There are %zu paths from vertex %d\n" RESET , g->paths->used ,g->start + 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq 0x8(%rdi), %rax
movq 0x10(%rax), %rsi
movl 0x1c(%rdi), %edx
incl %edx
cmpq $0x1, %rsi
je 0x18ed
testq %rsi, %rsi
jne 0x18fe
leaq 0x765(%rip), %rdi       # 0x2050
jmp 0x18f4
leaq 0x78a(%rip), %rdi       # 0x207e
movl %edx, %esi
xorl %eax, %eax
popq %rbp
jmp 0x1070
leaq 0x7a6(%rip), %rdi       # 0x20ab
xorl %eax, %eax
popq %rbp
jmp 0x1070
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/print_paths.c
// Function: print_paths
void	print_paths(t_graph *g)
{
	size_t i = 0;

	print_path_nb(g);
	qsort(g->paths->path,g->paths->used, sizeof(t_vect), cmp_path);
	while (i < g->paths->used)
	{
		int dest = g->paths->path[i].tab[g->paths->path[i].used - 1];
		printf(CYAN "Paths to vertex %d\n" RESET , dest + 1);
		while (i < g->paths->used && g->paths->path[i].tab[g->paths->path[i].used - 1] == dest)
		{
			for (int j = 0; j < g->paths->path[i].used; j++)
				printf("%d ", g->paths->path[i].tab[j] + 1);
			puts("");
			i++;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0x18c8
movq 0x8(%rbx), %rax
movq (%rax), %rdi
movq 0x10(%rax), %rsi
leaq -0x6bd(%rip), %rcx      # 0x1278
pushq $0x18
popq %rdx
callq 0x1060
movq 0x8(%rbx), %rax
movq 0x10(%rax), %rcx
leaq 0x7ad(%rip), %r15       # 0x20f9
xorl %r13d, %r13d
cmpq %rcx, %r13
jae 0x19e3
movq (%rax), %rax
imulq $0x18, %r13, %rcx
movq (%rax,%rcx), %rdx
movq 0x10(%rax,%rcx), %rax
movl -0x4(%rdx,%rax,4), %eax
movq %rax, -0x30(%rbp)
leal 0x1(%rax), %esi
leaq 0x762(%rip), %rdi       # 0x20dc
xorl %eax, %eax
callq 0x1070
movq 0x8(%rbx), %rax
movq 0x10(%rax), %rcx
cmpq %rcx, %r13
jae 0x194f
movq (%rax), %rdx
imulq $0x18, %r13, %r12
movq (%rdx,%r12), %rdi
movq 0x10(%rdx,%r12), %rsi
movq -0x30(%rbp), %r8
cmpl %r8d, -0x4(%rdi,%rsi,4)
jne 0x194f
xorl %r14d, %r14d
cmpq %r14, %rsi
jbe 0x19d6
movq (%rdx,%r12), %rax
movl (%rax,%r14,4), %esi
incl %esi
movq %r15, %rdi
xorl %eax, %eax
callq 0x1070
incq %r14
movq 0x8(%rbx), %rax
movq (%rax), %rdx
movq 0x10(%rdx,%r12), %rsi
jmp 0x19ac
pushq $0xa
popq %rdi
callq 0x1040
incq %r13
jmp 0x1981
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O2/jalalium[P]graph_algorithms_task/src_path/validation.c
// Function: valid_params
int		valid_params(int dir, int node, t_graph *g)
{
	if (dir != 0 && dir != 1)
		return 0;
	if (node <= 0 || node > g->vertx)
		return 0;
	g->start = node - 1;
	g->direct = dir;
	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl $0x2, %edi
setae %cl
testl %esi, %esi
setle %r8b
xorl %eax, %eax
orb %cl, %r8b
jne 0x1ad1
cmpl %esi, 0x10(%rdx)
jl 0x1ad1
decl %esi
movl %esi, 0x1c(%rdx)
movl %edi, 0x20(%rdx)
movl $0x1, %eax
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/eric-lo[P]3150/3-ProcessUser/system_implement_2.c
// Function: system_ver_3150
int system_ver_3150(const char *cmd_str) {
	if(cmd_str == NULL)
		return -1;

	if(fork() == 0) {
		execl(cmd_str, cmd_str, NULL);
		fprintf(stderr, "%s: command not found\n", cmd_str);
		exit(-1);
	}

	wait(NULL);
	return 0;
}

// Assembly:
pushq %rbx
testq %rdi, %rdi
je 0x11c9
movq %rdi, %rbx
callq 0x10a0
testl %eax, %eax
je 0x11d0
xorl %ebx, %ebx
xorl %edi, %edi
callq 0x1090
jmp 0x11cc
pushq $-0x1
popq %rbx
movl %ebx, %eax
popq %rbx
retq
movq %rbx, %rdi
movq %rbx, %rsi
xorl %edx, %edx
xorl %eax, %eax
callq 0x1080
movq 0x2e12(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0xe14(%rip), %rsi       # 0x2004
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1050
pushq $-0x1
popq %rdi
callq 0x1070
// File: /workspace/github_c_makefile_star2_O2/tomcatzh[P]RealityBenchmark/md_bench.c
// Function: mdContent
static CONTENTS* mdContent(const CONTENTS* data) {
#if OPENSSL_VERSION_NUMBER < 0x010100000L
    EVP_MD_CTX mdctx;
#endif
    EVP_MD_CTX *ctx;
    CONTENTS *mdResult = NULL;
    int i = 0;

    mdResult = calloc(1, sizeof(CONTENTS));
    assert(mdResult);
    mdResult->body = malloc(EVP_MAX_MD_SIZE);
    assert(mdResult->body);

    unsigned int md_len;

#if OPENSSL_VERSION_NUMBER < 0x010100000L
    EVP_MD_CTX_init(&mdctx);
    ctx = &mdctx;
#else
    ctx = EVP_MD_CTX_new();
#endif

    i = EVP_DigestInit_ex(ctx, md, NULL);
    assert(i==1);

    i = EVP_DigestUpdate(ctx, data->body, data->size);
    assert(i==1);

    i = EVP_DigestFinal_ex(ctx, mdResult->body, &md_len);
    assert(i==1);
    mdResult->size = md_len;

#if OPENSSL_VERSION_NUMBER < 0x010100000L
    EVP_MD_CTX_cleanup(&mdctx);
#else
    EVP_MD_CTX_free(ctx);
#endif

    return mdResult;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %r15
pushq $0x1
popq %rdi
pushq $0x10
popq %rsi
callq 0x2120
testq %rax, %rax
je 0x2718
movq %rax, %rbx
pushq $0x40
popq %rdi
callq 0x22e0
movq %rax, (%rbx)
testq %rax, %rax
je 0x2731
movq %rax, %r12
callq 0x21c0
movq %rax, %r14
movq 0x8ae3(%rip), %rsi      # 0xb198
movq %rax, %rdi
xorl %edx, %edx
callq 0x2140
cmpl $0x1, %eax
jne 0x274a
movq (%r15), %rsi
movq 0x8(%r15), %rdx
movq %r14, %rdi
callq 0x22a0
cmpl $0x1, %eax
jne 0x2763
leaq 0x4(%rsp), %rdx
movq %r14, %rdi
movq %r12, %rsi
callq 0x20f0
cmpl $0x1, %eax
jne 0x277c
movl 0x4(%rsp), %eax
movq %rax, 0x8(%rbx)
movq %r14, %rdi
callq 0x2280
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x4ab1(%rip), %rdi      # 0x71d0
leaq 0x493a(%rip), %rsi      # 0x7060
leaq 0x4aac(%rip), %rcx      # 0x71d9
pushq $0x1b
jmp 0x2793
leaq 0x4ac7(%rip), %rdi      # 0x71ff
leaq 0x4921(%rip), %rsi      # 0x7060
leaq 0x4a93(%rip), %rcx      # 0x71d9
pushq $0x1d
jmp 0x2793
leaq 0x4abd(%rip), %rdi      # 0x720e
leaq 0x4908(%rip), %rsi      # 0x7060
leaq 0x4a7a(%rip), %rcx      # 0x71d9
pushq $0x29
jmp 0x2793
leaq 0x4aa4(%rip), %rdi      # 0x720e
leaq 0x48ef(%rip), %rsi      # 0x7060
leaq 0x4a61(%rip), %rcx      # 0x71d9
pushq $0x2c
jmp 0x2793
leaq 0x4a8b(%rip), %rdi      # 0x720e
leaq 0x48d6(%rip), %rsi      # 0x7060
leaq 0x4a48(%rip), %rcx      # 0x71d9
pushq $0x2f
popq %rdx
callq 0x2110
// File: /workspace/github_c_makefile_star2_O2/ramirezsebas[P]TP-LISTINGS/./src/capitulo_2/2.1/arglist.c
// Function: main
int main (int argc, char* argv[])
{
  printf ("The name of this program is ‘%s’.\n", argv[0]);
  printf ("This program was invoked with %d arguments.\n", argc - 1);
  /* Were any command-line arguments specified?*/
  if (argc > 1) {
    /* Yes, print them. */
    int i;
    printf ("The arguments are:\n");
    for (i = 1; i < argc; ++i)
      printf ("  %s\n", argv[i]);
  }
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %rbx
movl %edi, %r14d
movq (%rsi), %rsi
leaq 0xe9d(%rip), %rdi       # 0x2004
xorl %eax, %eax
callq 0x1030
leal -0x1(%r14), %esi
leaq 0xeb2(%rip), %rdi       # 0x202b
xorl %eax, %eax
callq 0x1030
cmpl $0x2, %r14d
jl 0x11b8
leaq 0xed1(%rip), %rdi       # 0x205e
callq 0x1040
movl %r14d, %r15d
pushq $0x1
popq %r12
leaq 0xeb8(%rip), %r14       # 0x2058
cmpq %r12, %r15
je 0x11b8
movq (%rbx,%r12,8), %rsi
movq %r14, %rdi
xorl %eax, %eax
callq 0x1030
incq %r12
jmp 0x11a0
xorl %eax, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/g3ida[P]g3idaCompiler/vm.cpp
// Function: getNextInst()
Inst getNextInst() {
    int c = fgetc(input);
    std::string s;
    while(c==' ' || c == '\n' || c =='\t') {
        c = fgetc(input);
    }

    while(c != EOF && c != ' ' && c !='\n')
    {
        s+= c;
        c = fgetc(input);
    }
    Inst i;
    i.ins = unilexId(s.c_str());

    if(unilexIdNumArgs(s.c_str()) == 0) return i;
    s = "";
    c = fgetc(input);
    while(c != EOF && c != '\n')
    {
        s+= c;
        c = fgetc(input);
    }

    if(i.ins == VALEURD || i.ins == VALEURG) {
        memory[s] = 0;
        i.s = s;
    } else{
        i.value = atoi(s.c_str());
    }
    return i;

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movq 0x5d51(%rip), %rdi      # 0x81b8
callq 0x21e0
leaq -0x40(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
movb $0x0, (%rcx)
movabsq $0x100000600, %r14      # imm = 0x100000600
cmpl $0x20, %eax
ja 0x24b9
movl %eax, %ecx
btq %rcx, %r14
jae 0x24b9
movq 0x5d1e(%rip), %rdi      # 0x81b8
callq 0x21e0
jmp 0x2486
movsbl %al, %esi
leaq -0x50(%rbp), %rdi
callq 0x2100
movq 0x5d04(%rip), %rdi      # 0x81b8
callq 0x21e0
leal 0x1(%rax), %ecx
cmpl $0x21, %ecx
ja 0x24a1
movabsq $0x200000801, %rdx      # imm = 0x200000801
btq %rcx, %rdx
jae 0x24a1
andl $0x0, (%rbx)
leaq 0x8(%rbx), %rax
movq %rax, -0x30(%rbp)
leaq 0x18(%rbx), %rax
movq %rax, 0x8(%rbx)
andq $0x0, 0x10(%rbx)
movb $0x0, 0x18(%rbx)
xorl %ecx, %ecx
movq -0x50(%rbp), %r15
pushq $0x19
popq %r13
leaq 0x5722(%rip), %r12      # 0x7c20
leaq 0x10(%rcx), %r14
cmpq $0x1a0, %r14            # imm = 0x1A0
je 0x2523
movq (%rcx,%r12), %rsi
movq %r15, %rdi
callq 0x2190
movq %r14, %rcx
testl %eax, %eax
jne 0x24fe
movl -0x8(%r14,%r12), %r13d
movl %r13d, 0x28(%rbx)
xorl %ecx, %ecx
leaq 0x10(%rcx), %r13
cmpq $0x1a0, %r13            # imm = 0x1A0
je 0x25c3
movq (%rcx,%r12), %rsi
movq %r15, %rdi
callq 0x2190
movq %r13, %rcx
testl %eax, %eax
jne 0x2529
cmpl $0x0, -0x4(%r13,%r12)
je 0x25c3
leaq 0x2b3a(%rip), %rsi      # 0x5096
leaq -0x50(%rbp), %rdi
callq 0x2240
leaq -0x50(%rbp), %r15
movq 0x5c48(%rip), %rdi      # 0x81b8
callq 0x21e0
cmpl $-0x1, %eax
je 0x258c
cmpl $0xa, %eax
je 0x258c
movsbl %al, %esi
movq %r15, %rdi
callq 0x2100
jmp 0x2569
movl 0x28(%rbx), %eax
decl %eax
cmpl $0x1, %eax
ja 0x25b8
leaq 0x5c23(%rip), %rdi      # 0x81c0
leaq -0x50(%rbp), %rsi
callq 0x3112
andl $0x0, (%rax)
leaq -0x50(%rbp), %rsi
movq -0x30(%rbp), %rdi
callq 0x20c0
jmp 0x25c3
movq -0x50(%rbp), %rdi
callq 0x21d0
movl %eax, (%rbx)
leaq -0x50(%rbp), %rdi
callq 0x2090
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x25e0
movq %rax, %rbx
movq -0x30(%rbp), %rdi
callq 0x2090
jmp 0x25f1
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x2090
movq %rbx, %rdi
callq 0x2220
// File: /workspace/github_c_makefile_star2_O2/mgrosvenor[P]evec/demo3.c
// Function: main
int main(int argc, char** argv)
{
    int* a = NULL;

    printf("Initial Set\n");
    evpsh(a, 6);
    evpsh(a, 4);
    evpsh(a, 2);
    evpsh(a, 2);
    evpsh(a, 4);
    evpsh(a, 6);

    for(int i = 0; i < evcnt(a); i++){
        printf("%i: %i\n", i, a[i]);
    }
    printf("\n");

    printf("Sorted Set\n");
    evsort(a,compare);

    for(int i = 0; i < evcnt(a); i++){
        printf("%i: %i\n", i, a[i]);
    }
    printf("\n");


    printf("De-duplicated Set\n");
    for(int i = 1; i < evcnt(a); i++){
        if(a[i] == a[i-1]){
            evdel(a,i);
            i--;
        }
    }

    for(int i = 0; i < evcnt(a); i++){
        printf("%i: %i\n", i, a[i]);
    }
    printf("\n");

    a = evfree(a);
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x10, %rsp
leaq 0x951(%rip), %rdi       # 0x240b
callq 0x1060
pushq $0x6
popq %rbp
leaq 0xc(%rsp), %r14
movl %ebp, (%r14)
pushq $0x4
popq %rbx
xorl %edi, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1660
pushq $0x4
popq %r15
movl %r15d, (%r14)
leaq 0xc(%rsp), %r14
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1660
pushq $0x2
popq %r12
movl %r12d, (%r14)
leaq 0xc(%rsp), %r14
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1660
movl %r12d, (%r14)
leaq 0xc(%rsp), %r14
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1660
movl %r15d, (%r14)
leaq 0xc(%rsp), %r14
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1660
movl %ebp, (%r14)
leaq 0xc(%rsp), %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0x1660
movq %rax, %rbx
leaq 0x891(%rip), %r14       # 0x23e8
xorl %r15d, %r15d
movq %rbx, %rdi
callq 0x172d
cmpq %r15, %rax
jbe 0x1b7d
movl (%rbx,%r15,4), %edx
movq %r14, %rdi
movl %r15d, %esi
xorl %eax, %eax
callq 0x1080
incq %r15
jmp 0x1b5a
pushq $0xa
popq %rdi
callq 0x1040
leaq 0x88b(%rip), %rdi       # 0x2417
callq 0x1060
leaq -0xf6(%rip), %rsi       # 0x1aa2
movq %rbx, %rdi
callq 0x1a2f
leaq 0x841(%rip), %r14       # 0x23e8
xorl %r15d, %r15d
movq %rbx, %rdi
callq 0x172d
cmpq %r15, %rax
jbe 0x1bcd
movl (%rbx,%r15,4), %edx
movq %r14, %rdi
movl %r15d, %esi
xorl %eax, %eax
callq 0x1080
incq %r15
jmp 0x1baa
pushq $0xa
popq %rdi
callq 0x1040
leaq 0x846(%rip), %rdi       # 0x2422
callq 0x1060
pushq $0x1
popq %rbp
movslq %ebp, %r14
movq %rbx, %rdi
callq 0x172d
cmpq %r14, %rax
jbe 0x1c14
movl (%rbx,%r14,4), %eax
cmpl -0x4(%rbx,%r14,4), %eax
jne 0x1c10
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1970
decl %r14d
movl %r14d, %ebp
incl %ebp
jmp 0x1be4
leaq 0x7cd(%rip), %r14       # 0x23e8
xorl %r15d, %r15d
movq %rbx, %rdi
callq 0x172d
cmpq %r15, %rax
jbe 0x1c41
movl (%rbx,%r15,4), %edx
movq %r14, %rdi
movl %r15d, %esi
xorl %eax, %eax
callq 0x1080
incq %r15
jmp 0x1c1e
pushq $0xa
popq %rdi
callq 0x1040
movq %rbx, %rdi
callq 0x192a
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O2/openshmem-org[P]openshmem-examples/c/dtrand.c
// Function: table_dump
void
table_dump(void)
{
    int i;

    for (i = 0; i < ip_pe; i += 1) {
        printf("PE %4d: table[local %4d](global %4d) = %d\n",
               me, i, (me * ip_pe) + i, table[i]);
    }
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
leaq 0xd84(%rip), %rbx       # 0x2008
xorl %r14d, %r14d
movslq 0x2e1a(%rip), %rcx      # 0x40a8
cmpq %rcx, %r14
jge 0x12bc
movl 0x2e27(%rip), %esi      # 0x40c0
imull %esi, %ecx
addl %r14d, %ecx
movq 0x2e12(%rip), %rax      # 0x40b8
movl (%rax,%r14,4), %r8d
movq %rbx, %rdi
movl %r14d, %edx
xorl %eax, %eax
callq 0x1030
incq %r14
jmp 0x1287
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O2/openshmem-org[P]openshmem-examples/c/dtrand.c
// Function: main
int
main(void)
{
    int table_bytes;
    int lock_bytes;
    int i;

    srand(getpid() + getuid());

    shmem_init();
    me = shmem_my_pe();
    npes = shmem_n_pes();

    /*
     * size of the per-PE partition
     */
    ip_pe = table_size / npes;

    /*
     * each PE only stores what it owns
     */
    table_bytes = sizeof(*table) * ip_pe;
    table = shmem_malloc(table_bytes);  /* !!! unchecked !!! */
    /*
     * initialize table
     */
    for (i = 0; i < ip_pe; i += 1) {
        table[i] = 0;
    }

    /*
     * each PE needs to be able to lock everywhere
     */
    lock_bytes = sizeof(*lock) * table_size;
    lock = shmem_malloc(lock_bytes);    /* !!! unchecked !!! */
    /*
     * initialize locks
     */
    for (i = 0; i < table_size; i += 1) {
        lock[i] = 0L;
    }

    /*
     * make sure all PEs have initialized symmetric data
     */
    shmem_barrier_all();

    for (i = 0; i < 4; i += 1) {
        const int updater = rand() % npes;

        if (me == updater) {
            const int i2u = rand() % table_size;
            const int nv = rand() % 100;

            printf("PE %d: About to update index %d with %d...\n", me, i2u,
                   nv);

            table_update(nv, i2u);
        }
    }

    shmem_barrier_all();

    /*
     * everyone shows their part of the table
     */
    table_dump();

    /*
     * clean up allocated memory
     */
    shmem_barrier_all();
    shmem_free(lock);
    shmem_free(table);

    shmem_finalize();

    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
callq 0x1080
movl %eax, %ebx
callq 0x10f0
addl %eax, %ebx
movl %ebx, %edi
callq 0x10e0
callq 0x10d0
callq 0x10a0
movl %eax, 0x2dcc(%rip)      # 0x40c0
callq 0x1070
movl %eax, %ecx
movl %eax, 0x2dc3(%rip)      # 0x40c4
pushq $0x10
popq %rbx
xorl %r14d, %r14d
movl %ebx, %eax
xorl %edx, %edx
idivl %ecx
movl %eax, 0x2d95(%rip)      # 0x40a8
shll $0x2, %eax
movslq %eax, %rdi
callq 0x10b0
movq %rax, 0x2d93(%rip)      # 0x40b8
movslq 0x2d7c(%rip), %rcx      # 0x40a8
cmpq %rcx, %r14
jge 0x133b
andl $0x0, (%rax,%r14,4)
incq %r14
jmp 0x1325
movl $0x80, %edi
callq 0x10b0
movq %rax, 0x2d64(%rip)      # 0x40b0
xorl %ecx, %ecx
cmpq $0x10, %rcx
je 0x135e
andq $0x0, (%rax,%rcx,8)
incq %rcx
jmp 0x134e
callq 0x10c0
pushq $0x4
popq %r12
pushq $0x64
popq %r13
leaq 0xcc1(%rip), %r14       # 0x2033
subl $0x1, %r12d
jb 0x13c3
callq 0x1110
cltd
idivl 0x2d40(%rip)            # 0x40c4
cmpl %edx, 0x2d36(%rip)      # 0x40c0
jne 0x1372
callq 0x1110
cltd
idivl %ebx
movl %edx, %ebp
callq 0x1110
cltd
idivl %r13d
movl %edx, %r15d
movl 0x2d18(%rip), %esi      # 0x40c0
movq %r14, %rdi
movl %ebp, %edx
movl %r15d, %ecx
xorl %eax, %eax
callq 0x1030
movl %r15d, %edi
movl %ebp, %esi
callq 0x121c
jmp 0x1372
callq 0x10c0
callq 0x1279
callq 0x10c0
movq 0x2cd7(%rip), %rdi      # 0x40b0
callq 0x1100
movq 0x2cd3(%rip), %rdi      # 0x40b8
callq 0x1100
callq 0x1090
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq