// File: /workspace/github_c_makefile_star2_O0/schroeder-lvb[P]sissm/src/pistats.c
// Function: pistatsInstallPlugin
int pistatsInstallPlugin( void )
{
    // Read the plugin-specific variables from the .cfg file 
    // 
    pistatsInitConfig();

    // if plugin is disabled in the .cfg file then do not activate
    //
    if ( pistatsConfig.pluginState == 0 ) return 0;

    // Install Event-driven CallBack hooks so the plugin gets
    // notified for various happenings.  A complete list is here,
    // but comment out what is not needed for your plug-in.
    // 
    eventsRegister( SISSM_EV_CLIENT_ADD,           pistatsClientAddCB );
    eventsRegister( SISSM_EV_CLIENT_DEL,           pistatsClientDelCB );
    eventsRegister( SISSM_EV_INIT,                 pistatsInitCB );
    eventsRegister( SISSM_EV_RESTART,              pistatsRestartCB );
    eventsRegister( SISSM_EV_MAPCHANGE,            pistatsMapChangeCB );
    eventsRegister( SISSM_EV_GAME_START,           pistatsGameStartCB );
    eventsRegister( SISSM_EV_GAME_END,             pistatsGameEndCB );
    eventsRegister( SISSM_EV_ROUND_START,          pistatsRoundStartCB );
    eventsRegister( SISSM_EV_ROUND_END,            pistatsRoundEndCB );
    eventsRegister( SISSM_EV_OBJECTIVE_CAPTURED,   pistatsCapturedCB );
    eventsRegister( SISSM_EV_PERIODIC,             pistatsPeriodicCB );
    eventsRegister( SISSM_EV_SHUTDOWN,             pistatsShutdownCB );
    eventsRegister( SISSM_EV_CLIENT_ADD_SYNTH,     pistatsClientSynthAddCB );
    eventsRegister( SISSM_EV_CLIENT_DEL_SYNTH,     pistatsClientSynthDelCB );
    eventsRegister( SISSM_EV_CHAT,                 pistatsChatCB     );
    eventsRegister( SISSM_EV_SIGTERM,              pistatsSigtermCB  );
    eventsRegister( SISSM_EV_WINLOSE,              pistatsWinLose );
    eventsRegister( SISSM_EV_TRAVEL,               pistatsTravel );
    eventsRegister( SISSM_EV_SESSIONLOG,           pistatsSessionLog );
    eventsRegister( SISSM_EV_OBJECT_SYNTH,         pistatsObjectSynth );

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0x21df0
cmpl $0x0, 0x22a55c(%rip)    # 0x24cce0
jne 0x22792
movl $0x0, -0x4(%rbp)
jmp 0x228ea
movl $0x3, %edi
leaq -0x8ae(%rip), %rsi      # 0x21ef0
callq 0xee50
movl $0x4, %edi
leaq -0x7cf(%rip), %rsi      # 0x21fe0
callq 0xee50
movl $0x1, %edi
leaq -0x750(%rip), %rsi      # 0x22070
callq 0xee50
movl $0x2, %edi
leaq -0x721(%rip), %rsi      # 0x220b0
callq 0xee50
movl $0x5, %edi
leaq -0x6f2(%rip), %rsi      # 0x220f0
callq 0xee50
movl $0x6, %edi
leaq -0x693(%rip), %rsi      # 0x22160
callq 0xee50
movl $0x7, %edi
leaq -0x5f4(%rip), %rsi      # 0x22210
callq 0xee50
movl $0x8, %edi
leaq -0x5c5(%rip), %rsi      # 0x22250
callq 0xee50
movl $0x9, %edi
leaq -0x586(%rip), %rsi      # 0x222a0
callq 0xee50
movl $0xa, %edi
leaq -0x557(%rip), %rsi      # 0x222e0
callq 0xee50
movl $0xb, %edi
leaq -0x4f8(%rip), %rsi      # 0x22350
callq 0xee50
movl $0xe, %edi
leaq -0x4c9(%rip), %rsi      # 0x22390
callq 0xee50
movl $0xc, %edi
leaq -0x41a(%rip), %rsi      # 0x22450
callq 0xee50
movl $0xd, %edi
leaq -0x4ab(%rip), %rsi      # 0x223d0
callq 0xee50
xorl %edi, %edi
leaq -0x3b9(%rip), %rsi      # 0x224d0
callq 0xee50
movl $0xf, %edi
leaq -0x38a(%rip), %rsi      # 0x22510
callq 0xee50
movl $0x10, %edi
leaq -0x36b(%rip), %rsi      # 0x22540
callq 0xee50
movl $0x11, %edi
leaq -0x28c(%rip), %rsi      # 0x22630
callq 0xee50
movl $0x12, %edi
leaq -0x20d(%rip), %rsi      # 0x226c0
callq 0xee50
movl $0x13, %edi
leaq -0x1ce(%rip), %rsi      # 0x22710
callq 0xee50
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq