/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void FUN_00402b90(int param_1)
{
byte bVar1;
undefined4 uVar2;
undefined *puVar3;
undefined *puVar4;
undefined *puVar5;
FILE *pFVar6;
char *pcVar7;
undefined *puVar8;
undefined **ppuVar9;
undefined **ppuVar10;
int iVar11;
int iVar12;
if (param_1 != 0) {
fputs("Services ==============================\n",_stderr);
}
iVar12 = 0;
ppuVar9 = (undefined **)0x0;
while( true ) {
ppuVar10 = (undefined **)PTR_LOOP_0041b0d0;
if (ppuVar9 != (undefined **)0x0) {
ppuVar10 = (undefined **)*ppuVar9;
}
if ((ppuVar10 == &PTR_LOOP_0041b0d0) || (ppuVar10 == (undefined **)0x0)) break;
if (param_1 != 0) {
pcVar7 = "stopped";
if (ppuVar10[4] != (undefined *)0x0) {
pcVar7 = "running";
}
fprintf(_stderr,"service : [%s] %s\n",ppuVar10[2],pcVar7);
}
iVar12 = iVar12 + (uint)(ppuVar10[4] != (undefined *)0x0);
if (*(byte *)(ppuVar10 + 7) != 0) {
pcVar7 = " service XXX stop";
if (ppuVar10[0xc] != (undefined *)0x0) {
pcVar7 = " service XXX start";
}
fprintf(_stderr,"service : schedule to %s at 0x%x %02d:%02d -> %02d:%02d\n",pcVar7 + 0x10,
(uint)*(byte *)(ppuVar10 + 7),ppuVar10[8],ppuVar10[9],ppuVar10[10],ppuVar10[0xb]);
}
ppuVar9 = ppuVar10;
if (ppuVar10[3] != (undefined *)0x0) {
solist_get_reset();
while (iVar11 = solist_get_next(ppuVar10[3]), pFVar6 = _stderr, iVar11 != 0) {
if (param_1 != 0) {
uVar2 = sobj_get_string(iVar11);
fprintf(pFVar6,"service : alias: %s\n",uVar2);
}
}
}
}
if (param_1 != 0) {
fputs("=======================================\n",_stderr);
fputs("Service Requests ======================\n",_stderr);
}
iVar11 = 0;
ppuVar9 = (undefined **)0x0;
do {
ppuVar10 = (undefined **)PTR_LOOP_0041b0d8;
if (ppuVar9 != (undefined **)0x0) {
ppuVar10 = (undefined **)*ppuVar9;
}
if ((ppuVar10 == &PTR_LOOP_0041b0d8) || (ppuVar10 == (undefined **)0x0)) {
if (param_1 != 0) {
fputs("=======================================\n",_stderr);
}
pFVar6 = fopen("/var/servd.status","w") //possible issue identified - semgrep
if (pFVar6 != (FILE *)0x0) {
fprintf(pFVar6,"running=%d\nrequest=%d\n",iVar12,iVar11);
/* WARNING: Could not recover jumptable at 0x00402fa4. Too many branches */
/* WARNING: Treating indirect jump as call */
fclose(pFVar6);
return;
}
return;
}
if (param_1 != 0) {
fprintf(_stderr,"request : [%s] ",ppuVar10[2]);
}
switch(ppuVar10[3]) {
case (undefined *)0x0:
pcVar7 = "start\n";
goto joined_r0x00402e28;
case (undefined *)0x1:
pcVar7 = "stop\n";
joined_r0x00402e28:
if (param_1 != 0) {
LAB_00402ed0:
fputs(pcVar7,_stderr);
}
break;
case (undefined *)0x2:
if (param_1 != 0) {
puVar3 = ppuVar10[6];
bVar1 = *(byte *)(ppuVar10 + 4);
puVar8 = ppuVar10[5];
puVar4 = ppuVar10[7];
puVar5 = ppuVar10[8];
pcVar7 = "schedule to start at 0x%02X %02d:%02d ~ %02d:%02d\n";
LAB_00402eac:
fprintf(_stderr,pcVar7,(uint)bVar1,puVar8,puVar3,puVar4,puVar5);
}
break;
case (undefined *)0x3:
if (param_1 != 0) {
puVar3 = ppuVar10[6];
bVar1 = *(byte *)(ppuVar10 + 4);
puVar8 = ppuVar10[5];
puVar4 = ppuVar10[7];
puVar5 = ppuVar10[8];
pcVar7 = "schedule to stop at 0x%02X %02d:%02d ~ %02d:%02d\n";
goto LAB_00402eac;
}
break;
case (undefined *)0x4:
if (param_1 == 0) break;
pcVar7 = "alias\n";
goto LAB_00402ed0;
}
iVar11 = iVar11 + 1;
ppuVar9 = ppuVar10;
} while( true );
}