
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

uint __regparm3 add_proc(pid_t pid)

{
  pid_t *ppVar1;
  size_t sVar2;
  int *piVar3;
  size_t n;
  uint uVar4;
  size_t sVar5;
  
  if (pids_alloc == 0) {
    if (pids == (pid_t *)0x0) {
      sVar5 = 0;
      n = 0x40;
      sVar2 = 0x10;
    }
    else {
LAB_00013afe:
      sVar2 = pids_alloc + 1 + (pids_alloc >> 1);
      n = sVar2 * 4;
      sVar5 = pids_alloc;
    }
    pids_alloc = sVar2;
    ppVar1 = (pid_t *)xrealloc(pids,n);
    uVar4 = sVar5;
    pids = ppVar1;
    if (sVar5 < pids_alloc) {
      do {
        ppVar1[uVar4] = 0;
        uVar4 = uVar4 + 1;
      } while (uVar4 < pids_alloc);
    }
    piVar3 = ppVar1 + sVar5;
    if (ppVar1[sVar5] != 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");
    }
  }
  else {
    piVar3 = pids;
    if (*pids == 0) {
      sVar5 = 0;
    }
    else {
      sVar5 = 0;
      do {
        piVar3 = piVar3 + 1;
        sVar5 = sVar5 + 1;
        if (sVar5 == pids_alloc) {
          if (0x15555554 < sVar5) {
                    /* WARNING: Subroutine does not return */
            xalloc_die();
          }
          goto LAB_00013afe;
        }
      } while (*piVar3 != 0);
    }
  }
  *piVar3 = pid;
  procs_executing = procs_executing + 1;
  procs_executed = true;
  return sVar5;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

uint __regparm3 FUN_00013aa0(int param_1)

{
  int *piVar1;
  int *piVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  
  if (DAT_000280c4 == 0) {
    if (DAT_000280c8 == (int *)0x0) {
      uVar5 = 0;
      iVar3 = 0x40;
      uVar4 = 0x10;
    }
    else {
LAB_00013afe:
      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);
      iVar3 = uVar4 * 4;
      uVar5 = DAT_000280c4;
    }
    DAT_000280c4 = uVar4;
    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);
    uVar4 = uVar5;
    DAT_000280c8 = piVar1;
    if (uVar5 < DAT_000280c4) {
      do {
        piVar1[uVar4] = 0;
        uVar4 = uVar4 + 1;
      } while (uVar4 < DAT_000280c4);
    }
    piVar2 = piVar1 + uVar5;
    if (piVar1[uVar5] != 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");
    }
  }
  else {
    piVar2 = DAT_000280c8;
    if (*DAT_000280c8 == 0) {
      uVar5 = 0;
    }
    else {
      uVar5 = 0;
      do {
        piVar2 = piVar2 + 1;
        uVar5 = uVar5 + 1;
        if (uVar5 == DAT_000280c4) {
          if (0x15555554 < uVar5) {
                    /* WARNING: Subroutine does not return */
            FUN_0001c620();
          }
          goto LAB_00013afe;
        }
      } while (*piVar2 != 0);
    }
  }
  *piVar2 = param_1;
  DAT_000280cc = DAT_000280cc + 1;
  DAT_000280d0 = 1;
  return uVar5;
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
PUSH EBX
CALL 0x00013670
ADD EBX,0x143b9
SUB ESP,0xc
MOV EDX,dword ptr [EBX + 0x260]
MOV EBP,dword ptr [EBX + 0x264]
TEST EDX,EDX
JZ 0x00013b6d
MOV EAX,dword ptr [EBP]
TEST EAX,EAX
JZ 0x00013b7f
LEA EAX,[EBP + 0x4]
XOR ESI,ESI
JMP 0x00013aeb
MOV ECX,EAX
ADD EAX,0x4
CMP dword ptr [EAX + -0x4],0x0
JZ 0x00013b53
ADD ESI,0x1
CMP ESI,EDX
JNZ 0x00013ae0
CMP ESI,0x15555554
JA 0x00013b85
MOV EAX,EDX
MOV ESI,EDX
SHR EAX,0x1
LEA EAX,[EDX + EAX*0x1 + 0x1]
LEA ECX,[EAX*0x4 + 0x0]
SUB ESP,0x8
MOV dword ptr [EBX + 0x260],EAX
PUSH ECX
PUSH EBP
CALL 0x0001c430
ADD ESP,0x10
MOV dword ptr [EBX + 0x264],EAX
CMP ESI,dword ptr [EBX + 0x260]
JNC 0x00013b4a
MOV EDX,ESI
LEA ESI,[ESI]
MOV dword ptr [EAX + EDX*0x4],0x0
ADD EDX,0x1
CMP dword ptr [EBX + 0x260],EDX
JA 0x00013b38
LEA ECX,[EAX + ESI*0x4]
MOV EAX,dword ptr [ECX]
TEST EAX,EAX
JNZ 0x00013b8a
MOV dword ptr [ECX],EDI
MOV EAX,ESI
ADD dword ptr [EBX + 0x268],0x1
MOV byte ptr [EBX + 0x26c],0x1
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
TEST EBP,EBP
JNZ 0x00013afe
XOR ESI,ESI
MOV ECX,0x40
MOV EAX,0x10
JMP 0x00013b0f
MOV ECX,EBP
XOR ESI,ESI
JMP 0x00013b53
CALL 0x0001c620
LEA EAX,[EBX + 0xffff89f4]
PUSH EAX
LEA EAX,[EBX + 0xffff865d]
PUSH 0x591
PUSH EAX
LEA EAX,[EBX + 0xffff8665]
PUSH EAX
CALL 0x00012540
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuint __regparm3 FUN_00013aa0(int param_1)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  if (DAT_000280c4 == 0) {\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }\n  *piVar2 = param_1;\n  DAT_000280cc = DAT_000280cc + 1;\n  DAT_000280d0 = 1;\n  return uVar5;\n}\n\n" comment (function_definition "uint __regparm3 FUN_00013aa0(int param_1)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  if (DAT_000280c4 == 0) {\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }\n  *piVar2 = param_1;\n  DAT_000280cc = DAT_000280cc + 1;\n  DAT_000280d0 = 1;\n  return uVar5;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00013aa0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  if (DAT_000280c4 == 0) {\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }\n  *piVar2 = param_1;\n  DAT_000280cc = DAT_000280cc + 1;\n  DAT_000280d0 = 1;\n  return uVar5;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (if_statement "if (DAT_000280c4 == 0) {\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }" if (parenthesized_expression "(DAT_000280c4 == 0)" ( (binary_expression "DAT_000280c4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }" { (if_statement "if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }" if (parenthesized_expression "(DAT_000280c8 == (int *)0x0)" ( (binary_expression "DAT_000280c8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0x40;" (assignment_expression "iVar3 = 0x40" identifier = number_literal) ;) (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }" else (compound_statement "{\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }" { (labeled_statement "LAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);" statement_identifier : (expression_statement "uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);" (assignment_expression "uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1)" identifier = (binary_expression "DAT_000280c4 + 1 + (DAT_000280c4 >> 1)" (binary_expression "DAT_000280c4 + 1" identifier + number_literal) + (parenthesized_expression "(DAT_000280c4 >> 1)" ( (binary_expression "DAT_000280c4 >> 1" identifier >> number_literal) )))) ;)) (expression_statement "iVar3 = uVar4 * 4;" (assignment_expression "iVar3 = uVar4 * 4" identifier = (binary_expression "uVar4 * 4" identifier * number_literal)) ;) (expression_statement "uVar5 = DAT_000280c4;" (assignment_expression "uVar5 = DAT_000280c4" identifier = identifier) ;) }))) (expression_statement "DAT_000280c4 = uVar4;" (assignment_expression "DAT_000280c4 = uVar4" identifier = identifier) ;) (expression_statement "piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);" (assignment_expression "piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3)" identifier = (cast_expression "(int *)FUN_0001c430(DAT_000280c8,iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c430(DAT_000280c8,iVar3)" identifier (argument_list "(DAT_000280c8,iVar3)" ( identifier , identifier ))))) ;) (expression_statement "uVar4 = uVar5;" (assignment_expression "uVar4 = uVar5" identifier = identifier) ;) (expression_statement "DAT_000280c8 = piVar1;" (assignment_expression "DAT_000280c8 = piVar1" identifier = identifier) ;) (if_statement "if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }" if (parenthesized_expression "(uVar5 < DAT_000280c4)" ( (binary_expression "uVar5 < DAT_000280c4" identifier < identifier) )) (compound_statement "{\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }" { (do_statement "do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);" do (compound_statement "{\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      }" { (expression_statement "piVar1[uVar4] = 0;" (assignment_expression "piVar1[uVar4] = 0" (subscript_expression "piVar1[uVar4]" identifier [ identifier ]) = number_literal) ;) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 < DAT_000280c4)" ( (binary_expression "uVar4 < DAT_000280c4" identifier < identifier) )) ;) })) (expression_statement "piVar2 = piVar1 + uVar5;" (assignment_expression "piVar2 = piVar1 + uVar5" identifier = (binary_expression "piVar1 + uVar5" identifier + identifier)) ;) (if_statement "if (piVar1[uVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }" if (parenthesized_expression "(piVar1[uVar5] != 0)" ( (binary_expression "piVar1[uVar5] != 0" (subscript_expression "piVar1[uVar5]" identifier [ identifier ]) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }" { comment (expression_statement "__assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");" (call_expression "__assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc")" identifier (argument_list "("0 == pids[i]","xargs.c",0x591,"add_proc")" ( (string_literal ""0 == pids[i]"" " string_content ") , (string_literal ""xargs.c"" " string_content ") , number_literal , (string_literal ""add_proc"" " string_content ") ))) ;) })) }) (else_clause "else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }" else (compound_statement "{\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }" { (expression_statement "piVar2 = DAT_000280c8;" (assignment_expression "piVar2 = DAT_000280c8" identifier = identifier) ;) (if_statement "if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }" if (parenthesized_expression "(*DAT_000280c8 == 0)" ( (binary_expression "*DAT_000280c8 == 0" (pointer_expression "*DAT_000280c8" * identifier) == number_literal) )) (compound_statement "{\n      uVar5 = 0;\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }" else (compound_statement "{\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);" do (compound_statement "{\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      }" { (expression_statement "piVar2 = piVar2 + 1;" (assignment_expression "piVar2 = piVar2 + 1" identifier = (binary_expression "piVar2 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (if_statement "if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }" if (parenthesized_expression "(uVar5 == DAT_000280c4)" ( (binary_expression "uVar5 == DAT_000280c4" identifier == identifier) )) (compound_statement "{\n          if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }" { (if_statement "if (0x15555554 < uVar5) {\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }" if (parenthesized_expression "(0x15555554 < uVar5)" ( (binary_expression "0x15555554 < uVar5" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_0001c620();\n          }" { comment (expression_statement "FUN_0001c620();" (call_expression "FUN_0001c620()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_00013afe;" goto statement_identifier ;) })) }) while (parenthesized_expression "(*piVar2 != 0)" ( (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" * identifier) != number_literal) )) ;) }))) }))) (expression_statement "*piVar2 = param_1;" (assignment_expression "*piVar2 = param_1" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "DAT_000280cc = DAT_000280cc + 1;" (assignment_expression "DAT_000280cc = DAT_000280cc + 1" identifier = (binary_expression "DAT_000280cc + 1" identifier + number_literal)) ;) (expression_statement "DAT_000280d0 = 1;" (assignment_expression "DAT_000280d0 = 1" identifier = number_literal) ;) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuint __regparm3 add_proc(pid_t pid)\n\n{\n  pid_t *ppVar1;\n  size_t sVar2;\n  int *piVar3;\n  size_t n;\n  uint uVar4;\n  size_t sVar5;\n  \n  if (pids_alloc == 0) {\n    if (pids == (pid_t *)0x0) {\n      sVar5 = 0;\n      n = 0x40;\n      sVar2 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      sVar2 = pids_alloc + 1 + (pids_alloc >> 1);\n      n = sVar2 * 4;\n      sVar5 = pids_alloc;\n    }\n    pids_alloc = sVar2;\n    ppVar1 = (pid_t *)xrealloc(pids,n);\n    uVar4 = sVar5;\n    pids = ppVar1;\n    if (sVar5 < pids_alloc) {\n      do {\n        ppVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < pids_alloc);\n    }\n    piVar3 = ppVar1 + sVar5;\n    if (ppVar1[sVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar3 = pids;\n    if (*pids == 0) {\n      sVar5 = 0;\n    }\n    else {\n      sVar5 = 0;\n      do {\n        piVar3 = piVar3 + 1;\n        sVar5 = sVar5 + 1;\n        if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar3 != 0);\n    }\n  }\n  *piVar3 = pid;\n  procs_executing = procs_executing + 1;\n  procs_executed = true;\n  return sVar5;\n}\n\n" comment (function_definition "uint __regparm3 add_proc(pid_t pid)\n\n{\n  pid_t *ppVar1;\n  size_t sVar2;\n  int *piVar3;\n  size_t n;\n  uint uVar4;\n  size_t sVar5;\n  \n  if (pids_alloc == 0) {\n    if (pids == (pid_t *)0x0) {\n      sVar5 = 0;\n      n = 0x40;\n      sVar2 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      sVar2 = pids_alloc + 1 + (pids_alloc >> 1);\n      n = sVar2 * 4;\n      sVar5 = pids_alloc;\n    }\n    pids_alloc = sVar2;\n    ppVar1 = (pid_t *)xrealloc(pids,n);\n    uVar4 = sVar5;\n    pids = ppVar1;\n    if (sVar5 < pids_alloc) {\n      do {\n        ppVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < pids_alloc);\n    }\n    piVar3 = ppVar1 + sVar5;\n    if (ppVar1[sVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar3 = pids;\n    if (*pids == 0) {\n      sVar5 = 0;\n    }\n    else {\n      sVar5 = 0;\n      do {\n        piVar3 = piVar3 + 1;\n        sVar5 = sVar5 + 1;\n        if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar3 != 0);\n    }\n  }\n  *piVar3 = pid;\n  procs_executing = procs_executing + 1;\n  procs_executed = true;\n  return sVar5;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "add_proc(pid_t pid)" identifier (parameter_list "(pid_t pid)" ( (parameter_declaration "pid_t pid" type_identifier identifier) ))) (compound_statement "{\n  pid_t *ppVar1;\n  size_t sVar2;\n  int *piVar3;\n  size_t n;\n  uint uVar4;\n  size_t sVar5;\n  \n  if (pids_alloc == 0) {\n    if (pids == (pid_t *)0x0) {\n      sVar5 = 0;\n      n = 0x40;\n      sVar2 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      sVar2 = pids_alloc + 1 + (pids_alloc >> 1);\n      n = sVar2 * 4;\n      sVar5 = pids_alloc;\n    }\n    pids_alloc = sVar2;\n    ppVar1 = (pid_t *)xrealloc(pids,n);\n    uVar4 = sVar5;\n    pids = ppVar1;\n    if (sVar5 < pids_alloc) {\n      do {\n        ppVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < pids_alloc);\n    }\n    piVar3 = ppVar1 + sVar5;\n    if (ppVar1[sVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar3 = pids;\n    if (*pids == 0) {\n      sVar5 = 0;\n    }\n    else {\n      sVar5 = 0;\n      do {\n        piVar3 = piVar3 + 1;\n        sVar5 = sVar5 + 1;\n        if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar3 != 0);\n    }\n  }\n  *piVar3 = pid;\n  procs_executing = procs_executing + 1;\n  procs_executed = true;\n  return sVar5;\n}" { (declaration "pid_t *ppVar1;" type_identifier (pointer_declarator "*ppVar1" * identifier) ;) (declaration "size_t sVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "size_t n;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "size_t sVar5;" primitive_type identifier ;) (if_statement "if (pids_alloc == 0) {\n    if (pids == (pid_t *)0x0) {\n      sVar5 = 0;\n      n = 0x40;\n      sVar2 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      sVar2 = pids_alloc + 1 + (pids_alloc >> 1);\n      n = sVar2 * 4;\n      sVar5 = pids_alloc;\n    }\n    pids_alloc = sVar2;\n    ppVar1 = (pid_t *)xrealloc(pids,n);\n    uVar4 = sVar5;\n    pids = ppVar1;\n    if (sVar5 < pids_alloc) {\n      do {\n        ppVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < pids_alloc);\n    }\n    piVar3 = ppVar1 + sVar5;\n    if (ppVar1[sVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar3 = pids;\n    if (*pids == 0) {\n      sVar5 = 0;\n    }\n    else {\n      sVar5 = 0;\n      do {\n        piVar3 = piVar3 + 1;\n        sVar5 = sVar5 + 1;\n        if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar3 != 0);\n    }\n  }" if (parenthesized_expression "(pids_alloc == 0)" ( (binary_expression "pids_alloc == 0" identifier == number_literal) )) (compound_statement "{\n    if (pids == (pid_t *)0x0) {\n      sVar5 = 0;\n      n = 0x40;\n      sVar2 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      sVar2 = pids_alloc + 1 + (pids_alloc >> 1);\n      n = sVar2 * 4;\n      sVar5 = pids_alloc;\n    }\n    pids_alloc = sVar2;\n    ppVar1 = (pid_t *)xrealloc(pids,n);\n    uVar4 = sVar5;\n    pids = ppVar1;\n    if (sVar5 < pids_alloc) {\n      do {\n        ppVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < pids_alloc);\n    }\n    piVar3 = ppVar1 + sVar5;\n    if (ppVar1[sVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }" { (if_statement "if (pids == (pid_t *)0x0) {\n      sVar5 = 0;\n      n = 0x40;\n      sVar2 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      sVar2 = pids_alloc + 1 + (pids_alloc >> 1);\n      n = sVar2 * 4;\n      sVar5 = pids_alloc;\n    }" if (parenthesized_expression "(pids == (pid_t *)0x0)" ( (binary_expression "pids == (pid_t *)0x0" identifier == (cast_expression "(pid_t *)0x0" ( (type_descriptor "pid_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sVar5 = 0;\n      n = 0x40;\n      sVar2 = 0x10;\n    }" { (expression_statement "sVar5 = 0;" (assignment_expression "sVar5 = 0" identifier = number_literal) ;) (expression_statement "n = 0x40;" (assignment_expression "n = 0x40" identifier = number_literal) ;) (expression_statement "sVar2 = 0x10;" (assignment_expression "sVar2 = 0x10" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00013afe:\n      sVar2 = pids_alloc + 1 + (pids_alloc >> 1);\n      n = sVar2 * 4;\n      sVar5 = pids_alloc;\n    }" else (compound_statement "{\nLAB_00013afe:\n      sVar2 = pids_alloc + 1 + (pids_alloc >> 1);\n      n = sVar2 * 4;\n      sVar5 = pids_alloc;\n    }" { (labeled_statement "LAB_00013afe:\n      sVar2 = pids_alloc + 1 + (pids_alloc >> 1);" statement_identifier : (expression_statement "sVar2 = pids_alloc + 1 + (pids_alloc >> 1);" (assignment_expression "sVar2 = pids_alloc + 1 + (pids_alloc >> 1)" identifier = (binary_expression "pids_alloc + 1 + (pids_alloc >> 1)" (binary_expression "pids_alloc + 1" identifier + number_literal) + (parenthesized_expression "(pids_alloc >> 1)" ( (binary_expression "pids_alloc >> 1" identifier >> number_literal) )))) ;)) (expression_statement "n = sVar2 * 4;" (assignment_expression "n = sVar2 * 4" identifier = (binary_expression "sVar2 * 4" identifier * number_literal)) ;) (expression_statement "sVar5 = pids_alloc;" (assignment_expression "sVar5 = pids_alloc" identifier = identifier) ;) }))) (expression_statement "pids_alloc = sVar2;" (assignment_expression "pids_alloc = sVar2" identifier = identifier) ;) (expression_statement "ppVar1 = (pid_t *)xrealloc(pids,n);" (assignment_expression "ppVar1 = (pid_t *)xrealloc(pids,n)" identifier = (cast_expression "(pid_t *)xrealloc(pids,n)" ( (type_descriptor "pid_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(pids,n)" identifier (argument_list "(pids,n)" ( identifier , identifier ))))) ;) (expression_statement "uVar4 = sVar5;" (assignment_expression "uVar4 = sVar5" identifier = identifier) ;) (expression_statement "pids = ppVar1;" (assignment_expression "pids = ppVar1" identifier = identifier) ;) (if_statement "if (sVar5 < pids_alloc) {\n      do {\n        ppVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < pids_alloc);\n    }" if (parenthesized_expression "(sVar5 < pids_alloc)" ( (binary_expression "sVar5 < pids_alloc" identifier < identifier) )) (compound_statement "{\n      do {\n        ppVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < pids_alloc);\n    }" { (do_statement "do {\n        ppVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < pids_alloc);" do (compound_statement "{\n        ppVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      }" { (expression_statement "ppVar1[uVar4] = 0;" (assignment_expression "ppVar1[uVar4] = 0" (subscript_expression "ppVar1[uVar4]" identifier [ identifier ]) = number_literal) ;) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 < pids_alloc)" ( (binary_expression "uVar4 < pids_alloc" identifier < identifier) )) ;) })) (expression_statement "piVar3 = ppVar1 + sVar5;" (assignment_expression "piVar3 = ppVar1 + sVar5" identifier = (binary_expression "ppVar1 + sVar5" identifier + identifier)) ;) (if_statement "if (ppVar1[sVar5] != 0) {\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }" if (parenthesized_expression "(ppVar1[sVar5] != 0)" ( (binary_expression "ppVar1[sVar5] != 0" (subscript_expression "ppVar1[sVar5]" identifier [ identifier ]) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }" { comment (expression_statement "__assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");" (call_expression "__assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc")" identifier (argument_list "("0 == pids[i]","xargs.c",0x591,"add_proc")" ( (string_literal ""0 == pids[i]"" " string_content ") , (string_literal ""xargs.c"" " string_content ") , number_literal , (string_literal ""add_proc"" " string_content ") ))) ;) })) }) (else_clause "else {\n    piVar3 = pids;\n    if (*pids == 0) {\n      sVar5 = 0;\n    }\n    else {\n      sVar5 = 0;\n      do {\n        piVar3 = piVar3 + 1;\n        sVar5 = sVar5 + 1;\n        if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar3 != 0);\n    }\n  }" else (compound_statement "{\n    piVar3 = pids;\n    if (*pids == 0) {\n      sVar5 = 0;\n    }\n    else {\n      sVar5 = 0;\n      do {\n        piVar3 = piVar3 + 1;\n        sVar5 = sVar5 + 1;\n        if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar3 != 0);\n    }\n  }" { (expression_statement "piVar3 = pids;" (assignment_expression "piVar3 = pids" identifier = identifier) ;) (if_statement "if (*pids == 0) {\n      sVar5 = 0;\n    }\n    else {\n      sVar5 = 0;\n      do {\n        piVar3 = piVar3 + 1;\n        sVar5 = sVar5 + 1;\n        if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar3 != 0);\n    }" if (parenthesized_expression "(*pids == 0)" ( (binary_expression "*pids == 0" (pointer_expression "*pids" * identifier) == number_literal) )) (compound_statement "{\n      sVar5 = 0;\n    }" { (expression_statement "sVar5 = 0;" (assignment_expression "sVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      sVar5 = 0;\n      do {\n        piVar3 = piVar3 + 1;\n        sVar5 = sVar5 + 1;\n        if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar3 != 0);\n    }" else (compound_statement "{\n      sVar5 = 0;\n      do {\n        piVar3 = piVar3 + 1;\n        sVar5 = sVar5 + 1;\n        if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar3 != 0);\n    }" { (expression_statement "sVar5 = 0;" (assignment_expression "sVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n        piVar3 = piVar3 + 1;\n        sVar5 = sVar5 + 1;\n        if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar3 != 0);" do (compound_statement "{\n        piVar3 = piVar3 + 1;\n        sVar5 = sVar5 + 1;\n        if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }\n      }" { (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" identifier = (binary_expression "piVar3 + 1" identifier + number_literal)) ;) (expression_statement "sVar5 = sVar5 + 1;" (assignment_expression "sVar5 = sVar5 + 1" identifier = (binary_expression "sVar5 + 1" identifier + number_literal)) ;) (if_statement "if (sVar5 == pids_alloc) {\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }" if (parenthesized_expression "(sVar5 == pids_alloc)" ( (binary_expression "sVar5 == pids_alloc" identifier == identifier) )) (compound_statement "{\n          if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }\n          goto LAB_00013afe;\n        }" { (if_statement "if (0x15555554 < sVar5) {\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }" if (parenthesized_expression "(0x15555554 < sVar5)" ( (binary_expression "0x15555554 < sVar5" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            xalloc_die();\n          }" { comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_00013afe;" goto statement_identifier ;) })) }) while (parenthesized_expression "(*piVar3 != 0)" ( (binary_expression "*piVar3 != 0" (pointer_expression "*piVar3" * identifier) != number_literal) )) ;) }))) }))) (expression_statement "*piVar3 = pid;" (assignment_expression "*piVar3 = pid" (pointer_expression "*piVar3" * identifier) = identifier) ;) (expression_statement "procs_executing = procs_executing + 1;" (assignment_expression "procs_executing = procs_executing + 1" identifier = (binary_expression "procs_executing + 1" identifier + number_literal)) ;) (expression_statement "procs_executed = true;" (assignment_expression "procs_executed = true" identifier = true) ;) (return_statement "return sVar5;" return identifier ;) })))
(translation_unit "uint __regparm3 FUN_00013aa0(int param_1)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  if (DAT_000280c4 == 0) {\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }\n  *piVar2 = param_1;\n  DAT_000280cc = DAT_000280cc + 1;\n  DAT_000280d0 = 1;\n  return uVar5;\n}\n\n" (function_definition "uint __regparm3 FUN_00013aa0(int param_1)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  if (DAT_000280c4 == 0) {\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }\n  *piVar2 = param_1;\n  DAT_000280cc = DAT_000280cc + 1;\n  DAT_000280d0 = 1;\n  return uVar5;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_00013aa0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  if (DAT_000280c4 == 0) {\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }\n  *piVar2 = param_1;\n  DAT_000280cc = DAT_000280cc + 1;\n  DAT_000280d0 = 1;\n  return uVar5;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (if_statement "if (DAT_000280c4 == 0) {\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }" if (parenthesized_expression "(DAT_000280c4 == 0)" ( (binary_expression "DAT_000280c4 == 0" identifier == number_literal) )) (compound_statement "{\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }" { (if_statement "if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }" if (parenthesized_expression "(DAT_000280c8 == (int *)0x0)" ( (binary_expression "DAT_000280c8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0x40;" (assignment_expression "iVar3 = 0x40" identifier = number_literal) ;) (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }" else (compound_statement "{\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }" { (labeled_statement "LAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);" statement_identifier : (expression_statement "uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);" (assignment_expression "uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1)" identifier = (binary_expression "DAT_000280c4 + 1 + (DAT_000280c4 >> 1)" (binary_expression "DAT_000280c4 + 1" identifier + number_literal) + (parenthesized_expression "(DAT_000280c4 >> 1)" ( (binary_expression "DAT_000280c4 >> 1" identifier >> number_literal) )))) ;)) (expression_statement "iVar3 = uVar4 * 4;" (assignment_expression "iVar3 = uVar4 * 4" identifier = (binary_expression "uVar4 * 4" identifier * number_literal)) ;) (expression_statement "uVar5 = DAT_000280c4;" (assignment_expression "uVar5 = DAT_000280c4" identifier = identifier) ;) }))) (expression_statement "DAT_000280c4 = uVar4;" (assignment_expression "DAT_000280c4 = uVar4" identifier = identifier) ;) (expression_statement "piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);" (assignment_expression "piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3)" identifier = (cast_expression "(int *)FUN_0001c430(DAT_000280c8,iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c430(DAT_000280c8,iVar3)" identifier (argument_list "(DAT_000280c8,iVar3)" ( identifier , identifier ))))) ;) (expression_statement "uVar4 = uVar5;" (assignment_expression "uVar4 = uVar5" identifier = identifier) ;) (expression_statement "DAT_000280c8 = piVar1;" (assignment_expression "DAT_000280c8 = piVar1" identifier = identifier) ;) (if_statement "if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }" if (parenthesized_expression "(uVar5 < DAT_000280c4)" ( (binary_expression "uVar5 < DAT_000280c4" identifier < identifier) )) (compound_statement "{\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }" { (do_statement "do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);" do (compound_statement "{\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      }" { (expression_statement "piVar1[uVar4] = 0;" (assignment_expression "piVar1[uVar4] = 0" (subscript_expression "piVar1[uVar4]" identifier [ identifier ]) = number_literal) ;) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 < DAT_000280c4)" ( (binary_expression "uVar4 < DAT_000280c4" identifier < identifier) )) ;) })) (expression_statement "piVar2 = piVar1 + uVar5;" (assignment_expression "piVar2 = piVar1 + uVar5" identifier = (binary_expression "piVar1 + uVar5" identifier + identifier)) ;) (if_statement "if (piVar1[uVar5] != 0) {\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }" if (parenthesized_expression "(piVar1[uVar5] != 0)" ( (binary_expression "piVar1[uVar5] != 0" (subscript_expression "piVar1[uVar5]" identifier [ identifier ]) != number_literal) )) (compound_statement "{\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }" { (expression_statement "__assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");" (call_expression "__assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc")" identifier (argument_list "("0 == pids[i]","xargs.c",0x591,"add_proc")" ( (string_literal ""0 == pids[i]"" " string_content ") , (string_literal ""xargs.c"" " string_content ") , number_literal , (string_literal ""add_proc"" " string_content ") ))) ;) })) }) (else_clause "else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }" else (compound_statement "{\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }" { (expression_statement "piVar2 = DAT_000280c8;" (assignment_expression "piVar2 = DAT_000280c8" identifier = identifier) ;) (if_statement "if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }" if (parenthesized_expression "(*DAT_000280c8 == 0)" ( (binary_expression "*DAT_000280c8 == 0" (pointer_expression "*DAT_000280c8" * identifier) == number_literal) )) (compound_statement "{\n      uVar5 = 0;\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }" else (compound_statement "{\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);" do (compound_statement "{\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      }" { (expression_statement "piVar2 = piVar2 + 1;" (assignment_expression "piVar2 = piVar2 + 1" identifier = (binary_expression "piVar2 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (if_statement "if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }" if (parenthesized_expression "(uVar5 == DAT_000280c4)" ( (binary_expression "uVar5 == DAT_000280c4" identifier == identifier) )) (compound_statement "{\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }" { (if_statement "if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }" if (parenthesized_expression "(0x15555554 < uVar5)" ( (binary_expression "0x15555554 < uVar5" number_literal < identifier) )) (compound_statement "{\n                    \n            FUN_0001c620();\n          }" { (expression_statement "FUN_0001c620();" (call_expression "FUN_0001c620()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_00013afe;" goto statement_identifier ;) })) }) while (parenthesized_expression "(*piVar2 != 0)" ( (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" * identifier) != number_literal) )) ;) }))) }))) (expression_statement "*piVar2 = param_1;" (assignment_expression "*piVar2 = param_1" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "DAT_000280cc = DAT_000280cc + 1;" (assignment_expression "DAT_000280cc = DAT_000280cc + 1" identifier = (binary_expression "DAT_000280cc + 1" identifier + number_literal)) ;) (expression_statement "DAT_000280d0 = 1;" (assignment_expression "DAT_000280d0 = 1" identifier = number_literal) ;) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) }))) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return IDENT ;) })))
(function_definition "uint __regparm3 FUN_00013aa0(int param_1)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  if (DAT_000280c4 == 0) {\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }\n  *piVar2 = param_1;\n  DAT_000280cc = DAT_000280cc + 1;\n  DAT_000280d0 = 1;\n  return uVar5;\n}" (type_identifier "uint") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00013aa0(int param_1)" (identifier "FUN_00013aa0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  uint uVar4;\n  uint uVar5;\n  \n  if (DAT_000280c4 == 0) {\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }\n  *piVar2 = param_1;\n  DAT_000280cc = DAT_000280cc + 1;\n  DAT_000280d0 = 1;\n  return uVar5;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (if_statement "if (DAT_000280c4 == 0) {\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }\n  else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }" (if "if") (parenthesized_expression "(DAT_000280c4 == 0)" (( "(") (binary_expression "DAT_000280c4 == 0" (identifier "DAT_000280c4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }\n    DAT_000280c4 = uVar4;\n    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);\n    uVar4 = uVar5;\n    DAT_000280c8 = piVar1;\n    if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }\n    piVar2 = piVar1 + uVar5;\n    if (piVar1[uVar5] != 0) {\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }\n  }" ({ "{") (if_statement "if (DAT_000280c8 == (int *)0x0) {\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }\n    else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }" (if "if") (parenthesized_expression "(DAT_000280c8 == (int *)0x0)" (( "(") (binary_expression "DAT_000280c8 == (int *)0x0" (identifier "DAT_000280c8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar5 = 0;\n      iVar3 = 0x40;\n      uVar4 = 0x10;\n    }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = 0x40;" (assignment_expression "iVar3 = 0x40" (identifier "iVar3") (= "=") (number_literal "0x40")) (; ";")) (expression_statement "uVar4 = 0x10;" (assignment_expression "uVar4 = 0x10" (identifier "uVar4") (= "=") (number_literal "0x10")) (; ";")) (} "}")) (else_clause "else {\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }" (else "else") (compound_statement "{\nLAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);\n      iVar3 = uVar4 * 4;\n      uVar5 = DAT_000280c4;\n    }" ({ "{") (labeled_statement "LAB_00013afe:\n      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);" (statement_identifier "LAB_00013afe") (: ":") (expression_statement "uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);" (assignment_expression "uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1)" (identifier "uVar4") (= "=") (binary_expression "DAT_000280c4 + 1 + (DAT_000280c4 >> 1)" (binary_expression "DAT_000280c4 + 1" (identifier "DAT_000280c4") (+ "+") (number_literal "1")) (+ "+") (parenthesized_expression "(DAT_000280c4 >> 1)" (( "(") (binary_expression "DAT_000280c4 >> 1" (identifier "DAT_000280c4") (>> ">>") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "iVar3 = uVar4 * 4;" (assignment_expression "iVar3 = uVar4 * 4" (identifier "iVar3") (= "=") (binary_expression "uVar4 * 4" (identifier "uVar4") (* "*") (number_literal "4"))) (; ";")) (expression_statement "uVar5 = DAT_000280c4;" (assignment_expression "uVar5 = DAT_000280c4" (identifier "uVar5") (= "=") (identifier "DAT_000280c4")) (; ";")) (} "}")))) (expression_statement "DAT_000280c4 = uVar4;" (assignment_expression "DAT_000280c4 = uVar4" (identifier "DAT_000280c4") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);" (assignment_expression "piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3)" (identifier "piVar1") (= "=") (cast_expression "(int *)FUN_0001c430(DAT_000280c8,iVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001c430(DAT_000280c8,iVar3)" (identifier "FUN_0001c430") (argument_list "(DAT_000280c8,iVar3)" (( "(") (identifier "DAT_000280c8") (, ",") (identifier "iVar3") () ")"))))) (; ";")) (expression_statement "uVar4 = uVar5;" (assignment_expression "uVar4 = uVar5" (identifier "uVar4") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "DAT_000280c8 = piVar1;" (assignment_expression "DAT_000280c8 = piVar1" (identifier "DAT_000280c8") (= "=") (identifier "piVar1")) (; ";")) (if_statement "if (uVar5 < DAT_000280c4) {\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }" (if "if") (parenthesized_expression "(uVar5 < DAT_000280c4)" (( "(") (binary_expression "uVar5 < DAT_000280c4" (identifier "uVar5") (< "<") (identifier "DAT_000280c4")) () ")")) (compound_statement "{\n      do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);\n    }" ({ "{") (do_statement "do {\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      } while (uVar4 < DAT_000280c4);" (do "do") (compound_statement "{\n        piVar1[uVar4] = 0;\n        uVar4 = uVar4 + 1;\n      }" ({ "{") (expression_statement "piVar1[uVar4] = 0;" (assignment_expression "piVar1[uVar4] = 0" (subscript_expression "piVar1[uVar4]" (identifier "piVar1") ([ "[") (identifier "uVar4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" (identifier "uVar4") (= "=") (binary_expression "uVar4 + 1" (identifier "uVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar4 < DAT_000280c4)" (( "(") (binary_expression "uVar4 < DAT_000280c4" (identifier "uVar4") (< "<") (identifier "DAT_000280c4")) () ")")) (; ";")) (} "}"))) (expression_statement "piVar2 = piVar1 + uVar5;" (assignment_expression "piVar2 = piVar1 + uVar5" (identifier "piVar2") (= "=") (binary_expression "piVar1 + uVar5" (identifier "piVar1") (+ "+") (identifier "uVar5"))) (; ";")) (if_statement "if (piVar1[uVar5] != 0) {\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }" (if "if") (parenthesized_expression "(piVar1[uVar5] != 0)" (( "(") (binary_expression "piVar1[uVar5] != 0" (subscript_expression "piVar1[uVar5]" (identifier "piVar1") ([ "[") (identifier "uVar5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");\n    }" ({ "{") (expression_statement "__assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");" (call_expression "__assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc")" (identifier "__assert_fail") (argument_list "("0 == pids[i]","xargs.c",0x591,"add_proc")" (( "(") (string_literal ""0 == pids[i]"" (" """) (string_content "0 == pids[i]") (" """)) (, ",") (string_literal ""xargs.c"" (" """) (string_content "xargs.c") (" """)) (, ",") (number_literal "0x591") (, ",") (string_literal ""add_proc"" (" """) (string_content "add_proc") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }" (else "else") (compound_statement "{\n    piVar2 = DAT_000280c8;\n    if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }\n  }" ({ "{") (expression_statement "piVar2 = DAT_000280c8;" (assignment_expression "piVar2 = DAT_000280c8" (identifier "piVar2") (= "=") (identifier "DAT_000280c8")) (; ";")) (if_statement "if (*DAT_000280c8 == 0) {\n      uVar5 = 0;\n    }\n    else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }" (if "if") (parenthesized_expression "(*DAT_000280c8 == 0)" (( "(") (binary_expression "*DAT_000280c8 == 0" (pointer_expression "*DAT_000280c8" (* "*") (identifier "DAT_000280c8")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar5 = 0;\n    }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }" (else "else") (compound_statement "{\n      uVar5 = 0;\n      do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);\n    }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      } while (*piVar2 != 0);" (do "do") (compound_statement "{\n        piVar2 = piVar2 + 1;\n        uVar5 = uVar5 + 1;\n        if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }\n      }" ({ "{") (expression_statement "piVar2 = piVar2 + 1;" (assignment_expression "piVar2 = piVar2 + 1" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 1" (identifier "piVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar5 == DAT_000280c4) {\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }" (if "if") (parenthesized_expression "(uVar5 == DAT_000280c4)" (( "(") (binary_expression "uVar5 == DAT_000280c4" (identifier "uVar5") (== "==") (identifier "DAT_000280c4")) () ")")) (compound_statement "{\n          if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }\n          goto LAB_00013afe;\n        }" ({ "{") (if_statement "if (0x15555554 < uVar5) {\n                    \n            FUN_0001c620();\n          }" (if "if") (parenthesized_expression "(0x15555554 < uVar5)" (( "(") (binary_expression "0x15555554 < uVar5" (number_literal "0x15555554") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n                    \n            FUN_0001c620();\n          }" ({ "{") (expression_statement "FUN_0001c620();" (call_expression "FUN_0001c620()" (identifier "FUN_0001c620") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00013afe;" (goto "goto") (statement_identifier "LAB_00013afe") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(*piVar2 != 0)" (( "(") (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}")))) (} "}")))) (expression_statement "*piVar2 = param_1;" (assignment_expression "*piVar2 = param_1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "DAT_000280cc = DAT_000280cc + 1;" (assignment_expression "DAT_000280cc = DAT_000280cc + 1" (identifier "DAT_000280cc") (= "=") (binary_expression "DAT_000280cc + 1" (identifier "DAT_000280cc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "DAT_000280d0 = 1;" (assignment_expression "DAT_000280d0 = 1" (identifier "DAT_000280d0") (= "=") (number_literal "1")) (; ";")) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

type_1 __regparm3 function_1(type_2 pid)

{
  type_2 *var_7;
  size_t var_3;
  int *var_9;
  size_t n;
  type_1 var_6;
  size_t var_5;
  
  if (var_1 == 0) {
    if (var_2 == (type_2 *)0x0) {
      var_5 = 0;
      n = 0x40;
      var_3 = 0x10;
    }
    else {
LAB_00013afe:
      var_3 = var_1 + 1 + (var_1 >> 1);
      n = var_3 * 4;
      var_5 = var_1;
    }
    var_1 = var_3;
    var_7 = (type_2 *)var_4(var_2,n);
    var_6 = var_5;
    var_2 = var_7;
    if (var_5 < var_1) {
      do {
        var_7[var_6] = 0;
        var_6 = var_6 + 1;
      } while (var_6 < var_1);
    }
    var_9 = var_7 + var_5;
    if (var_7[var_5] != 0) {
                    /* WARNING: Subroutine does not return */
      var_8("0 == pids[i]","xargs.c",0x591,"add_proc");
    }
  }
  else {
    var_9 = var_2;
    if (*var_2 == 0) {
      var_5 = 0;
    }
    else {
      var_5 = 0;
      do {
        var_9 = var_9 + 1;
        var_5 = var_5 + 1;
        if (var_5 == var_1) {
          if (0x15555554 < var_5) {
                    /* WARNING: Subroutine does not return */
            var_10();
          }
          goto LAB_00013afe;
        }
      } while (*var_9 != 0);
    }
  }
  *var_9 = pid;
  var_11 = var_11 + 1;
  procs_executed = true;
  return var_5;
}


(translation_unit (function_definition type: (type_identifier) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (goto_statement label: (statement_identifier))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (return_statement (identifier)))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

uint __regparm3 MASKED(int param_1)

{
  int *piVar1;
  int *piVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  
  if (DAT_000280c4 == 0) {
    if (DAT_000280c8 == (int *)0x0) {
      uVar5 = 0;
      iVar3 = 0x40;
      uVar4 = 0x10;
    }
    else {
LAB_00013afe:
      uVar4 = DAT_000280c4 + 1 + (DAT_000280c4 >> 1);
      iVar3 = uVar4 * 4;
      uVar5 = DAT_000280c4;
    }
    DAT_000280c4 = uVar4;
    piVar1 = (int *)FUN_0001c430(DAT_000280c8,iVar3);
    uVar4 = uVar5;
    DAT_000280c8 = piVar1;
    if (uVar5 < DAT_000280c4) {
      do {
        piVar1[uVar4] = 0;
        uVar4 = uVar4 + 1;
      } while (uVar4 < DAT_000280c4);
    }
    piVar2 = piVar1 + uVar5;
    if (piVar1[uVar5] != 0) {
                    /* WARNING: Subroutine does not return */
      __assert_fail("0 == pids[i]","xargs.c",0x591,"add_proc");
    }
  }
  else {
    piVar2 = DAT_000280c8;
    if (*DAT_000280c8 == 0) {
      uVar5 = 0;
    }
    else {
      uVar5 = 0;
      do {
        piVar2 = piVar2 + 1;
        uVar5 = uVar5 + 1;
        if (uVar5 == DAT_000280c4) {
          if (0x15555554 < uVar5) {
                    /* WARNING: Subroutine does not return */
            FUN_0001c620();
          }
          goto LAB_00013afe;
        }
      } while (*piVar2 != 0);
    }
  }
  *piVar2 = param_1;
  DAT_000280cc = DAT_000280cc + 1;
  DAT_000280d0 = 1;
  return uVar5;
}

