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

    // if plugin is disabled in the .cfg file then do not activate
    //
    if ( pitacnomicConfig.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,           pitacnomicClientAddCB );
    eventsRegister( SISSM_EV_CLIENT_DEL,           pitacnomicClientDelCB );
    eventsRegister( SISSM_EV_INIT,                 pitacnomicInitCB );
    eventsRegister( SISSM_EV_RESTART,              pitacnomicRestartCB );
    eventsRegister( SISSM_EV_MAPCHANGE,            pitacnomicMapChangeCB );
    eventsRegister( SISSM_EV_GAME_START,           pitacnomicGameStartCB );
    eventsRegister( SISSM_EV_GAME_END,             pitacnomicGameEndCB );
    eventsRegister( SISSM_EV_ROUND_START,          pitacnomicRoundStartCB );
    eventsRegister( SISSM_EV_ROUND_END,            pitacnomicRoundEndCB );
    eventsRegister( SISSM_EV_OBJECTIVE_CAPTURED,   pitacnomicCapturedCB );
    eventsRegister( SISSM_EV_PERIODIC,             pitacnomicPeriodicCB );
    eventsRegister( SISSM_EV_SHUTDOWN,             pitacnomicShutdownCB );
    eventsRegister( SISSM_EV_CLIENT_ADD_SYNTH,     pitacnomicClientSynthAddCB );
    eventsRegister( SISSM_EV_CLIENT_DEL_SYNTH,     pitacnomicClientSynthDelCB );
    eventsRegister( SISSM_EV_CHAT,                 pitacnomicChatCB     );
    eventsRegister( SISSM_EV_SIGTERM,              pitacnomicSigtermCB  );
    eventsRegister( SISSM_EV_WINLOSE,              pitacnomicWinLose );
    eventsRegister( SISSM_EV_TRAVEL,               pitacnomicTravel );
    eventsRegister( SISSM_EV_SESSIONLOG,           pitacnomicSessionLog );
    eventsRegister( SISSM_EV_OBJECT_SYNTH,         pitacnomicObjectSynth );

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0xe7e0
cmpl $0x0, 0x573fc(%rip)     # 0x66070
jne 0xec82
movl $0x0, -0x4(%rbp)
jmp 0xedda
movl $0x3, %edi
leaq -0x38e(%rip), %rsi      # 0xe900
callq 0xee50
movl $0x4, %edi
leaq -0x38f(%rip), %rsi      # 0xe910
callq 0xee50
movl $0x1, %edi
leaq -0x390(%rip), %rsi      # 0xe920
callq 0xee50
movl $0x2, %edi
leaq -0x391(%rip), %rsi      # 0xe930
callq 0xee50
movl $0x5, %edi
leaq -0x392(%rip), %rsi      # 0xe940
callq 0xee50
movl $0x6, %edi
leaq -0x393(%rip), %rsi      # 0xe950
callq 0xee50
movl $0x7, %edi
leaq -0x394(%rip), %rsi      # 0xe960
callq 0xee50
movl $0x8, %edi
leaq -0x395(%rip), %rsi      # 0xe970
callq 0xee50
movl $0x9, %edi
leaq -0x396(%rip), %rsi      # 0xe980
callq 0xee50
movl $0xa, %edi
leaq -0x397(%rip), %rsi      # 0xe990
callq 0xee50
movl $0xb, %edi
leaq -0x398(%rip), %rsi      # 0xe9a0
callq 0xee50
movl $0xe, %edi
leaq -0x399(%rip), %rsi      # 0xe9b0
callq 0xee50
movl $0xc, %edi
leaq -0x38a(%rip), %rsi      # 0xe9d0
callq 0xee50
movl $0xd, %edi
leaq -0x3ab(%rip), %rsi      # 0xe9c0
callq 0xee50
xorl %edi, %edi
leaq -0x399(%rip), %rsi      # 0xe9e0
callq 0xee50
movl $0xf, %edi
leaq -0x17a(%rip), %rsi      # 0xec10
callq 0xee50
movl $0x10, %edi
leaq -0x17b(%rip), %rsi      # 0xec20
callq 0xee50
movl $0x11, %edi
leaq -0x17c(%rip), %rsi      # 0xec30
callq 0xee50
movl $0x12, %edi
leaq -0x17d(%rip), %rsi      # 0xec40
callq 0xee50
movl $0x13, %edi
leaq -0x17e(%rip), %rsi      # 0xec50
callq 0xee50
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nopl (%rax)