LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O3/schroeder-lvb[P]sissm/src/pistats.c
// Function: pistatsCapturedCB
int pistatsCapturedCB( char *strIn )
{
    static unsigned long int lastTimeCaptured = 0L;
    // logPrintf( LOG_LEVEL_INFO, "pistats", "Captured Objective Event ::%s::", strIn );
    logPrintf( LOG_LEVEL_INFO, "pistats", "Captured Objective Event" );

    // system generates multiple 'captured' report, so it is necessary
    // to add a 10-second window filter to make sure only one gets fired off.
    //
    if ( lastTimeCaptured + 10L < apiTimeGet() ) {

	apiSay( pistatsConfig.stringParameterExample3 );
        lastTimeCaptured = apiTimeGet();
	// apiServerRestart();

    }

    return 0;
}

// Assembly:
pushq %rbx
leaq 0x60b3(%rip), %rsi      # 0x20a5a
leaq 0x52f6(%rip), %rdx      # 0x1fca4
movl $0x2, %edi
xorl %eax, %eax
callq 0x1a3e3
movq 0x22af27(%rip), %rbx    # 0x2458e8
addq $0xa, %rbx
callq 0x117c0
cmpq %rax, %rbx
jae 0x1a9e9
leaq 0x22ab0e(%rip), %rdi    # 0x2454e4
xorl %eax, %eax
callq 0x13337
callq 0x117c0
movq %rax, 0x22aeff(%rip)    # 0x2458e8
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/schroeder-lvb[P]sissm/src/pistats.c
// Function: pistatsClientSynthDelCB
int pistatsClientSynthDelCB( char *strIn )
{
    static char playerName[256], playerGUID[256], playerIP[256];

    rosterParsePlayerSynthDisConn( strIn, 256, playerName, playerGUID, playerIP );
    logPrintf( LOG_LEVEL_INFO, "pistats", "Synthetic DEL Callback Name ::%s:: IP ::%s:: GUID ::%s::", playerName, playerIP, playerGUID );
    apiSay( "pistats: Disconnect %s", playerName );

    return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
leaq 0x22aeb3(%rip), %rbx    # 0x2458f0
leaq 0x22afac(%rip), %r14    # 0x2459f0
leaq 0x22b0a5(%rip), %r15    # 0x245af0
movl $0x100, %esi            # imm = 0x100
movq %rbx, %rdx
movq %r14, %rcx
movq %r15, %r8
callq 0x15362
leaq 0x5ff5(%rip), %rsi      # 0x20a5a
leaq 0x5283(%rip), %rdx      # 0x1fcef
movl $0x2, %edi
movq %rbx, %rcx
movq %r15, %r8
movq %r14, %r9
xorl %eax, %eax
callq 0x1a3e3
leaq 0x6097(%rip), %rdi      # 0x20b1f
movq %rbx, %rsi
xorl %eax, %eax
callq 0x13337
xorl %eax, %eax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/schroeder-lvb[P]sissm/src/pistats.c
// Function: pistatsClientSynthAddCB
int pistatsClientSynthAddCB( char *strIn )
{
    static char playerName[256], playerGUID[256], playerIP[256];

    rosterParsePlayerSynthConn( strIn, 256, playerName, playerGUID, playerIP );
    logPrintf( LOG_LEVEL_INFO, "pistats", "Synthetic ADD Callback Name ::%s:: IP ::%s:: GUID ::%s::", playerName, playerIP, playerGUID );
    apiSay( "pistats: Connected %s", playerName );

    return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
leaq 0x22b14a(%rip), %rbx    # 0x245bf0
leaq 0x22b243(%rip), %r14    # 0x245cf0
leaq 0x22b33c(%rip), %r15    # 0x245df0
movl $0x100, %esi            # imm = 0x100
movq %rbx, %rdx
movq %r14, %rcx
movq %r15, %r8
callq 0x1526b
leaq 0x5f8c(%rip), %rsi      # 0x20a5a
leaq 0x5269(%rip), %rdx      # 0x1fd3e
movl $0x2, %edi
movq %rbx, %rcx
movq %r15, %r8
movq %r14, %r9
xorl %eax, %eax
callq 0x1a3e3
leaq 0x6045(%rip), %rdi      # 0x20b36
movq %rbx, %rsi
xorl %eax, %eax
callq 0x13337
xorl %eax, %eax
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/schroeder-lvb[P]sissm/src/pistats.c
// Function: pistatsWinLose
int pistatsWinLose( char *strIn )
{
    int isTeam0, humanSide;
    char outStr[256];

    humanSide = rosterGetCoopSide();
    isTeam0   = (NULL != strstr( strIn, "Team 0" ));

    switch ( humanSide ) {
    case 0:
        if ( !isTeam0 ) strlcpy( outStr, "Co-op Humans Win", 256 );
        break;
    case 1:
        if (  isTeam0 ) strlcpy( outStr, "Co-opHumans Lose", 256 );
        break;
    default:
        strlcpy( outStr, "PvP WinLose", 256 );
        break;
    }

    apiSay( "pistats: %s", outStr );
    logPrintf( LOG_LEVEL_INFO, "pistats", outStr );

    return 0;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x108, %rsp            # imm = 0x108
movq %rdi, %r14
callq 0x1459b
movl %eax, %ebx
leaq 0x5242(%rip), %rsi      # 0x1fda1
movq %r14, %rdi
callq 0x83b0
cmpl $0x1, %ebx
je 0x1ab7e
testl %ebx, %ebx
jne 0x1ab95
testq %rax, %rax
jne 0x1abab
movups 0x522c(%rip), %xmm0     # 0x1fda8
jmp 0x1ab8a
testq %rax, %rax
je 0x1abab
movups 0x522f(%rip), %xmm0     # 0x1fdb9
movaps %xmm0, (%rsp)
movb $0x0, 0x10(%rsp)
jmp 0x1abab
movabsq $0x4c6e695720507650, %rax # imm = 0x4C6E695720507650
movq %rax, (%rsp)
movl $0x65736f, 0x8(%rsp)    # imm = 0x65736F
leaq 0x5f9a(%rip), %rdi      # 0x20b4c
movq %rsp, %rbx
movq %rbx, %rsi
xorl %eax, %eax
callq 0x13337
leaq 0x5e94(%rip), %rsi      # 0x20a5a
movl $0x2, %edi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1a3e3
xorl %eax, %eax
addq $0x108, %rsp            # imm = 0x108
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/schroeder-lvb[P]sissm/src/pistats.c
// Function: pistatsTravel
int pistatsTravel( char *strIn )
{
    char *mapName, *scenario, *mutator;
    int humanSide;

    mapName = rosterGetMapName();
    scenario = rosterGetScenario();
    mutator = rosterGetMutator();
    humanSide = rosterGetCoopSide();

    logPrintf( LOG_LEVEL_INFO, "pistats", "Change map to ::%s:: Scenario ::%s:: Mutator ::%s:: Human ::%d::", 
        mapName, scenario, mutator, humanSide );
    apiSay( "pistats: Test Map-Scenario %s::%s::%s::%d::", mapName, scenario, mutator, humanSide );

    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
callq 0x1457f
movq %rax, %rbx
callq 0x14711
movq %rax, %r14
callq 0x14739
movq %rax, %r15
callq 0x1459b
movl %eax, %ebp
movl %eax, (%rsp)
leaq 0x5e48(%rip), %rsi      # 0x20a5a
leaq 0x51c8(%rip), %rdx      # 0x1fde1
movl $0x2, %edi
movq %rbx, %rcx
movq %r14, %r8
movq %r15, %r9
xorl %eax, %eax
callq 0x1a3e3
leaq 0x5f23(%rip), %rdi      # 0x20b58
movq %rbx, %rsi
movq %r14, %rdx
movq %r15, %rcx
movl %ebp, %r8d
xorl %eax, %eax
callq 0x13337
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/schroeder-lvb[P]sissm/src/pistats.c
// Function: pistatsSessionLog
int pistatsSessionLog( char *strIn )
{
    char *sessionID;

    sessionID = rosterGetSessionID();

    logPrintf( LOG_LEVEL_INFO, "pistats", "Session ID ::%s::", sessionID );
    apiSay( "pistats: Session ID %s", sessionID );

    return 0;
}

// Assembly:
pushq %rbx
callq 0x14526
movq %rax, %rbx
leaq 0x5df5(%rip), %rsi      # 0x20a5a
leaq 0x51e1(%rip), %rdx      # 0x1fe4d
movl $0x2, %edi
movq %rax, %rcx
xorl %eax, %eax
callq 0x1a3e3
leaq 0x5f02(%rip), %rdi      # 0x20b84
movq %rbx, %rsi
xorl %eax, %eax
callq 0x13337
xorl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/schroeder-lvb[P]sissm/src/pistats.c
// Function: pistatsObjectSynth
int pistatsObjectSynth( char *strIn )
{
    char *obj, *typ; 

    obj = rosterGetObjective();
    typ = rosterGetObjectiveType();

    logPrintf( LOG_LEVEL_INFO, "pistats", "Roster Objective is ::%s::, Type is ::%s::", obj, typ ); 
    apiSay( "pistats: Roster Objective is ::%s::, Type is ::%s::", obj, typ ); 

    return 0;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
callq 0x1455b
movq %rax, %rbx
callq 0x14563
movq %rax, %r14
leaq 0x5daf(%rip), %rsi      # 0x20a5a
leaq 0x51cb(%rip), %rdx      # 0x1fe7d
movl $0x2, %edi
movq %rbx, %rcx
movq %rax, %r8
xorl %eax, %eax
callq 0x1a3e3
leaq 0x5ed0(%rip), %rdi      # 0x20b9b
movq %rbx, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x13337
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/zyearn[P]SmallC/./treeNode.h
// Function: treeNode::treeNode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, int)
treeNode(string str, int n, int t=0)
    {
        childnum = n;
        type = t;
        data = str;

        child = new treeNode*[childnum];
        for(int i=0; i<childnum; i++)
            child[i] = NULL;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x10(%rdi), %r15
movq %r15, (%rdi)
movq $0x0, 0x8(%rdi)
movb $0x0, 0x10(%rdi)
movl %edx, 0x20(%rdi)
movl %ecx, 0x24(%rdi)
callq 0x2140
movslq 0x20(%rbx), %r14
leaq (,%r14,8), %rax
testq %r14, %r14
movq $-0x1, %rdi
cmovnsq %rax, %rdi
callq 0x2030
movq %rax, 0x28(%rbx)
testl %r14d, %r14d
jle 0xae35
xorl %eax, %eax
movq 0x28(%rbx), %rcx
movq $0x0, (%rcx,%rax,8)
incq %rax
cmpq %rax, %r14
jne 0xae21
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r15, %rdi
je 0xae56
movq (%r15), %rsi
incq %rsi
callq 0x21e0
movq %r14, %rdi
callq 0x2360
// File: /workspace/github_c_makefile_star2_O3/zyearn[P]SmallC/./treeNode.h
// Function: treeNode::Clear(treeNode*)
void Clear(treeNode *t)
    {
        if(t == NULL) return ;
        int i;
        for(i=0; i<t->childnum; i++)
            Clear(t->child[i]);
        for(i=0; i<t->childnum; i++)
            delete t->child[i];
    }

// Assembly:
testq %rsi, %rsi
je 0xaf6a
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
cmpl $0x0, 0x20(%rsi)
jle 0xaf60
movq %rdi, %r14
xorl %r15d, %r15d
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %rsi
movq %r14, %rdi
callq 0xaede
incq %r15
movslq 0x20(%rbx), %rax
cmpq %rax, %r15
jl 0xaf00
testl %eax, %eax
jle 0xaf60
xorl %r15d, %r15d
movq 0x28(%rbx), %rax
movq (%rax,%r15,8), %r14
testq %r14, %r14
je 0xaf47
movq (%r14), %rdi
leaq 0x10(%r14), %rax
cmpq %rax, %rdi
je 0xaf47
movq (%rax), %rsi
incq %rsi
callq 0x21e0
movl $0x30, %esi
movq %r14, %rdi
callq 0x21e0
incq %r15
movslq 0x20(%rbx), %rax
cmpq %rax, %r15
jl 0xaf23
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/zyearn[P]SmallC/codegen.cpp
// Function: genProgram(treeNode*)
void genProgram(treeNode* node)
{
//  freopen("t.s","w",stdout);
    cout << ".data" << endl;
    cout << "newline: .asciiz \"\\n\"" << endl;
    cout << ".text\n.globl main\n";
    genExtdefs(node->child[0], node->child[0]->type);

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x1a881(%rip), %r14     # 0x27fd0
leaq 0x14564(%rip), %rsi     # 0x21cba
movl $0x5, %edx
movq %r14, %rdi
callq 0x2230
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2150
leaq 0x1452f(%rip), %rsi     # 0x21cc0
movl $0x15, %edx
movq %r14, %rdi
callq 0x2230
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21a0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2150
leaq 0x1450a(%rip), %rsi     # 0x21cd6
movl $0x12, %edx
movq %r14, %rdi
callq 0x2230
movq 0x28(%rbx), %rax
movq (%rax), %rdi
movl 0x24(%rdi), %esi
popq %rbx
popq %r14
popq %rbp
jmp 0xd7ec
// File: /workspace/github_c_makefile_star2_O3/zyearn[P]SmallC/codegen.cpp
// Function: genExtdefs(treeNode*, int)
void genExtdefs(treeNode* node,int type)
{
    switch(type)
    {
        case 1:
            genExtdef(node->child[0], node->child[0]->type);
            genExtdefs(node->child[1], node->child[1]->type);
            break;
        case 2:
            break;
    }
}

// Assembly:
cmpl $0x1, %esi
jne 0xd81d
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x28(%rbx), %rax
movq (%rax), %rdi
movl 0x24(%rdi), %esi
callq 0xd81e
movq 0x28(%rbx), %rax
movq 0x8(%rax), %rbx
cmpl $0x1, 0x24(%rbx)
je 0xd7fa
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/zyearn[P]SmallC/codegen.cpp
// Function: genExtvars(treeNode*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void genExtvars(treeNode* node, int type, string scope)
{
    switch(type)
    {
        case 1:
        genDec(node->child[0], node->child[0]->type, "_G");
        break;
        case 2:
        genDec(node->child[0], node->child[0]->type, "_G");
        genExtvars(node->child[2], node->child[2]->type, "_G");
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdi, %rbx
cmpl $0x2, %esi
je 0xdec6
cmpl $0x1, %esi
jne 0xdf61
movq 0x28(%rbx), %rax
movq (%rax), %rbx
movl 0x24(%rbx), %r14d
leaq -0x78(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x139f6(%rip), %rsi     # 0x2188c
leaq 0x139f1(%rip), %rdx     # 0x2188e
leaq -0x88(%rbp), %r15
movq %r15, %rdi
callq 0xb0aa
movq %rbx, %rdi
movl %r14d, %esi
movq %r15, %rdx
callq 0xe092
movq -0x88(%rbp), %rdi
jmp 0xdf50
movq 0x28(%rbx), %rax
movq (%rax), %r14
movl 0x24(%r14), %r15d
leaq -0x38(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x139ac(%rip), %rsi     # 0x2188c
leaq 0x139a7(%rip), %rdx     # 0x2188e
leaq -0x48(%rbp), %r12
movq %r12, %rdi
callq 0xb0aa
movq %r14, %rdi
movl %r15d, %esi
movq %r12, %rdx
callq 0xe092
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0xdf16
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x28(%rbx), %rax
movq 0x10(%rax), %rbx
movl 0x24(%rbx), %r14d
leaq -0x58(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x1395b(%rip), %rsi     # 0x2188c
leaq 0x13956(%rip), %rdx     # 0x2188e
leaq -0x68(%rbp), %rdi
callq 0xb0aa
movq %rbx, %rdi
movl %r14d, %esi
callq 0xde5a
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0xdf61
movq (%r13), %rsi
incq %rsi
callq 0x21e0
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x68(%rbp), %rdi
jmp 0xdf8c
movq %rax, %rbx
movq -0x48(%rbp), %rdi
jmp 0xdf8c
movq %rax, %rbx
movq -0x88(%rbp), %rdi
cmpq %r13, %rdi
je 0xdf9d
movq (%r13), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2360
// File: /workspace/github_c_makefile_star2_O3/zyearn[P]SmallC/codegen.cpp
// Function: genDefs(treeNode*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void genDefs(treeNode* node, int type, string scope)
{   
    //printf("has entered genDefs() ,type =%d \n", type);
    
    switch(type)
    {
        case 1:
    //  printf("ready to enter genDef()\n");
        genDef(node->child[0], node->child[0]->type, scope);
        genDefs(node->child[1], node->child[1]->type, scope);
        break;
        case 2:
        /*
        if(FT[scope] == 0)
        {
            FT[scope] = new map<string, int>();
        }*/
        break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
cmpl $0x1, %esi
jne 0xea18
movq %rdx, %rbx
movq %rdi, %r14
movq 0x28(%rdi), %rax
movq (%rax), %r15
leaq -0x58(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rdx), %rsi
movq 0x8(%rdx), %rdx
addq %rsi, %rdx
leaq -0x68(%rbp), %r12
movq %r12, %rdi
callq 0xb00c
movq %r15, %rdi
movq %r12, %rdx
callq 0x1df05
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0xe9cb
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x28(%r14), %rax
movq 0x8(%rax), %r14
movl 0x24(%r14), %r15d
leaq -0x38(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %rbx
movq %rbx, %rdi
callq 0xb00c
movq %r14, %rdi
movl %r15d, %esi
movq %rbx, %rdx
callq 0xe966
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0xea18
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x48(%rbp), %rdi
jmp 0xea37
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0xea48
movq (%r13), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2360
// File: /workspace/github_c_makefile_star2_O3/zyearn[P]SmallC/codegen.cpp
// Function: genStmts(treeNode*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int)
void genStmts(treeNode* node, int type, string scope, int labelN)
{
    switch(type)
    {
        case 1:
        genStmt(node->child[0], node->child[0]->type, scope, labelN);
        //
                genStmts(node->child[1], node->child[1]->type, scope, labelN);
        break;
        case 2:
        break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
cmpl $0x1, %esi
jne 0xeb14
movq %rdx, %r14
movq %rdi, %r15
movq 0x28(%rdi), %rax
movl %ecx, -0x2c(%rbp)
movq (%rax), %r12
movl 0x24(%r12), %ebx
leaq -0x40(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rdx), %rsi
movq 0x8(%rdx), %rdx
addq %rsi, %rdx
leaq -0x50(%rbp), %rdi
callq 0xb00c
movq %r12, %rdi
movl -0x2c(%rbp), %r12d
movl %ebx, %esi
leaq -0x50(%rbp), %rdx
movl %r12d, %ecx
callq 0xeb4c
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0xeac4
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x28(%r15), %rax
movq 0x8(%rax), %rbx
movl 0x24(%rbx), %r15d
leaq -0x60(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
addq %rsi, %rdx
leaq -0x70(%rbp), %r14
movq %r14, %rdi
callq 0xb00c
movq %rbx, %rdi
movl %r15d, %esi
movq %r14, %rdx
movl %r12d, %ecx
callq 0xea50
movq -0x70(%rbp), %rdi
cmpq %r13, %rdi
je 0xeb14
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x21e0
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x70(%rbp), %rdi
jmp 0xeb33
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r13, %rdi
je 0xeb44
movq (%r13), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2360
// File: /workspace/github_c_makefile_star2_O3/zyearn[P]SmallC/codegen.cpp
// Function: genDecs(treeNode*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void genDecs(treeNode* node, int type, string scope)
{
    //printf("has entered genDecs()\n");

    switch(type)
    {
        case 1:
        genDec(node->child[0],node->child[0]->type, scope);
        genDecs(node->child[2],node->child[2]->type, scope);
        break;
        case 2:
        genDec(node->child[0],node->child[0]->type, scope);
        break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdx, %rbx
movq %rdi, %r14
cmpl $0x2, %esi
je 0x1e046
cmpl $0x1, %esi
jne 0x1e092
movq 0x28(%r14), %rax
movq (%rax), %r15
movl 0x24(%r15), %r12d
leaq -0x38(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %rdi
callq 0xb00c
movq %r15, %rdi
movl %r12d, %esi
leaq -0x48(%rbp), %rdx
callq 0xe092
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x1e002
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x28(%r14), %rax
movq 0x10(%rax), %r14
movl 0x24(%r14), %r15d
leaq -0x78(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq -0x88(%rbp), %rbx
movq %rbx, %rdi
callq 0xb00c
movq %r14, %rdi
movl %r15d, %esi
movq %rbx, %rdx
callq 0x1df8f
movq -0x88(%rbp), %rdi
jmp 0x1e081
movq 0x28(%r14), %rax
movq (%rax), %r14
movl 0x24(%r14), %r15d
leaq -0x58(%rbp), %r13
movq %r13, -0x10(%r13)
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq -0x68(%rbp), %rbx
movq %rbx, %rdi
callq 0xb00c
movq %r14, %rdi
movl %r15d, %esi
movq %rbx, %rdx
callq 0xe092
movq -0x68(%rbp), %rdi
cmpq %r13, %rdi
je 0x1e092
movq (%r13), %rsi
incq %rsi
callq 0x21e0
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x88(%rbp), %rdi
jmp 0x1e0bd
movq %rax, %rbx
movq -0x68(%rbp), %rdi
jmp 0x1e0bd
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x1e0ce
movq (%r13), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2360
// File: /workspace/github_c_makefile_star2_O3/zyearn[P]SmallC/codegen.cpp
// Function: genInit(treeNode*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void genInit(treeNode* node, int type, string scope)
{
    switch(type)
    {
        case 1:
            genExp(node->child[0], node->child[0]->type, scope);
            break;
        case 2:// struct
            break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
cmpl $0x1, %esi
jne 0x1e139
movq 0x28(%rdi), %rax
movq (%rax), %rbx
movl 0x24(%rbx), %r14d
leaq -0x30(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rdx), %rsi
movq 0x8(%rdx), %rdx
addq %rsi, %rdx
leaq -0x40(%rbp), %r15
movq %r15, %rdi
callq 0xb00c
movq %rbx, %rdi
movl %r14d, %esi
movq %r15, %rdx
xorl %ecx, %ecx
callq 0x10531
movq -0x40(%rbp), %rdi
cmpq %r12, %rdi
je 0x1e139
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x21e0
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x40(%rbp), %rdi
cmpq %r12, %rdi
je 0x1e15e
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2360
// File: /workspace/github_c_makefile_star2_O3/Joy-Division[P]tools-zoe/pak-extract.c
// Function: main
int main( int argc, char **argv ) {
	
	fileEntry workfile;
	
	unsigned char temp[4];
	
	memset( workfile.name, 0, FILENAMELENGTH );
	
	if( argc < 2 ) {
		printf("Not enough args!\nUse: %s PAK-file\n", argv[0]);
		return 1;
	}
	
	unsigned int numFiles, workfiles;
	FILE *f, *o;
	
	if( !(f = fopen( argv[1], "rb" ))) {
		printf("Couldnt open file %s\n", argv[1]);
		return 1;
	}
	
	fread( temp, 4, 1, f );
	numFiles  = temp[3] << 24;
	numFiles |= temp[2] << 16;
	numFiles |= temp[1] << 8;
	numFiles |= temp[0];
	
	fseek( f, 16, SEEK_SET );
	
	printf("Number of files: %u\n", numFiles );
	
	for( workfiles = 0; workfiles < numFiles; workfiles++ ) {
		fread( &workfile, sizeof(workfile), 1, f );
		printf("Current file: %s\n", workfile.name);
		
		if( !(o = fopen( workfile.name, "wb" ))) {
			printf("Couldnt open output %s\n", workfile.name);
			return 1;
		}
		
		writeFile( f, workfile.size, o );
		fclose(o);
		memset( workfile.name, 0, FILENAMELENGTH );
	}
	printf("Done.\n");
	fclose(f);
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rsi, %r14
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movaps %xmm0, 0x20(%rsp)
cmpl $0x1, %edi
jg 0x129b
movq (%r14), %rsi
leaq 0xdbc(%rip), %rdi       # 0x2052
jmp 0x13b9
movq 0x8(%r14), %rdi
leaq 0xdcf(%rip), %rsi       # 0x2075
callq 0x1080
testq %rax, %rax
je 0x13a0
movq %rax, %rbx
leaq 0xc(%rsp), %r14
movl $0x4, %esi
movl $0x1, %edx
movq %r14, %rdi
movq %rax, %rcx
callq 0x1040
movzwl 0x2(%r14), %ebp
shll $0x10, %ebp
movzbl 0x1(%r14), %r15d
shll $0x8, %r15d
leal (%r15,%rbp), %r12d
movzbl (%r14), %r14d
movl $0x10, %esi
movq %rbx, %rdi
xorl %edx, %edx
callq 0x1070
leaq 0xd8e(%rip), %rdi       # 0x208e
movl %r12d, %esi
orl %r14d, %esi
xorl %eax, %eax
callq 0x1060
orl %r14d, %r12d
je 0x1388
addl %r15d, %ebp
addl %r14d, %ebp
leaq 0x10(%rsp), %r14
leaq 0xd7f(%rip), %r15       # 0x20a3
leaq 0xd8a(%rip), %r12       # 0x20b5
movl $0x30, %esi
movl $0x1, %edx
movq %r14, %rdi
movq %rbx, %rcx
callq 0x1040
movq %r15, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x1060
movq %r14, %rdi
movq %r12, %rsi
callq 0x1080
testq %rax, %rax
je 0x13ad
movq %rax, %r13
movl 0x3c(%rsp), %esi
movq %rbx, %rdi
movq %rax, %rdx
callq 0x11ac
movq %r13, %rdi
callq 0x1050
xorps %xmm0, %xmm0
movaps %xmm0, 0x10(%rsp)
movaps %xmm0, 0x20(%rsp)
decl %ebp
jne 0x132b
leaq 0xd41(%rip), %rdi       # 0x20d0
callq 0x1030
movq %rbx, %rdi
callq 0x1050
xorl %eax, %eax
jmp 0x13c5
movq 0x8(%r14), %rsi
leaq 0xccd(%rip), %rdi       # 0x2078
jmp 0x13b9
leaq 0xd04(%rip), %rdi       # 0x20b8
leaq 0x10(%rsp), %rsi
xorl %eax, %eax
callq 0x1060
movl $0x1, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/hkshenSmart[P]ONVIF-discovery_cs/discovery-nvt.c
// Function: main
int main(int argc, char *argv[])
{
	struct soap soap;
	struct ip_mreq mcast;
	int count=1;
	
	soap_init2(&soap, SOAP_IO_UDP|SOAP_IO_FLUSH, SOAP_IO_UDP|SOAP_IO_FLUSH);
	
    soap_set_namespaces(&soap, namespaces); 
	//soap_set_mode(&soap, SOAP_C_UTFSTRING);
	
	if(!soap_valid_socket(soap_bind(&soap, NULL, 3702, 10)))
	{ 
		soap_print_fault(&soap, stderr);
		exit(1);
	}
	
	mcast.imr_multiaddr.s_addr = inet_addr("239.255.255.250");
	mcast.imr_interface.s_addr = htonl(INADDR_ANY);
	if(setsockopt(soap.master, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char*)&mcast, sizeof(mcast)) < 0)
	{
		printf("setsockopt error!\n");
		return 0;
	}	

	for(;;)
	{ 
		printf("Now Accepting requests...waiting\n");
		if(soap_serve(&soap))
			soap_print_fault(&soap, stderr);
	
		soap_destroy(&soap);
		soap_end(&soap);

		printf("�ͻ��˵�IP��ַ��\n");
		printf("Accepted count:%d, connection from IP = %lu.%lu.%lu.%lu socket = %d \r\n",
				count, ((soap.ip)>>24)&0xFF, ((soap.ip)>>16)&0xFF, ((soap.ip)>>8)&0xFF, (soap.ip)&0xFF, (soap.socket));
		count++;
		printf("====================================================================\r\n");

	}
	
	soap_done(&soap);
	
	return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x27888, %rsp          # imm = 0x27888
leaq 0x18(%rsp), %rbx
movq %rbx, %rdi
movl $0x4, %esi
movl $0x4, %edx
callq 0x17a6b
leaq 0x30bac(%rip), %rsi     # 0x341d0
movq %rbx, %rdi
callq 0x1a0d4
movq %rbx, %rdi
xorl %esi, %esi
movl $0xe76, %edx            # imm = 0xE76
movl $0xa, %ecx
callq 0x14355
cmpl $-0x1, %eax
je 0x3753
leaq 0x21b76(%rip), %rdi     # 0x251c6
callq 0x31f0
leaq 0x10(%rsp), %rcx
movl %eax, (%rcx)
movl $0x0, 0x4(%rcx)
movl 0xc148(%rsp), %edi
xorl %esi, %esi
movl $0x23, %edx
movl $0x8, %r8d
callq 0x30b0
testl %eax, %eax
js 0x3733
movl $0x1, %ebx
leaq 0x18(%rsp), %r15
leaq 0x21ba9(%rip), %r12     # 0x2523e
movl $0xff, %r14d
leaq 0x21b34(%rip), %r13     # 0x251d6
leaq 0x21ba6(%rip), %rbp     # 0x2524f
leaq 0x21b6d(%rip), %rdi     # 0x2521d
callq 0x3090
movq %r15, %rdi
callq 0xfd00
testl %eax, %eax
je 0x36d3
movq 0x30930(%rip), %rax     # 0x33ff8
movq (%rax), %rsi
movq %r15, %rdi
callq 0x23eb3
movq %r15, %rdi
xorl %esi, %esi
callq 0x18b6f
movq %r15, %rdi
callq 0x1a8f1
movq %r12, %rdi
callq 0x3090
movq 0x1f238(%rsp), %rdx
movl %edx, %ecx
movl %edx, %r8d
movzbl %dl, %r9d
shrl $0x18, %edx
shrl $0x10, %ecx
andl %r14d, %ecx
shrl $0x8, %r8d
andl %r14d, %r8d
movl 0xc14c(%rsp), %eax
movl %eax, (%rsp)
movq %r13, %rdi
movl %ebx, %esi
xorl %eax, %eax
callq 0x3150
incl %ebx
movq %rbp, %rdi
callq 0x3090
jmp 0x36a9
leaq 0x21b5b(%rip), %rdi     # 0x25295
callq 0x3090
xorl %eax, %eax
addq $0x27888, %rsp          # imm = 0x27888
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x3089e(%rip), %rax     # 0x33ff8
movq (%rax), %rsi
leaq 0x18(%rsp), %rdi
callq 0x23eb3
movl $0x1, %edi
callq 0x3320
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O3/hkshenSmart[P]ONVIF-discovery_cs/soapServer.c
// Function: soap_serve
int SOAP_FMAC6 soap_serve(struct soap *soap)
{
#ifndef WITH_FASTCGI
	unsigned int k = soap->max_keep_alive;
#endif
	do
	{
#ifndef WITH_FASTCGI
		if (soap->max_keep_alive > 0 && !--k)
			soap->keep_alive = 0;
#endif
		if (soap_begin_serve(soap))
		{	if (soap->error >= SOAP_STOP)
				continue;
			return soap->error;
		}
		if (soap_serve_request(soap) || (soap->fserveloop && soap->fserveloop(soap)))
		{
#ifdef WITH_FASTCGI
			soap_send_fault(soap);
#else
			return soap_send_fault(soap);
#endif
		}

#ifdef WITH_FASTCGI
		soap_destroy(soap);
		soap_end(soap);
	} while (1);
#else
	}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x1f23c(%rdi), %eax
movl %eax, %ebp
testl %eax, %eax
je 0xfd21
decl %ebp
jne 0xfd21
movw $0x0, 0x1f22c(%rbx)
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0x21a6f
testl %eax, %eax
je 0xfd3c
movl 0x1f274(%rbx), %eax
cmpl $0x3e7, %eax            # imm = 0x3E7
jg 0xfd5d
jmp 0xfd71
movq %rbx, %rdi
callq 0xfd86
testl %eax, %eax
jne 0xfd78
movq 0xc050(%rbx), %rax
testq %rax, %rax
je 0xfd5d
movq %rbx, %rdi
callq *%rax
testl %eax, %eax
jne 0xfd78
cmpw $0x0, 0x1f22c(%rbx)
je 0xfd6f
movl 0x1f23c(%rbx), %eax
jmp 0xfd0e
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x22117
// File: /workspace/github_c_makefile_star2_O3/hkshenSmart[P]ONVIF-discovery_cs/soapServer.c
// Function: soap_serve_request
SOAP_FMAC6 soap_serve_request(struct soap *soap)
{
	soap_peek_element(soap);
	if (!soap_match_tag(soap, soap->tag, "d:Probe"))
		return soap_serve___dndl__Probe(soap);
	if (!soap_match_tag(soap, soap->tag, "d:Hello"))
		return soap_serve___dnrd__Hello(soap);
	if (!soap_match_tag(soap, soap->tag, "d:Bye"))
		return soap_serve___dnrd__Bye(soap);
	return soap->error = SOAP_NO_METHOD;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
callq 0x12234
leaq 0x1c998(%rbx), %r14
leaq 0x15b88(%rip), %rdx     # 0x25928
movq %rbx, %rdi
movq %r14, %rsi
callq 0x141e5
testl %eax, %eax
je 0xfdf2
leaq 0x15d6b(%rip), %rdx     # 0x25b21
movq %rbx, %rdi
movq %r14, %rsi
callq 0x141e5
testl %eax, %eax
je 0xfe01
leaq 0x15d72(%rip), %rdx     # 0x25b3e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x141e5
testl %eax, %eax
je 0xfe10
movl $0xd, 0x1f274(%rbx)
movl $0xd, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0xfe1f
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0xfff1
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x101c3
// File: /workspace/github_c_makefile_star2_O3/dlbeer[P]dhara/tests/hamming.c
// Function: test_properties
static void test_properties(const uint8_t *block)
{
	hamming_ecc_t e;
	int i;

	e = hamming_syndrome(block, HAMMING_CHUNK_SIZE,
			     block + HAMMING_CHUNK_SIZE);
	assert(!e);

	for (i = 0; i < 20; i++)
		flip_test(block);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x210, %rsp            # imm = 0x210
movq %rdi, %rbx
leaq 0x200(%rdi), %rdx
movl $0x200, %esi            # imm = 0x200
callq 0x1288
testl %eax, %eax
jne 0x14a4
movl $0x14, %ebp
leaq 0x200(%rsp), %r14
movq %rsp, %r15
movabsq $0x3fa08f29421cd4c1, %r12 # imm = 0x3FA08F29421CD4C1
movl $0x203, %edx            # imm = 0x203
movq %r15, %rdi
movq %rbx, %rsi
callq 0x1060
callq 0x1070
movq %rax, %rcx
imulq %r12
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0xa, %rdx
addq %rax, %rdx
imulq $0x1018, %rdx, %rax     # imm = 0x1018
subq %rax, %rcx
movl %ecx, %eax
sarl $0x3, %eax
andb $0x7, %cl
movl $0x1, %edx
shll %cl, %edx
cltq
xorb %dl, (%rsp,%rax)
movl $0x200, %esi            # imm = 0x200
movq %r15, %rdi
movq %r14, %rdx
callq 0x1288
testl %eax, %eax
je 0x1466
movl $0x200, %esi            # imm = 0x200
movq %r15, %rdi
movl %eax, %edx
callq 0x12a1
movl $0x200, %edx            # imm = 0x200
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1080
testl %eax, %eax
jne 0x1485
decl %ebp
jne 0x13d0
addq $0x210, %rsp            # imm = 0x210
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0xca4(%rip), %rdi       # 0x2111
leaq 0xc9f(%rip), %rsi       # 0x2113
leaq 0xcce(%rip), %rcx       # 0x2149
movl $0x2e, %edx
callq 0x1040
leaq 0xcdd(%rip), %rdi       # 0x2169
leaq 0xc80(%rip), %rsi       # 0x2113
leaq 0xcaf(%rip), %rcx       # 0x2149
movl $0x32, %edx
callq 0x1040
leaq 0xc65(%rip), %rdi       # 0x2110
leaq 0xc61(%rip), %rsi       # 0x2113
leaq 0xc6a(%rip), %rcx       # 0x2123
movl $0x3c, %edx
callq 0x1040
// File: /workspace/github_c_makefile_star2_O3/robertdavidgraham[P]wc2/wc2.c
// Function: print_results
static void
print_results(const char *filename, struct results *results, struct config *cfg)
{
    int needs_space = 0; /* space needed between output */
    unsigned width = cfg->column_width;

    /* -l */
    if (cfg->is_counting_lines)
        printf("%s%*lu", needs_space++?" ":"", width, results->line_count);

    /* -w */
    if (cfg->is_counting_words)
        printf("%s%*lu", needs_space++?" ":"", width, results->word_count);

    /* -c */
    if (cfg->is_counting_bytes)
        printf("%s%*lu", needs_space++?" ":"", width, results->byte_count);

    /* -m */
    if (cfg->is_counting_chars)
        printf("%s%*lu", needs_space++?" ":"", width, results->char_count);

    /* NULL if <stdin>, "total" for the last line showing totals, otherwise,
     * the name of the file that was processed */
    if (filename)
        printf("%s%s", needs_space++?" ":"", filename);
    printf("\n");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movl 0xc(%rdx), %r13d
movl 0x20(%rdx), %ebp
testl %r13d, %r13d
je 0x3148
movq (%r14), %rcx
leaq 0xf73(%rip), %rdi       # 0x40a3
leaq 0xf5b(%rip), %rsi       # 0x4092
movl %ebp, %edx
xorl %eax, %eax
callq 0x10c0
movl $0x1, %r12d
jmp 0x314b
xorl %r12d, %r12d
cmpl $0x0, 0x10(%r15)
je 0x317e
incl %r12d
testl %r13d, %r13d
leaq 0xf33(%rip), %rax       # 0x4092
leaq 0xf44(%rip), %rsi       # 0x40aa
cmoveq %rax, %rsi
movq 0x8(%r14), %rcx
leaq 0xf2e(%rip), %rdi       # 0x40a3
movl %ebp, %edx
xorl %eax, %eax
callq 0x10c0
cmpl $0x0, 0x14(%r15)
je 0x31b6
leal 0x1(%r12), %r13d
testl %r12d, %r12d
leaq 0xefe(%rip), %rax       # 0x4092
leaq 0xf0f(%rip), %rsi       # 0x40aa
cmoveq %rax, %rsi
movq 0x18(%r14), %rcx
leaq 0xef9(%rip), %rdi       # 0x40a3
movl %ebp, %edx
xorl %eax, %eax
callq 0x10c0
movl %r13d, %r12d
cmpl $0x0, 0x18(%r15)
je 0x31ec
testl %r12d, %r12d
leaq 0xecb(%rip), %rax       # 0x4092
leaq 0xedc(%rip), %rsi       # 0x40aa
cmoveq %rax, %rsi
movq 0x10(%r14), %rcx
leaq 0xec6(%rip), %rdi       # 0x40a3
movl %ebp, %edx
xorl %eax, %eax
callq 0x10c0
movl $0x1, %r12d
testq %rbx, %rbx
je 0x3217
testl %r12d, %r12d
leaq 0xe97(%rip), %rax       # 0x4092
leaq 0xea8(%rip), %rsi       # 0x40aa
cmoveq %rax, %rsi
leaq 0xe9f(%rip), %rdi       # 0x40ac
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10c0
movl $0xa, %edi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1040
// File: /workspace/github_c_makefile_star2_O3/robertdavidgraham[P]wc2/wc2.c
// Function: print_help
static void
print_help(void)
{
    printf("wc -- word, line, and byte or character count\n");
    printf("use:\n wc [-c|-m][-lw][file...]\n");
    printf("where:\n");
    printf(" -c\tPrint the number of bytes in each input file.\n");
    printf(" -l\tPrint the number of newlines in each input file.\n");
    printf(" -m\tPrint number of multibyte characters in each input file.\n");
    printf(" -w\tPrint the number of words in each input file.\n");
    printf("If no files specified, reads from stdin.\n");
    printf("If no options specified, -lwc will be used.\n");
}

// Assembly:
pushq %rax
leaq 0xe7a(%rip), %rdi       # 0x40b1
callq 0x1070
leaq 0xe9c(%rip), %rdi       # 0x40df
callq 0x1070
leaq 0xeaf(%rip), %rdi       # 0x40fe
callq 0x1070
leaq 0xeaa(%rip), %rdi       # 0x4105
callq 0x1070
leaq 0xed0(%rip), %rdi       # 0x4137
callq 0x1070
leaq 0xef9(%rip), %rdi       # 0x416c
callq 0x1070
leaq 0xf2a(%rip), %rdi       # 0x41a9
callq 0x1070
leaq 0xf50(%rip), %rdi       # 0x41db
callq 0x1070
leaq 0xf6d(%rip), %rdi       # 0x4204
popq %rax
jmp 0x1070
// File: /workspace/github_c_makefile_star2_O3/Tarsnap[P]spiped/spiped/dispatch.c
// Function: dispatch_accept
void *
dispatch_accept(int s, const char * tgt, double rtime, struct sock_addr ** sas,
    const struct sock_addr * sa_b, int decr, int nopfs, int requirepfs,
    int nokeepalive, const struct proto_secret * K, size_t nconn_max,
    double timeo, int * conndone)
{
	struct accept_state * A;

	/* Bake a cookie. */
	if ((A = malloc(sizeof(struct accept_state))) == NULL)
		goto err0;
	A->s = s;
	A->tgt = tgt;
	A->sas = sas;
	A->sa_b = sa_b;
	A->rtime = rtime;
	A->decr = decr;
	A->nopfs = nopfs;
	A->requirepfs = requirepfs;
	A->nokeepalive = nokeepalive;
	A->conndone = conndone;
	A->shutdown_requested = 0;
	A->K = K;
	A->nconn = 0;
	A->nconn_max = nconn_max;
	A->timeo = timeo;
	A->T = NULL;
	A->accept_cookie = NULL;
	A->dnstimer_cookie = NULL;
	LIST_INIT(&A->conn_cookies);

	/* If address re-resolution is enabled... */
	if (rtime > 0.0) {
		/* Launch an address resolution thread. */
		if ((A->T = dnsthread_spawn()) == NULL)
			goto err1;

		/* Re-resolve the target address after a while. */
		if ((A->dnstimer_cookie = events_timer_register_double(
		    callback_resolveagain, A, A->rtime)) == NULL)
			goto err2;
	}

	/* Accept a connection. */
	if (doaccept(A))
		goto err3;

	/* Success! */
	return (A);

err3:
	if (A->dnstimer_cookie != NULL)
		events_timer_cancel(A->dnstimer_cookie);
err2:
	if (A->T != NULL)
		dnsthread_kill(A->T);
err1:
	free(A);
err0:
	/* Failure! */
	return (NULL);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movsd %xmm1, 0x10(%rsp)
movl %r9d, 0x4(%rsp)
movl %r8d, %r14d
movq %rcx, %r15
movq %rdx, %r12
movsd %xmm0, 0x8(%rsp)
movq %rsi, %r13
movl %edi, %ebp
movl $0x88, %edi
callq 0x31a0
testq %rax, %rax
je 0x4fed
movq %rax, %rbx
xorpd %xmm0, %xmm0
movsd 0x8(%rsp), %xmm1
ucomisd %xmm0, %xmm1
movq 0x70(%rsp), %rax
movq 0x68(%rsp), %rcx
movq 0x60(%rsp), %rdx
movl 0x58(%rsp), %esi
movl 0x50(%rsp), %edi
movl %ebp, (%rbx)
movq %r13, 0x8(%rbx)
movq %r12, 0x10(%rbx)
movq %r15, 0x18(%rbx)
movsd %xmm1, 0x20(%rbx)
movl %r14d, 0x28(%rbx)
movl 0x4(%rsp), %r8d
movl %r8d, 0x2c(%rbx)
movl %edi, 0x30(%rbx)
movl %esi, 0x34(%rbx)
movq %rax, 0x38(%rbx)
movl $0x0, 0x40(%rbx)
movq %rdx, 0x48(%rbx)
movq $0x0, 0x50(%rbx)
movq %rcx, 0x58(%rbx)
movsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x60(%rbx)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x68(%rbx)
movupd %xmm0, 0x78(%rbx)
jbe 0x4fba
callq 0x8fd0
movq %rax, 0x80(%rbx)
testq %rax, %rax
je 0x4fe5
movsd 0x20(%rbx), %xmm0
leaq 0x58(%rip), %rdi        # 0x5001
movq %rbx, %rsi
callq 0x665d
movq %rax, 0x70(%rbx)
testq %rax, %rax
je 0x4fd4
movq %rbx, %rdi
callq 0x5023
testl %eax, %eax
je 0x4fef
movq 0x70(%rbx), %rdi
testq %rdi, %rdi
je 0x4fd4
callq 0x6692
movq 0x80(%rbx), %rdi
testq %rdi, %rdi
je 0x4fe5
callq 0x9675
movq %rbx, %rdi
callq 0x32b0
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/Tarsnap[P]spiped/spiped/dispatch.c
// Function: doaccept
static int
doaccept(struct accept_state * A)
{
	int rc = 0;

	/* Warn about reaching nconn_max. */
	if (A->nconn >= A->nconn_max) {
		warn0("Maximum number of connections (%zu) reached",
		    A->nconn_max);
	}

	/* If we can, accept a new connection. */
	if ((A->nconn < A->nconn_max) && (A->accept_cookie == NULL) &&
	    !A->shutdown_requested) {
		if ((A->accept_cookie =
		    network_accept(A->s, callback_gotconn, A)) == NULL)
			rc = -1;
	}

	/* Return success/fail status. */
	return (rc);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq 0x50(%rdi), %rcx
movq 0x58(%rdi), %rsi
cmpq %rsi, %rcx
jb 0x5055
leaq 0xc380(%rip), %rdi      # 0x113bb
xorl %eax, %eax
callq 0x8eab
callq 0x3480
movl $0x0, (%rax)
movq 0x50(%rbx), %rcx
movq 0x58(%rbx), %rsi
xorl %eax, %eax
cmpq %rsi, %rcx
jae 0x5089
cmpq $0x0, 0x68(%rbx)
jne 0x5089
cmpl $0x0, 0x40(%rbx)
jne 0x5089
movl (%rbx), %edi
leaq 0x15d(%rip), %rsi       # 0x51cf
movq %rbx, %rdx
callq 0x680c
movq %rax, %rcx
movq %rax, 0x68(%rbx)
xorl %eax, %eax
cmpq $0x1, %rcx
sbbl %eax, %eax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/Tarsnap[P]spiped/spiped/dispatch.c
// Function: dispatch_shutdown
void
dispatch_shutdown(void * dispatch_cookie)
{
	struct accept_state * A = dispatch_cookie;
	struct conn_list_node * C;

	/*
	 * Shutdown any open connections.  proto_conn_drop() will call
	 * callback_conndied(), which removes the relevant conn_list_node from
	 * the list of conn_cookies.
	 */
	while ((C = LIST_FIRST(&A->conn_cookies)) != NULL) {
		proto_conn_drop(C->conn_cookie, PROTO_CONN_CANCELLED);

		/*
		 * Convince static analyzers that C->conn_cookie is no longer
		 * in the list.
		 */
		assert(C != LIST_FIRST(&A->conn_cookies));
	}

	if (A->accept_cookie != NULL)
		network_accept_cancel(A->accept_cookie);
	if (A->dnstimer_cookie != NULL)
		events_timer_cancel(A->dnstimer_cookie);
	if (A->T != NULL)
		dnsthread_kill(A->T);
	sock_addr_freelist(A->sas);
	if (close(A->s))
		warnp("close");
	free(A);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x78(%rdi), %r14
testq %r14, %r14
je 0x50d3
movq (%r14), %rdi
movl $0x1, %esi
callq 0x9804
movq 0x78(%rbx), %rax
cmpq %rax, %r14
movq %rax, %r14
jne 0x5096
leaq 0xc2b4(%rip), %rdi      # 0x1136f
leaq 0xc2cf(%rip), %rsi      # 0x11391
leaq 0xc2d3(%rip), %rcx      # 0x1139c
movl $0x132, %edx            # imm = 0x132
callq 0x3150
movq 0x68(%rbx), %rdi
testq %rdi, %rdi
je 0x50e1
callq 0x68ca
movq 0x70(%rbx), %rdi
testq %rdi, %rdi
je 0x50ef
callq 0x6692
movq 0x80(%rbx), %rdi
testq %rdi, %rdi
je 0x5100
callq 0x9675
movq 0x10(%rbx), %rdi
callq 0x841a
movl (%rbx), %edi
callq 0x30d0
testl %eax, %eax
je 0x5146
callq 0x3480
cmpl $0x0, (%rax)
je 0x5138
movq %rax, %r14
leaq 0xc5b5(%rip), %rdi      # 0x116dd
xorl %eax, %eax
callq 0x8d8c
movl $0x0, (%r14)
jmp 0x5146
leaq 0xc59e(%rip), %rdi      # 0x116dd
xorl %eax, %eax
callq 0x8eab
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x32b0
// File: /workspace/github_c_makefile_star2_O3/Tarsnap[P]spiped/spiped/dispatch.c
// Function: callback_gotconn
static int
callback_gotconn(void * cookie, int s)
{
	struct accept_state * A = cookie;
	struct sock_addr ** sas;
	struct conn_list_node * node_new;

	/* This accept is no longer in progress. */
	A->accept_cookie = NULL;

	/* If we got a -1 descriptor, something went seriously wrong. */
	if (s == -1) {
		warnp("network_accept failed");
		goto err0;
	}

	/* We have gained a connection. */
	A->nconn += 1;

	/* Duplicate the target address list. */
	if ((sas = sock_addr_duplist(A->sas)) == NULL)
		goto err1;

	/* Create new conn_list_node. */
	if ((node_new = malloc(sizeof(struct conn_list_node))) == NULL)
		goto err2;
	node_new->A = A;

	/* Create a new connection. */
	if ((node_new->conn_cookie = proto_conn_create(s, sas, A->sa_b,
	    A->decr, A->nopfs, A->requirepfs, A->nokeepalive, A->K,
	    A->timeo, callback_conndied, node_new)) == NULL) {
		warnp("Failure setting up new connection");
		goto err3;
	}

	/* Insert node_new to the beginning of the conn_cookies list. */
	LIST_INSERT_HEAD(&A->conn_cookies, node_new, entries);

	/* Accept another connection if we can. */
	if (doaccept(A))
		goto err0;

	/* Success! */
	return (0);

err3:
	free(node_new);
err2:
	sock_addr_freelist(sas);
err1:
	A->nconn -= 1;
	if (close(s))
		warnp("close");
err0:
	/* Failure! */
	return (-1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq $0x0, 0x68(%rdi)
cmpl $-0x1, %esi
je 0x5297
movl %esi, %ebp
movq %rdi, %rbx
incq 0x50(%rdi)
movq 0x10(%rdi), %rdi
callq 0x89e4
testq %rax, %rax
je 0x52f9
movq %rax, %r14
movl $0x20, %edi
callq 0x31a0
testq %rax, %rax
je 0x52f1
movq %rax, %r15
movq %rbx, 0x18(%rax)
movq 0x18(%rbx), %rdx
movl 0x28(%rbx), %ecx
movl 0x2c(%rbx), %r8d
movl 0x30(%rbx), %r9d
movl 0x34(%rbx), %eax
movsd 0x60(%rbx), %xmm0
leaq 0x109(%rip), %r10       # 0x5347
movl %ebp, %edi
movq %r14, %rsi
pushq %r15
pushq %r10
pushq 0x48(%rbx)
pushq %rax
callq 0x9916
addq $0x20, %rsp
movq %rax, (%r15)
testq %rax, %rax
je 0x52b6
leaq 0x78(%rbx), %rax
movq 0x78(%rbx), %rcx
movq %rcx, 0x8(%r15)
testq %rcx, %rcx
je 0x5278
movq %r15, %rdx
addq $0x8, %rdx
movq %rdx, 0x10(%rcx)
movq %r15, 0x78(%rbx)
movq %rax, 0x10(%r15)
movq %rbx, %rdi
callq 0x5023
testl %eax, %eax
jne 0x5339
xorl %eax, %eax
jmp 0x533e
callq 0x3480
cmpl $0x0, (%rax)
je 0x52ad
movq %rax, %rbx
leaq 0xc13c(%rip), %rdi      # 0x113e7
jmp 0x531c
leaq 0xc133(%rip), %rdi      # 0x113e7
jmp 0x5332
callq 0x3480
cmpl $0x0, (%rax)
je 0x52db
movq %rax, %r12
leaq 0xc133(%rip), %rdi      # 0x113fd
xorl %eax, %eax
callq 0x8d8c
movl $0x0, (%r12)
jmp 0x52e9
leaq 0xc11b(%rip), %rdi      # 0x113fd
xorl %eax, %eax
callq 0x8eab
movq %r15, %rdi
callq 0x32b0
movq %r14, %rdi
callq 0x841a
decq 0x50(%rbx)
movl %ebp, %edi
callq 0x30d0
testl %eax, %eax
je 0x5339
callq 0x3480
cmpl $0x0, (%rax)
je 0x532b
movq %rax, %rbx
leaq 0xc3c1(%rip), %rdi      # 0x116dd
xorl %eax, %eax
callq 0x8d8c
movl $0x0, (%rbx)
jmp 0x5339
leaq 0xc3ab(%rip), %rdi      # 0x116dd
xorl %eax, %eax
callq 0x8eab
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/Tarsnap[P]spiped/spiped/dispatch.c
// Function: callback_conndied
static int
callback_conndied(void * cookie, int reason)
{
	struct conn_list_node * node_ptr = cookie;
	struct accept_state * A = node_ptr->A;

	(void)reason; /* UNUSED */

	/* We should always have a non-empty list of conn_cookies. */
	assert(!LIST_EMPTY(&A->conn_cookies));

	/* We've lost a connection. */
	A->nconn -= 1;

	/* Remove the closed connection from the list of conn_cookies. */
	LIST_REMOVE(node_ptr, entries);

	/* Clean up the now-unused node. */
	free(node_ptr);

	/* If requested to do so, indicate that all connections are closed. */
	if (A->shutdown_requested && (A->nconn == 0))
		*A->conndone = 1;

	/* Maybe accept more connections. */
	return (doaccept(A));
}

// Assembly:
pushq %rbx
movq 0x18(%rdi), %rbx
cmpq $0x0, 0x78(%rbx)
je 0x5390
decq 0x50(%rbx)
movq 0x8(%rdi), %rax
movq 0x10(%rdi), %rcx
testq %rax, %rax
je 0x5368
movq %rcx, 0x10(%rax)
movq %rax, (%rcx)
callq 0x32b0
cmpl $0x0, 0x40(%rbx)
je 0x5387
cmpq $0x0, 0x50(%rbx)
jne 0x5387
movq 0x38(%rbx), %rax
movl $0x1, (%rax)
movq %rbx, %rdi
popq %rbx
jmp 0x5023
leaq 0xc088(%rip), %rdi      # 0x1141f
leaq 0xbff3(%rip), %rsi      # 0x11391
leaq 0xc098(%rip), %rcx      # 0x1143d
movl $0x7c, %edx
callq 0x3150
nop
// File: /workspace/github_c_makefile_star2_O3/Tarsnap[P]spiped/liball/../lib/proto/proto_conn.c
// Function: proto_conn_drop
int
proto_conn_drop(void * conn_cookie, int reason)
{
	struct conn_state * C = conn_cookie;
	int rc;

	/* Close the incoming connection. */
	if (close(C->s))
		warnp("close");

	/* Close the outgoing connection if it is open. */
	if ((C->t != -1) && close(C->t))
		warnp("close");

	/* Stop connecting if a connection is in progress. */
	if (C->connect_cookie != NULL)
		network_connect_cancel(C->connect_cookie);

	/* Free the target addresses if we haven't already done so. */
	sock_addr_freelist(C->sas);

	/* Stop handshaking if a handshake is in progress. */
	if (C->handshake_cookie != NULL)
		proto_handshake_cancel(C->handshake_cookie);

	/* Kill timeouts if they are pending. */
	if (C->connect_timeout_cookie != NULL)
		events_timer_cancel(C->connect_timeout_cookie);
	if (C->handshake_timeout_cookie != NULL)
		events_timer_cancel(C->handshake_timeout_cookie);

	/* Free protocol keys. */
	proto_crypt_free(C->k_f);
	proto_crypt_free(C->k_r);

	/* Shut down pipes. */
	if (C->pipe_f != NULL)
		proto_pipe_cancel(C->pipe_f);
	if (C->pipe_r != NULL)
		proto_pipe_cancel(C->pipe_r);

	/* Notify the upstream that we've dropped a connection. */
	rc = (C->callback_dead)(C->cookie, reason);

	/* Free the connection cookie. */
	free(C);

	/* Return success/fail status. */
	return (rc);
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %esi, %ebp
movq %rdi, %rbx
movl 0x38(%rdi), %edi
callq 0x30d0
testl %eax, %eax
je 0x984b
callq 0x3480
cmpl $0x0, (%rax)
je 0x983d
movq %rax, %r14
leaq 0x7eb0(%rip), %rdi      # 0x116dd
xorl %eax, %eax
callq 0x8d8c
movl $0x0, (%r14)
jmp 0x984b
leaq 0x7e99(%rip), %rdi      # 0x116dd
xorl %eax, %eax
callq 0x8eab
movl 0x3c(%rbx), %edi
cmpl $-0x1, %edi
je 0x988e
callq 0x30d0
testl %eax, %eax
je 0x988e
callq 0x3480
cmpl $0x0, (%rax)
je 0x9880
movq %rax, %r14
leaq 0x7e6d(%rip), %rdi      # 0x116dd
xorl %eax, %eax
callq 0x8d8c
movl $0x0, (%r14)
jmp 0x988e
leaq 0x7e56(%rip), %rdi      # 0x116dd
xorl %eax, %eax
callq 0x8eab
movq 0x40(%rbx), %rdi
testq %rdi, %rdi
je 0x989c
callq 0xf756
movq 0x10(%rbx), %rdi
callq 0x841a
movq 0x50(%rbx), %rdi
testq %rdi, %rdi
je 0x98b3
callq 0xa632
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0x98c1
callq 0x6692
movq 0x58(%rbx), %rdi
testq %rdi, %rdi
je 0x98cf
callq 0x6692
movq 0x60(%rbx), %rdi
callq 0xa2f4
movq 0x68(%rbx), %rdi
callq 0xa2f4
movq 0x70(%rbx), %rdi
testq %rdi, %rdi
je 0x98ef
callq 0xab9e
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x98fd
callq 0xab9e
movq 0x8(%rbx), %rdi
movl %ebp, %esi
callq *(%rbx)
movl %eax, %ebp
movq %rbx, %rdi
callq 0x32b0
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq