/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void service_events(void)

{
  int iVar1;
  undefined4 *puVar2;
  FILE *pFVar3;
  char *pcVar4;
  char *pcVar5;
  undefined *puVar6;
  undefined **ppuVar7;
  undefined **ppuVar8;
  undefined **ppuVar9;
  int iVar10;
  code *pcVar11;
  FILE FStack_128;
  
  ppuVar7 = (undefined **)0x0;
  do {
    do {
      ppuVar9 = (undefined **)PTR_LOOP_0041b0e0;
      if (ppuVar7 != (undefined **)0x0) {
        ppuVar9 = (undefined **)*ppuVar7;
      }
      if ((ppuVar9 == &PTR_LOOP_0041b0e0) || (ppuVar9 == (undefined **)0x0)) {
        return;
      }
      iVar10 = 0;
      ppuVar7 = (undefined **)0x0;
      while( true ) {
        if (ppuVar7 == (undefined **)0x0) {
          ppuVar8 = (undefined **)ppuVar9[5];
        }
        else {
          ppuVar8 = (undefined **)*ppuVar7;
        }
        if ((ppuVar8 == ppuVar9 + 5) || (ppuVar8 == (undefined **)0x0)) break;
        if ((0 < (int)ppuVar8[2]) && (iVar1 = child_running(), iVar1 == 0)) {
          ppuVar8[2] = (undefined *)0x0;
        }
        ppuVar7 = ppuVar8;
        if ((int)ppuVar8[2] < 1) {
          if (ppuVar8[5] != (undefined *)0x0) {
            puVar2 = (undefined4 *)ppuVar8[1];
            puVar6 = *ppuVar8;
            ppuVar7 = (undefined **)ppuVar8[1];
            *puVar2 = puVar6;
            *(undefined4 **)(puVar6 + 4) = puVar2;
            *ppuVar8 = (undefined *)0x0;
            ppuVar8[1] = (undefined *)0x0;
            FUN_00404c20(ppuVar8);
          }
        }
        else {
          iVar10 = iVar10 + 1;
        }
      }
      ppuVar7 = ppuVar9;
    } while ((iVar10 != 0) || (ppuVar8 = (undefined **)0x0, ppuVar9[3] == (undefined *)0x0));
    while( true ) {
      if (ppuVar8 == (undefined **)0x0) {
        ppuVar8 = (undefined **)ppuVar9[5];
      }
      else {
        ppuVar8 = (undefined **)*ppuVar8;
      }
      if ((ppuVar8 == ppuVar9 + 5) || (ppuVar8 == (undefined **)0x0)) break;
      pcVar4 = ppuVar8[4];
      if (pcVar4 != (char *)0x0) {
        puVar6 = ppuVar9[4];
        if (*pcVar4 == '@') {
          pcVar4 = pcVar4 + 1;
          if (puVar6 == (undefined *)0x0) {
            strcpy((char *)&FStack_128,pcVar4)   //possible issue identified - semgrep
          }
          else {
            pcVar11 = sprintf;
            pFVar3 = &FStack_128;
            pcVar5 = "%s %s";
LAB_004050b4:
            (*pcVar11)(pFVar3,pcVar5,pcVar4,puVar6);
          }
        }
        else {
          if (puVar6 == (undefined *)0x0) {
            strcpy((char *)&FStack_128,pcVar4)   //possible issue identified - semgrep
            pcVar11 = fprintf;
            pcVar4 = ppuVar9[2];
            puVar6 = ppuVar8[3];
            pcVar5 = "SERVD: event [%s/%s]\n";
            pFVar3 = _stderr;
            goto LAB_004050b4;
          }
          sprintf((char *)&FStack_128,"%s %s",pcVar4)   //possible issue identified - semgrep
          fprintf(_stderr,"SERVD: event [%s/%s] %s \n",ppuVar9[2],ppuVar8[3],ppuVar9[4]);
        }
        puVar6 = (undefined *)spawn(&FStack_128)   //possible issue identified - semgrep
        ppuVar8[2] = puVar6;
      }
    }
    ppuVar9[3] = (undefined *)0x0;
    if (ppuVar9[4] != (undefined *)0x0) {
      free(ppuVar9[4]);
    }
    ppuVar9[4] = (undefined *)0x0;
  } while( true );
}