// File: /workspace/github_c_makefile_star2_O0/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 %rbp
movq %rsp, %rbp
subq $0x10, %rsp
callq 0xd400
cmpl $0x0, 0x2e2bc(%rip)     # 0x3c940
jne 0xe692
movl $0x0, -0x4(%rbp)
jmp 0xe7d7
movl $0x3, %edi
leaq -0x7ee(%rip), %rsi      # 0xdeb0
callq 0xee50
movl $0x4, %edi
leaq -0x7ef(%rip), %rsi      # 0xdec0
callq 0xee50
movl $0x1, %edi
leaq -0x7f0(%rip), %rsi      # 0xded0
callq 0xee50
movl $0x2, %edi
leaq -0x7f1(%rip), %rsi      # 0xdee0
callq 0xee50
movl $0x5, %edi
leaq -0x7a2(%rip), %rsi      # 0xdf40
callq 0xee50
movl $0x6, %edi
leaq -0x7d3(%rip), %rsi      # 0xdf20
callq 0xee50
movl $0x7, %edi
leaq -0xa04(%rip), %rsi      # 0xdd00
callq 0xee50
movl $0x8, %edi
leaq -0x975(%rip), %rsi      # 0xdda0
callq 0xee50
movl $0x9, %edi
leaq -0xa76(%rip), %rsi      # 0xdcb0
callq 0xee50
movl $0xa, %edi
leaq -0x897(%rip), %rsi      # 0xdea0
callq 0xee50
movl $0xb, %edi
leaq -0x988(%rip), %rsi      # 0xddc0
callq 0xee50
movl $0xe, %edi
leaq -0x859(%rip), %rsi      # 0xdf00
callq 0xee50
movl $0xc, %edi
leaq -0x87a(%rip), %rsi      # 0xdef0
callq 0xee50
movl $0xd, %edi
leaq -0x86b(%rip), %rsi      # 0xdf10
callq 0xee50
xorl %edi, %edi
leaq -0x219(%rip), %rsi      # 0xe570
callq 0xee50
movl $0x1b, %edi
leaq -0x18a(%rip), %rsi      # 0xe610
callq 0xee50
leaq 0x15fb7(%rip), %rdi     # 0x2475d
xorl %eax, %eax
movl %eax, %esi
callq 0x1ebf0
leaq 0x15fb6(%rip), %rdi     # 0x2476c
xorl %eax, %eax
movl %eax, %esi
callq 0x1ebf0
leaq 0x15f22(%rip), %rdi     # 0x246e8
callq 0xe2b0
callq 0x18ff0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq