// File: /workspace/github_c_makefile_star2_O1/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 0xbe2e
cmpl $0x0, 0x27dfd(%rip)     # 0x34940
je 0xcc88
leaq -0x526(%rip), %rsi      # 0xc62a
movl $0x3, %edi
callq 0xd08c
leaq -0x534(%rip), %rsi      # 0xc62d
movl $0x4, %edi
callq 0xd08c
leaq -0x542(%rip), %rsi      # 0xc630
movl $0x1, %edi
callq 0xd08c
leaq -0x550(%rip), %rsi      # 0xc633
movl $0x2, %edi
callq 0xd08c
leaq -0x54b(%rip), %rsi      # 0xc649
movl $0x5, %edi
callq 0xd08c
leaq -0x566(%rip), %rsi      # 0xc63f
movl $0x6, %edi
callq 0xd08c
leaq -0x6c3(%rip), %rsi      # 0xc4f3
movl $0x7, %edi
callq 0xd08c
leaq -0x661(%rip), %rsi      # 0xc566
movl $0x8, %edi
callq 0xd08c
leaq -0x71a(%rip), %rsi      # 0xc4be
movl $0x9, %edi
callq 0xd08c
leaq -0x5c2(%rip), %rsi      # 0xc627
movl $0xa, %edi
callq 0xd08c
leaq -0x68a(%rip), %rsi      # 0xc570
movl $0xb, %edi
callq 0xd08c
leaq -0x5d2(%rip), %rsi      # 0xc639
movl $0xe, %edi
callq 0xd08c
leaq -0x5e6(%rip), %rsi      # 0xc636
movl $0xc, %edi
callq 0xd08c
leaq -0x5f1(%rip), %rsi      # 0xc63c
movl $0xd, %edi
callq 0xd08c
leaq -0x1cb(%rip), %rsi      # 0xca73
xorl %edi, %edi
callq 0xd08c
leaq -0x150(%rip), %rsi      # 0xcafc
movl $0x1b, %edi
callq 0xd08c
leaq 0xfaf6(%rip), %rdi      # 0x1c753
xorl %esi, %esi
callq 0x17ea8
leaq 0xfaf7(%rip), %rdi      # 0x1c762
xorl %esi, %esi
callq 0x17ea8
movabsq $0x44494c41564e49, %rax # imm = 0x44494C41564E49
movq %rax, 0x510ed(%rip)     # 0x5dd70
callq 0x13f89
xorl %eax, %eax
popq %rcx
retq