// File: /workspace/github_c_makefile_star2_O3/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 0xc1cb
cmpl $0x0, 0x27a80(%rip)     # 0x34940
je 0xd005
leaq -0x506(%rip), %rsi      # 0xc9c7
movl $0x3, %edi
callq 0xd40c
leaq -0x514(%rip), %rsi      # 0xc9ca
movl $0x4, %edi
callq 0xd40c
leaq -0x522(%rip), %rsi      # 0xc9cd
movl $0x1, %edi
callq 0xd40c
leaq -0x530(%rip), %rsi      # 0xc9d0
movl $0x2, %edi
callq 0xd40c
leaq -0x52b(%rip), %rsi      # 0xc9e6
movl $0x5, %edi
callq 0xd40c
leaq -0x546(%rip), %rsi      # 0xc9dc
movl $0x6, %edi
callq 0xd40c
leaq -0x6a3(%rip), %rsi      # 0xc890
movl $0x7, %edi
callq 0xd40c
leaq -0x641(%rip), %rsi      # 0xc903
movl $0x8, %edi
callq 0xd40c
leaq -0x6fa(%rip), %rsi      # 0xc85b
movl $0x9, %edi
callq 0xd40c
leaq -0x5a2(%rip), %rsi      # 0xc9c4
movl $0xa, %edi
callq 0xd40c
leaq -0x66a(%rip), %rsi      # 0xc90d
movl $0xb, %edi
callq 0xd40c
leaq -0x5b2(%rip), %rsi      # 0xc9d6
movl $0xe, %edi
callq 0xd40c
leaq -0x5c6(%rip), %rsi      # 0xc9d3
movl $0xc, %edi
callq 0xd40c
leaq -0x5d1(%rip), %rsi      # 0xc9d9
movl $0xd, %edi
callq 0xd40c
leaq -0x1cb(%rip), %rsi      # 0xcdf0
xorl %edi, %edi
callq 0xd40c
leaq -0x150(%rip), %rsi      # 0xce79
movl $0x1b, %edi
callq 0xd40c
leaq 0xf753(%rip), %rdi      # 0x1c72d
xorl %esi, %esi
callq 0x180a5
leaq 0xf754(%rip), %rdi      # 0x1c73c
xorl %esi, %esi
callq 0x180a5
movabsq $0x44494c41564e49, %rax # imm = 0x44494C41564E49
movq %rax, 0x50d70(%rip)     # 0x5dd70
callq 0x142c5
xorl %eax, %eax
popq %rcx
retq
nopl (%rax)