/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
undefined4 FUN_004035d4(void)
{
undefined4 *puVar1;
int iVar2;
__pid_t _Var3;
uint local_10 [2];
if (DAT_0041b360 == 0) {
return 0;
}
local_10[0] = 0;
_Var3 = waitpid(*(__pid_t *)(DAT_0041b360 + 0x14),(int *)local_10,1);
if (_Var3 == -1) {
DAT_0041b360 = 0;
}
else {
if (_Var3 != *(int *)(DAT_0041b360 + 0x14)) {
return 1;
}
if ((local_10[0] & 0x7f) != 0) {
return 1;
}
if ((int)(local_10[0] & 0xff00) >> 8 != 0) {
puVar1 = (undefined4 *)(DAT_0041b360 + 8);
*(undefined4 *)(DAT_0041b360 + 0x10) = 0;
fprintf(_stderr,"SERVD: service [%s] return error %d.\n",*puVar1);
}
iVar2 = DAT_0041b360;
DAT_0041b360 = 0;
*(undefined4 *)(iVar2 + 0x14) = 0;
}
return 0;
}