// File: /workspace/github_c_makefile_star2_O2/schroeder-lvb[P]sissm/src/picladmin.c
// Function: picladminInstallPlugin
int picladminInstallPlugin( void )
{

    // Read the plugin-specific variables from the .cfg file 
    // 
    picladminInitConfig();

    // if plugin is disabled in the .cfg file then do not activate
    //
    if ( picladminConfig.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,           picladminClientAddCB );
    eventsRegister( SISSM_EV_CLIENT_DEL,           picladminClientDelCB );
    eventsRegister( SISSM_EV_INIT,                 picladminInitCB );
    eventsRegister( SISSM_EV_RESTART,              picladminRestartCB );
    eventsRegister( SISSM_EV_MAPCHANGE,            picladminMapChangeCB );
    eventsRegister( SISSM_EV_GAME_START,           picladminGameStartCB );
    eventsRegister( SISSM_EV_GAME_END,             picladminGameEndCB );
    eventsRegister( SISSM_EV_ROUND_START,          picladminRoundStartCB );
    eventsRegister( SISSM_EV_ROUND_END,            picladminRoundEndCB );
    eventsRegister( SISSM_EV_OBJECTIVE_CAPTURED,   picladminCapturedCB );
    eventsRegister( SISSM_EV_PERIODIC,             picladminPeriodicCB );
    eventsRegister( SISSM_EV_SHUTDOWN,             picladminShutdownCB );
    eventsRegister( SISSM_EV_CLIENT_ADD_SYNTH,     picladminClientSynthAddCB );
    eventsRegister( SISSM_EV_CLIENT_DEL_SYNTH,     picladminClientSynthDelCB );
    eventsRegister( SISSM_EV_CHAT,                 picladminChatCB );
    eventsRegister( SISSM_EV_RCON,                 picladminRconCB );


    // Clear the developer varibles for debug use only.
    //
    p2pSetL( "dev.p2p.nokick", 0L );
    p2pSetL( "dev.p2p.humans", 0L );

    // clear the origin ID
    // 
    _setOriginID( "INVALID");

    // clear the Clan list
    // 
    apiClanClear();

    return 0;
}

// Assembly:
pushq %rax
callq 0xb9d7
cmpl $0x0, 0x282bf(%rip)     # 0x34940
je 0xc7a3
leaq -0x4c9(%rip), %rsi      # 0xc1c5
pushq $0x3
popq %rdi
callq 0xcba7
leaq -0x4d5(%rip), %rsi      # 0xc1c8
pushq $0x4
popq %rdi
callq 0xcba7
leaq -0x4e1(%rip), %rsi      # 0xc1cb
pushq $0x1
popq %rdi
callq 0xcba7
leaq -0x4ed(%rip), %rsi      # 0xc1ce
pushq $0x2
popq %rdi
callq 0xcba7
leaq -0x4e6(%rip), %rsi      # 0xc1e4
pushq $0x5
popq %rdi
callq 0xcba7
leaq -0x4ff(%rip), %rsi      # 0xc1da
pushq $0x6
popq %rdi
callq 0xcba7
leaq -0x64e(%rip), %rsi      # 0xc09a
pushq $0x7
popq %rdi
callq 0xcba7
leaq -0x5ed(%rip), %rsi      # 0xc10a
pushq $0x8
popq %rdi
callq 0xcba7
leaq -0x69e(%rip), %rsi      # 0xc068
pushq $0x9
popq %rdi
callq 0xcba7
leaq -0x553(%rip), %rsi      # 0xc1c2
pushq $0xa
popq %rdi
callq 0xcba7
leaq -0x610(%rip), %rsi      # 0xc114
pushq $0xb
popq %rdi
callq 0xcba7
leaq -0x55f(%rip), %rsi      # 0xc1d4
pushq $0xe
popq %rdi
callq 0xcba7
leaq -0x571(%rip), %rsi      # 0xc1d1
pushq $0xc
popq %rdi
callq 0xcba7
leaq -0x57a(%rip), %rsi      # 0xc1d7
pushq $0xd
popq %rdi
callq 0xcba7
leaq -0x1ae(%rip), %rsi      # 0xc5b2
xorl %edi, %edi
callq 0xcba7
leaq -0x134(%rip), %rsi      # 0xc63a
pushq $0x1b
popq %rdi
callq 0xcba7
leaq 0xefb8(%rip), %rdi      # 0x1b735
xorl %esi, %esi
callq 0x17049
leaq 0xefb9(%rip), %rdi      # 0x1b744
xorl %esi, %esi
callq 0x17049
leaq 0xef27(%rip), %rdi      # 0x1b6c0
callq 0xc3e4
callq 0x13431
xorl %eax, %eax
popq %rcx
retq
nop