void FUN_00408180(int param_1)
{
timeval local_10;
g_ctc_packets = g_ctc_packets + 1;
if (0x40 < g_ctc_packets) {
g_ctc_packets = 0x40;
}
g_ctc_bytes = param_1 + g_ctc_bytes;
if (0x10000 < g_ctc_bytes) {
g_ctc_bytes = 0x10000;
}
gettimeofday(&local_10,(__timezone_ptr_t)0x0);
for (local_10.tv_usec = local_10.tv_usec + 1000000; 1000000 < local_10.tv_usec;
local_10.tv_usec = local_10.tv_usec + -1000000) {
local_10.tv_sec = local_10.tv_sec + 1;
}
if (g_charge_timer != 0) {
event_cancel();
g_charge_timer = 0;
}
g_charge_timer = event_add(&local_10,state_charge_timeout,0);
return;
}