void sloop_run(void)
{
bool bVar1;
__fd_mask *p_Var2;
timeval *__timeout;
int iVar3;
ssize_t sVar4;
int iVar5;
uint uVar6;
int *piVar7;
uint uVar8;
int *piVar9;
int *piVar10;
int local_178;
timeval local_174;
sysinfo local_16c;
fd_set local_12c;
fd_set fStack_ac;
undefined4 uStack_2c;
LAB_00405430:
do {
while( true ) {
piVar10 = DAT_0041c9c0;
if (DAT_0041c980 != 0) goto LAB_00405480;
if ((int **)DAT_0041c9c0 == &DAT_0041c9c0) {
piVar10 = (int *)0x0;
if ((((int **)DAT_0041c9a8 == &DAT_0041c9a8) && ((int **)DAT_0041c9b0 == &DAT_0041c9b0)) &&
((int **)DAT_0041c9b8 == &DAT_0041c9b8)) goto LAB_00405480;
}
else if (DAT_0041c9c0 != (int *)0x0) {
sysinfo(&local_16c);
local_174.tv_sec = piVar10[3];
if (local_16c.uptime == local_174.tv_sec) {
bVar1 = piVar10[4] < 1;
}
else {
bVar1 = local_174.tv_sec <= local_16c.uptime;
}
local_174.tv_sec = local_174.tv_sec - local_16c.uptime;
if (bVar1) {
local_174.tv_usec = 0;
local_174.tv_sec = 0;
}
else {
local_174.tv_usec = piVar10[4];
if (local_174.tv_usec < 0) {
local_174.tv_usec = local_174.tv_usec + 1000000;
local_174.tv_sec = local_174.tv_sec + -1;
}
}
}
p_Var2 = local_12c.fds_bits;
do {
((fd_set *)p_Var2)->fds_bits[0] = 0;
p_Var2 = ((fd_set *)p_Var2)->fds_bits + 1;
} while ((fd_set *)p_Var2 != &fStack_ac);
do {
*p_Var2 = 0;
p_Var2 = p_Var2 + 1;
} while (p_Var2 != &uStack_2c);
local_12c.fds_bits[DAT_0041c984 >> 5] =
local_12c.fds_bits[DAT_0041c984 >> 5] | 1 << (DAT_0041c984 & 0x1f);
uVar8 = DAT_0041c984 & (int)~DAT_0041c984 >> 0x1f;
for (piVar9 = DAT_0041c9a8; piVar7 = DAT_0041c9b0, (int **)piVar9 != &DAT_0041c9a8;
piVar9 = (int *)*piVar9) {
uVar6 = piVar9[3];
local_12c.fds_bits[uVar6 >> 5] = local_12c.fds_bits[uVar6 >> 5] | 1 << (uVar6 & 0x1f);
if ((int)uVar8 < (int)uVar6) {
uVar8 = uVar6;
}
}
for (; (int **)piVar7 != &DAT_0041c9b0; piVar7 = (int *)*piVar7) {
uVar6 = piVar7[3];
fStack_ac.fds_bits[uVar6 >> 5] = fStack_ac.fds_bits[uVar6 >> 5] | 1 << (uVar6 & 0x1f);
if ((int)uVar8 < (int)uVar6) {
uVar8 = uVar6;
}
}
__timeout = &local_174;
if (piVar10 == (int *)0x0) {
__timeout = (timeval *)0x0;
}
iVar3 = select(uVar8 + 1,&local_12c,&fStack_ac,(fd_set *)0x0,__timeout);
if (-1 < iVar3) break;
piVar10 = __errno_location();
if (*piVar10 != 4) {
LAB_00405480:
FUN_00404da4(0);
sloop_cancel_timeout(0);
sloop_cancel_read_sock(0);
sloop_cancel_write_sock(0);
return;
}
}
if (((iVar3 != 0) &&
((local_12c.fds_bits[DAT_0041c984 >> 5] >> (DAT_0041c984 & 0x1f) & 1U) != 0)) &&
((sVar4 = read(DAT_0041c984,&local_178,4), -1 < sVar4 && //possible issue identified - semgrep
((local_178 != 0 && (piVar9 = DAT_0041c9b8, (int **)DAT_0041c9b8 != &DAT_0041c9b8)))))) {
do {
if (piVar9[3] == local_178) {
iVar5 = (*(code *)piVar9[5])(local_178,piVar9[4],DAT_0041c98c);
if (iVar5 < 0) {
iVar5 = *piVar9;
piVar7 = (int *)piVar9[1];
uVar8 = piVar9[2];
*piVar7 = iVar5;
*piVar9 = 0;
*(int **)(iVar5 + 4) = piVar7;
*piVar9 = (int)DAT_0041c9a0;
DAT_0041c9a0[1] = (int)piVar9;
piVar9[2] = uVar8 & 0xfffffeff;
DAT_0041c9a0 = piVar9;
piVar9[1] = (int)&DAT_0041c9a0;
}
break;
}
piVar9 = (int *)*piVar9;
} while ((int **)piVar9 != &DAT_0041c9b8);
if (DAT_0041c980 != 0) goto LAB_00405480;
}
piVar9 = DAT_0041c9c0;
if ((piVar10 == (int *)0x0) || (DAT_0041c9c0 != piVar10)) {
LAB_004052c8:
if (iVar3 == 0) goto LAB_00405430;
}
else {
sysinfo(&local_16c);
if (iVar3 == 0) {
LAB_00405264:
if ((code *)piVar10[6] != (code *)0x0) {
(*(code *)piVar10[6])(piVar10[5],DAT_0041c98c);
}
iVar5 = *piVar10;
piVar7 = (int *)piVar10[1];
uVar8 = piVar10[2];
*piVar7 = iVar5;
*piVar10 = 0;
*(int **)(iVar5 + 4) = piVar7;
*piVar10 = (int)DAT_0041c998;
DAT_0041c998[1] = (int)piVar9;
piVar10[2] = uVar8 & 0xfffffeff;
DAT_0041c998 = piVar9;
piVar10[1] = (int)&DAT_0041c998;
goto LAB_004052c8;
}
if (local_16c.uptime == piVar10[3]) {
if (piVar10[4] < 1) goto LAB_00405264;
}
else if (piVar10[3] <= local_16c.uptime) goto LAB_00405264;
}
piVar10 = DAT_0041c9a8;
if ((int **)DAT_0041c9a8 != &DAT_0041c9a8) {
do {
uVar8 = piVar10[3];
iVar3 = 0;
if ((local_12c.fds_bits[uVar8 >> 5] >> (uVar8 & 0x1f) & 1U) != 0) {
iVar3 = (*(code *)piVar10[5])(uVar8,piVar10[4],DAT_0041c98c);
}
piVar9 = (int *)*piVar10;
if (iVar3 < 0) {
iVar3 = *piVar10;
piVar7 = (int *)piVar10[1];
uVar8 = piVar10[2];
*piVar7 = iVar3;
*piVar10 = 0;
piVar10[2] = uVar8 & 0xfffffeff;
*(int **)(iVar3 + 4) = piVar7;
*piVar10 = (int)DAT_0041c990;
DAT_0041c990[1] = (int)piVar10;
DAT_0041c990 = piVar10;
piVar10[1] = (int)&DAT_0041c990;
}
piVar10 = piVar9;
} while ((int **)piVar9 != &DAT_0041c9a8);
}
piVar10 = DAT_0041c9b0;
if ((int **)DAT_0041c9b0 != &DAT_0041c9b0) {
do {
uVar8 = piVar10[3];
iVar3 = 0;
if ((fStack_ac.fds_bits[uVar8 >> 5] >> (uVar8 & 0x1f) & 1U) != 0) {
iVar3 = (*(code *)piVar10[5])(uVar8,piVar10[4],DAT_0041c98c);
}
piVar9 = (int *)*piVar10;
if (iVar3 < 0) {
iVar3 = *piVar10;
piVar7 = (int *)piVar10[1];
uVar8 = piVar10[2];
*piVar7 = iVar3;
*piVar10 = 0;
piVar10[2] = uVar8 & 0xfffffeff;
*(int **)(iVar3 + 4) = piVar7;
*piVar10 = (int)DAT_0041c990;
DAT_0041c990[1] = (int)piVar10;
DAT_0041c990 = piVar10;
piVar10[1] = (int)&DAT_0041c990;
}
piVar10 = piVar9;
} while ((int **)piVar9 != &DAT_0041c9b0);
}
} while( true );
}