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

_Bool is_non_fatal_std(FILE *fp)

{
  exp_node *peVar1;
  char *pcVar2;
  NODE *pNVar3;
  exp_node **ppeVar4;
  wchar_t wVar5;
  int *piVar6;
  char *mesg;
  _Bool _Var7;
  
  if (PROCINFO_node != (NODE *)0x0) {
    pcVar2 = (char *)malloc(9);
    if (pcVar2 == (char *)0x0) {
      set_loc("awk.h",0x7c9);
      piVar6 = __errno_location();
      pcVar2 = strerror(*piVar6);
      mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);
                    /* WARNING: Subroutine does not return */
      r_fatal(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar2);
    }
    pNVar3 = make_str_node(pcVar2,8,2);
    builtin_strncpy((pNVar3->sub).val.sp,"NONFATAL",9);
    ppeVar4 = (*((PROCINFO_node->sub).nodep.l.lp)->exists)(PROCINFO_node,pNVar3);
    if (ppeVar4 == (exp_node **)0x0) {
      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';
      (pNVar3->sub).val.sref = wVar5;
      if (wVar5 < L'\x01') {
        r_unref(pNVar3);
      }
    }
    else {
      peVar1 = *ppeVar4;
      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';
      (pNVar3->sub).val.sref = wVar5;
      if (wVar5 < L'\x01') {
        r_unref(pNVar3);
      }
      if (peVar1 != (exp_node *)0x0) {
        return true;
      }
    }
  }
  if (*(FILE **)PTR_stdout_000dcfc8 == fp) {
    pNVar3 = in_PROCINFO("-","NONFATAL",(NODE **)0x0);
    _Var7 = true;
    if (pNVar3 == (NODE *)0x0) {
      pNVar3 = in_PROCINFO("/dev/stdout","NONFATAL",(NODE **)0x0);
      _Var7 = pNVar3 != (NODE *)0x0;
    }
  }
  else {
    _Var7 = false;
    if (*(FILE **)PTR_stderr_000dcf78 == fp) {
      pNVar3 = in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0);
      _Var7 = pNVar3 != (NODE *)0x0;
    }
  }
  return _Var7;
}



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

bool FUN_0006cf70(int param_1)

{
  undefined4 *puVar1;
  void *pvVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  char *pcVar7;
  undefined4 uVar8;
  bool bVar9;
  
  if (DAT_000e2a08 != (int *)0x0) {
    pvVar2 = malloc(9);
    if (pvVar2 == (void *)0x0) {
      FUN_00074330("awk.h",0x7c9);
      piVar4 = __errno_location();
      pcVar7 = strerror(*piVar4);
      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);
      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);
    }
    iVar3 = FUN_00076970(pvVar2,8,2);
    puVar1 = *(undefined4 **)(iVar3 + 8);
    *puVar1 = 0x464e4f4e;
    puVar1[1] = 0x4c415441;
    *(undefined1 *)(puVar1 + 2) = 0;
    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);
    if (piVar4 == (int *)0x0) {
      iVar6 = *(int *)(iVar3 + 0x10) + -1;
      *(int *)(iVar3 + 0x10) = iVar6;
      if (iVar6 < 1) {
        FUN_00075360(iVar3);
      }
    }
    else {
      iVar6 = *piVar4;
      iVar5 = *(int *)(iVar3 + 0x10) + -1;
      *(int *)(iVar3 + 0x10) = iVar5;
      if (iVar5 < 1) {
        FUN_00075360(iVar3);
      }
      if (iVar6 != 0) {
        return true;
      }
    }
  }
  if (*(int *)PTR_stdout_000dcfc8 == param_1) {
    iVar3 = FUN_0006b370();
    bVar9 = true;
    if (iVar3 == 0) {
      iVar3 = FUN_0006b370();
      bVar9 = iVar3 != 0;
    }
  }
  else {
    bVar9 = false;
    if (*(int *)PTR_stderr_000dcf78 == param_1) {
      iVar3 = FUN_0006b370();
      bVar9 = iVar3 != 0;
    }
  }
  return bVar9;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016f80
ADD EBX,0x6fd6b
SUB ESP,0xc
LEA EDI,[EBX + 0x5d24]
MOV EAX,dword ptr [EDI]
TEST EAX,EAX
JZ 0x0006d020
SUB ESP,0xc
PUSH 0x9
CALL 0x00014140
ADD ESP,0x10
TEST EAX,EAX
MOV ESI,EAX
JZ 0x0006d0b0
SUB ESP,0x4
PUSH 0x2
PUSH 0x8
PUSH ESI
CALL 0x00076970
MOV ESI,EAX
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EAX],0x464e4f4e
MOV dword ptr [EAX + 0x4],0x4c415441
MOV byte ptr [EAX + 0x8],0x0
MOV EAX,dword ptr [EDI]
POP EDX
POP ECX
MOV EDX,dword ptr [EAX]
PUSH ESI
PUSH EAX
CALL dword ptr [EDX + 0x10]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0006d000
MOV EDI,dword ptr [EAX]
MOV EAX,dword ptr [ESI + 0x10]
SUB EAX,0x1
TEST EAX,EAX
MOV dword ptr [ESI + 0x10],EAX
JLE 0x0006d058
TEST EDI,EDI
MOV EAX,0x1
JZ 0x0006d020
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESI + 0x10]
SUB EAX,0x1
TEST EAX,EAX
MOV dword ptr [ESI + 0x10],EAX
JG 0x0006d020
SUB ESP,0xc
PUSH ESI
CALL 0x00075360
ADD ESP,0x10
LEA ESI,[ESI]
MOV EAX,dword ptr [EBX + 0x2e4]
MOV ECX,dword ptr [ESP + 0x20]
CMP dword ptr [EAX],ECX
JZ 0x0006d070
MOV EDX,dword ptr [EBX + 0x294]
XOR EAX,EAX
CMP dword ptr [EDX],ECX
JNZ 0x0006cff6
LEA EDX,[EBX + 0xfffcfeb0]
LEA EAX,[EBX + 0xfffc82a7]
XOR ECX,ECX
CALL 0x0006b370
TEST EAX,EAX
SETNZ AL
JMP 0x0006cff6
SUB ESP,0xc
PUSH ESI
CALL 0x00075360
ADD ESP,0x10
JMP 0x0006cfed
LEA EDX,[EBX + 0xfffcfeb0]
LEA EAX,[EBX + 0xfffcd21e]
XOR ECX,ECX
CALL 0x0006b370
MOV EDX,EAX
MOV EAX,0x1
TEST EDX,EDX
JNZ 0x0006cff6
LEA EDX,[EBX + 0xfffcfeb0]
LEA EAX,[EBX + 0xfffc82b3]
XOR ECX,ECX
CALL 0x0006b370
TEST EAX,EAX
SETNZ AL
JMP 0x0006cff6
LEA EAX,[EBX + 0xfffc4704]
SUB ESP,0x8
PUSH 0x7c9
PUSH EAX
CALL 0x00074330
CALL 0x00014330
POP EBP
PUSH dword ptr [EAX]
CALL 0x00014180
MOV EBP,EAX
LEA EAX,[EBX + 0xfffc48f4]
ADD ESP,0xc
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013f40
LEA EDX,[EBX + 0xfffd1269]
ADD ESP,0xc
PUSH EBP
PUSH 0x9
PUSH EDX
LEA EDX,[EBX + 0xfffcf1fb]
PUSH EDX
LEA EDX,[EBX + 0xfffcf178]
PUSH 0x10ac
PUSH EDX
PUSH EAX
CALL 0x00074d10
ADD ESP,0x20
JMP 0x0006cfa9
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nbool FUN_0006cf70(int param_1)\n\n{\n  undefined4 *puVar1;\n  void *pvVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  bool bVar9;\n  \n  if (DAT_000e2a08 != (int *)0x0) {\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }\n  if (*(int *)PTR_stdout_000dcfc8 == param_1) {\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  return bVar9;\n}\n\n" comment (function_definition "bool FUN_0006cf70(int param_1)\n\n{\n  undefined4 *puVar1;\n  void *pvVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  bool bVar9;\n  \n  if (DAT_000e2a08 != (int *)0x0) {\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }\n  if (*(int *)PTR_stdout_000dcfc8 == param_1) {\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  return bVar9;\n}" primitive_type (function_declarator "FUN_0006cf70(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  void *pvVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  bool bVar9;\n  \n  if (DAT_000e2a08 != (int *)0x0) {\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }\n  if (*(int *)PTR_stdout_000dcfc8 == param_1) {\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  return bVar9;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "void *pvVar2;" primitive_type (pointer_declarator "*pvVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "bool bVar9;" primitive_type identifier ;) (if_statement "if (DAT_000e2a08 != (int *)0x0) {\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }" if (parenthesized_expression "(DAT_000e2a08 != (int *)0x0)" ( (binary_expression "DAT_000e2a08 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }" { (expression_statement "pvVar2 = malloc(9);" (assignment_expression "pvVar2 = malloc(9)" identifier = (call_expression "malloc(9)" identifier (argument_list "(9)" ( number_literal )))) ;) (if_statement "if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }" if (parenthesized_expression "(pvVar2 == (void *)0x0)" ( (binary_expression "pvVar2 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }" { (expression_statement "FUN_00074330("awk.h",0x7c9);" (call_expression "FUN_00074330("awk.h",0x7c9)" identifier (argument_list "("awk.h",0x7c9)" ( (string_literal ""awk.h"" " string_content ") , number_literal ))) ;) (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar7 = strerror(*piVar4);" (assignment_expression "pcVar7 = strerror(*piVar4)" identifier = (call_expression "strerror(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);" (assignment_expression "uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" identifier = (call_expression "dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" identifier (argument_list "(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" ( number_literal , (string_literal ""%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);" (call_expression "FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7)" identifier (argument_list "(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7)" ( identifier , (pointer_expression "&DAT_000abe5c" & identifier) , number_literal , (string_literal ""in_PROCINFO"" " string_content ") , (pointer_expression "&DAT_000adf4d" & identifier) , number_literal , identifier ))) ;) })) (expression_statement "iVar3 = FUN_00076970(pvVar2,8,2);" (assignment_expression "iVar3 = FUN_00076970(pvVar2,8,2)" identifier = (call_expression "FUN_00076970(pvVar2,8,2)" identifier (argument_list "(pvVar2,8,2)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "puVar1 = *(undefined4 **)(iVar3 + 8);" (assignment_expression "puVar1 = *(undefined4 **)(iVar3 + 8)" identifier = (pointer_expression "*(undefined4 **)(iVar3 + 8)" * (cast_expression "(undefined4 **)(iVar3 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (expression_statement "*puVar1 = 0x464e4f4e;" (assignment_expression "*puVar1 = 0x464e4f4e" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0x4c415441;" (assignment_expression "puVar1[1] = 0x4c415441" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar1 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar1 + 2)" * (cast_expression "(undefined1 *)(puVar1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 2)" ( (binary_expression "puVar1 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);" (assignment_expression "piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3)" identifier = (cast_expression "(int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3)" (parenthesized_expression "(**(code **)(*DAT_000e2a08 + 0x10))" ( (pointer_expression "**(code **)(*DAT_000e2a08 + 0x10)" * (pointer_expression "*(code **)(*DAT_000e2a08 + 0x10)" * (cast_expression "(code **)(*DAT_000e2a08 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*DAT_000e2a08 + 0x10)" ( (binary_expression "*DAT_000e2a08 + 0x10" (pointer_expression "*DAT_000e2a08" * identifier) + number_literal) ))))) )) (argument_list "(DAT_000e2a08,iVar3)" ( identifier , identifier ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }" { (expression_statement "iVar6 = *(int *)(iVar3 + 0x10) + -1;" (assignment_expression "iVar6 = *(int *)(iVar3 + 0x10) + -1" identifier = (binary_expression "*(int *)(iVar3 + 0x10) + -1" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar3 + 0x10) = iVar6;" (assignment_expression "*(int *)(iVar3 + 0x10) = iVar6" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (compound_statement "{\n        FUN_00075360(iVar3);\n      }" { (expression_statement "FUN_00075360(iVar3);" (call_expression "FUN_00075360(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) }) (else_clause "else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }" else (compound_statement "{\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }" { (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar5 = *(int *)(iVar3 + 0x10) + -1;" (assignment_expression "iVar5 = *(int *)(iVar3 + 0x10) + -1" identifier = (binary_expression "*(int *)(iVar3 + 0x10) + -1" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar3 + 0x10) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x10) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (compound_statement "{\n        FUN_00075360(iVar3);\n      }" { (expression_statement "FUN_00075360(iVar3);" (call_expression "FUN_00075360(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) (if_statement "if (iVar6 != 0) {\n        return true;\n      }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) }))) })) (if_statement "if (*(int *)PTR_stdout_000dcfc8 == param_1) {\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" if (parenthesized_expression "(*(int *)PTR_stdout_000dcfc8 == param_1)" ( (binary_expression "*(int *)PTR_stdout_000dcfc8 == param_1" (pointer_expression "*(int *)PTR_stdout_000dcfc8" * (cast_expression "(int *)PTR_stdout_000dcfc8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" { (expression_statement "iVar3 = FUN_0006b370();" (assignment_expression "iVar3 = FUN_0006b370()" identifier = (call_expression "FUN_0006b370()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar9 = true;" (assignment_expression "bVar9 = true" identifier = true) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" { (expression_statement "iVar3 = FUN_0006b370();" (assignment_expression "iVar3 = FUN_0006b370()" identifier = (call_expression "FUN_0006b370()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar9 = iVar3 != 0;" (assignment_expression "bVar9 = iVar3 != 0" identifier = (binary_expression "iVar3 != 0" identifier != number_literal)) ;) })) }) (else_clause "else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" else (compound_statement "{\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" { (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" identifier = false) ;) (if_statement "if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" if (parenthesized_expression "(*(int *)PTR_stderr_000dcf78 == param_1)" ( (binary_expression "*(int *)PTR_stderr_000dcf78 == param_1" (pointer_expression "*(int *)PTR_stderr_000dcf78" * (cast_expression "(int *)PTR_stderr_000dcf78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" { (expression_statement "iVar3 = FUN_0006b370();" (assignment_expression "iVar3 = FUN_0006b370()" identifier = (call_expression "FUN_0006b370()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar9 = iVar3 != 0;" (assignment_expression "bVar9 = iVar3 != 0" identifier = (binary_expression "iVar3 != 0" identifier != number_literal)) ;) })) }))) (return_statement "return bVar9;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\n_Bool is_non_fatal_std(FILE *fp)\n\n{\n  exp_node *peVar1;\n  char *pcVar2;\n  NODE *pNVar3;\n  exp_node **ppeVar4;\n  wchar_t wVar5;\n  int *piVar6;\n  char *mesg;\n  _Bool _Var7;\n  \n  if (PROCINFO_node != (NODE *)0x0) {\n    pcVar2 = (char *)malloc(9);\n    if (pcVar2 == (char *)0x0) {\n      set_loc("awk.h",0x7c9);\n      piVar6 = __errno_location();\n      pcVar2 = strerror(*piVar6);\n      mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar2);\n    }\n    pNVar3 = make_str_node(pcVar2,8,2);\n    builtin_strncpy((pNVar3->sub).val.sp,"NONFATAL",9);\n    ppeVar4 = (*((PROCINFO_node->sub).nodep.l.lp)->exists)(PROCINFO_node,pNVar3);\n    if (ppeVar4 == (exp_node **)0x0) {\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n    }\n    else {\n      peVar1 = *ppeVar4;\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n      if (peVar1 != (exp_node *)0x0) {\n        return true;\n      }\n    }\n  }\n  if (*(FILE **)PTR_stdout_000dcfc8 == fp) {\n    pNVar3 = in_PROCINFO("-","NONFATAL",(NODE **)0x0);\n    _Var7 = true;\n    if (pNVar3 == (NODE *)0x0) {\n      pNVar3 = in_PROCINFO("/dev/stdout","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }\n  }\n  else {\n    _Var7 = false;\n    if (*(FILE **)PTR_stderr_000dcf78 == fp) {\n      pNVar3 = in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }\n  }\n  return _Var7;\n}\n\n" comment comment (function_definition "_Bool is_non_fatal_std(FILE *fp)\n\n{\n  exp_node *peVar1;\n  char *pcVar2;\n  NODE *pNVar3;\n  exp_node **ppeVar4;\n  wchar_t wVar5;\n  int *piVar6;\n  char *mesg;\n  _Bool _Var7;\n  \n  if (PROCINFO_node != (NODE *)0x0) {\n    pcVar2 = (char *)malloc(9);\n    if (pcVar2 == (char *)0x0) {\n      set_loc("awk.h",0x7c9);\n      piVar6 = __errno_location();\n      pcVar2 = strerror(*piVar6);\n      mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar2);\n    }\n    pNVar3 = make_str_node(pcVar2,8,2);\n    builtin_strncpy((pNVar3->sub).val.sp,"NONFATAL",9);\n    ppeVar4 = (*((PROCINFO_node->sub).nodep.l.lp)->exists)(PROCINFO_node,pNVar3);\n    if (ppeVar4 == (exp_node **)0x0) {\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n    }\n    else {\n      peVar1 = *ppeVar4;\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n      if (peVar1 != (exp_node *)0x0) {\n        return true;\n      }\n    }\n  }\n  if (*(FILE **)PTR_stdout_000dcfc8 == fp) {\n    pNVar3 = in_PROCINFO("-","NONFATAL",(NODE **)0x0);\n    _Var7 = true;\n    if (pNVar3 == (NODE *)0x0) {\n      pNVar3 = in_PROCINFO("/dev/stdout","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }\n  }\n  else {\n    _Var7 = false;\n    if (*(FILE **)PTR_stderr_000dcf78 == fp) {\n      pNVar3 = in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }\n  }\n  return _Var7;\n}" type_identifier (function_declarator "is_non_fatal_std(FILE *fp)" identifier (parameter_list "(FILE *fp)" ( (parameter_declaration "FILE *fp" type_identifier (pointer_declarator "*fp" * identifier)) ))) (compound_statement "{\n  exp_node *peVar1;\n  char *pcVar2;\n  NODE *pNVar3;\n  exp_node **ppeVar4;\n  wchar_t wVar5;\n  int *piVar6;\n  char *mesg;\n  _Bool _Var7;\n  \n  if (PROCINFO_node != (NODE *)0x0) {\n    pcVar2 = (char *)malloc(9);\n    if (pcVar2 == (char *)0x0) {\n      set_loc("awk.h",0x7c9);\n      piVar6 = __errno_location();\n      pcVar2 = strerror(*piVar6);\n      mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar2);\n    }\n    pNVar3 = make_str_node(pcVar2,8,2);\n    builtin_strncpy((pNVar3->sub).val.sp,"NONFATAL",9);\n    ppeVar4 = (*((PROCINFO_node->sub).nodep.l.lp)->exists)(PROCINFO_node,pNVar3);\n    if (ppeVar4 == (exp_node **)0x0) {\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n    }\n    else {\n      peVar1 = *ppeVar4;\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n      if (peVar1 != (exp_node *)0x0) {\n        return true;\n      }\n    }\n  }\n  if (*(FILE **)PTR_stdout_000dcfc8 == fp) {\n    pNVar3 = in_PROCINFO("-","NONFATAL",(NODE **)0x0);\n    _Var7 = true;\n    if (pNVar3 == (NODE *)0x0) {\n      pNVar3 = in_PROCINFO("/dev/stdout","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }\n  }\n  else {\n    _Var7 = false;\n    if (*(FILE **)PTR_stderr_000dcf78 == fp) {\n      pNVar3 = in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }\n  }\n  return _Var7;\n}" { (declaration "exp_node *peVar1;" type_identifier (pointer_declarator "*peVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "NODE *pNVar3;" type_identifier (pointer_declarator "*pNVar3" * identifier) ;) (declaration "exp_node **ppeVar4;" type_identifier (pointer_declarator "**ppeVar4" * (pointer_declarator "*ppeVar4" * identifier)) ;) (declaration "wchar_t wVar5;" type_identifier identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "char *mesg;" primitive_type (pointer_declarator "*mesg" * identifier) ;) (declaration "_Bool _Var7;" type_identifier identifier ;) (if_statement "if (PROCINFO_node != (NODE *)0x0) {\n    pcVar2 = (char *)malloc(9);\n    if (pcVar2 == (char *)0x0) {\n      set_loc("awk.h",0x7c9);\n      piVar6 = __errno_location();\n      pcVar2 = strerror(*piVar6);\n      mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar2);\n    }\n    pNVar3 = make_str_node(pcVar2,8,2);\n    builtin_strncpy((pNVar3->sub).val.sp,"NONFATAL",9);\n    ppeVar4 = (*((PROCINFO_node->sub).nodep.l.lp)->exists)(PROCINFO_node,pNVar3);\n    if (ppeVar4 == (exp_node **)0x0) {\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n    }\n    else {\n      peVar1 = *ppeVar4;\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n      if (peVar1 != (exp_node *)0x0) {\n        return true;\n      }\n    }\n  }" if (parenthesized_expression "(PROCINFO_node != (NODE *)0x0)" ( (binary_expression "PROCINFO_node != (NODE *)0x0" identifier != (cast_expression "(NODE *)0x0" ( (type_descriptor "NODE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar2 = (char *)malloc(9);\n    if (pcVar2 == (char *)0x0) {\n      set_loc("awk.h",0x7c9);\n      piVar6 = __errno_location();\n      pcVar2 = strerror(*piVar6);\n      mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar2);\n    }\n    pNVar3 = make_str_node(pcVar2,8,2);\n    builtin_strncpy((pNVar3->sub).val.sp,"NONFATAL",9);\n    ppeVar4 = (*((PROCINFO_node->sub).nodep.l.lp)->exists)(PROCINFO_node,pNVar3);\n    if (ppeVar4 == (exp_node **)0x0) {\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n    }\n    else {\n      peVar1 = *ppeVar4;\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n      if (peVar1 != (exp_node *)0x0) {\n        return true;\n      }\n    }\n  }" { (expression_statement "pcVar2 = (char *)malloc(9);" (assignment_expression "pcVar2 = (char *)malloc(9)" identifier = (cast_expression "(char *)malloc(9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(9)" identifier (argument_list "(9)" ( number_literal ))))) ;) (if_statement "if (pcVar2 == (char *)0x0) {\n      set_loc("awk.h",0x7c9);\n      piVar6 = __errno_location();\n      pcVar2 = strerror(*piVar6);\n      mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar2);\n    }" if (parenthesized_expression "(pcVar2 == (char *)0x0)" ( (binary_expression "pcVar2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      set_loc("awk.h",0x7c9);\n      piVar6 = __errno_location();\n      pcVar2 = strerror(*piVar6);\n      mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar2);\n    }" { (expression_statement "set_loc("awk.h",0x7c9);" (call_expression "set_loc("awk.h",0x7c9)" identifier (argument_list "("awk.h",0x7c9)" ( (string_literal ""awk.h"" " string_content ") , number_literal ))) ;) (expression_statement "piVar6 = __errno_location();" (assignment_expression "piVar6 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar2 = strerror(*piVar6);" (assignment_expression "pcVar2 = strerror(*piVar6)" identifier = (call_expression "strerror(*piVar6)" identifier (argument_list "(*piVar6)" ( (pointer_expression "*piVar6" * identifier) )))) ;) (expression_statement "mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);" (assignment_expression "mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" identifier (argument_list "(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" ( number_literal , (string_literal ""%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s"" " string_content ") , number_literal ))))) ;) comment (expression_statement "r_fatal(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar2);" (call_expression "r_fatal(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar2)" identifier (argument_list "(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar2)" ( identifier , (pointer_expression "&DAT_000abe5c" & identifier) , number_literal , (string_literal ""in_PROCINFO"" " string_content ") , (pointer_expression "&DAT_000adf4d" & identifier) , number_literal , identifier ))) ;) })) (expression_statement "pNVar3 = make_str_node(pcVar2,8,2);" (assignment_expression "pNVar3 = make_str_node(pcVar2,8,2)" identifier = (call_expression "make_str_node(pcVar2,8,2)" identifier (argument_list "(pcVar2,8,2)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "builtin_strncpy((pNVar3->sub).val.sp,"NONFATAL",9);" (call_expression "builtin_strncpy((pNVar3->sub).val.sp,"NONFATAL",9)" identifier (argument_list "((pNVar3->sub).val.sp,"NONFATAL",9)" ( (field_expression "(pNVar3->sub).val.sp" (field_expression "(pNVar3->sub).val" (parenthesized_expression "(pNVar3->sub)" ( (field_expression "pNVar3->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) , (string_literal ""NONFATAL"" " string_content ") , number_literal ))) ;) (expression_statement "ppeVar4 = (*((PROCINFO_node->sub).nodep.l.lp)->exists)(PROCINFO_node,pNVar3);" (assignment_expression "ppeVar4 = (*((PROCINFO_node->sub).nodep.l.lp)->exists)(PROCINFO_node,pNVar3)" identifier = (call_expression "(*((PROCINFO_node->sub).nodep.l.lp)->exists)(PROCINFO_node,pNVar3)" (parenthesized_expression "(*((PROCINFO_node->sub).nodep.l.lp)->exists)" ( (pointer_expression "*((PROCINFO_node->sub).nodep.l.lp)->exists" * (field_expression "((PROCINFO_node->sub).nodep.l.lp)->exists" (parenthesized_expression "((PROCINFO_node->sub).nodep.l.lp)" ( (field_expression "(PROCINFO_node->sub).nodep.l.lp" (field_expression "(PROCINFO_node->sub).nodep.l" (field_expression "(PROCINFO_node->sub).nodep" (parenthesized_expression "(PROCINFO_node->sub)" ( (field_expression "PROCINFO_node->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) )) -> field_identifier)) )) (argument_list "(PROCINFO_node,pNVar3)" ( identifier , identifier )))) ;) (if_statement "if (ppeVar4 == (exp_node **)0x0) {\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n    }\n    else {\n      peVar1 = *ppeVar4;\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n      if (peVar1 != (exp_node *)0x0) {\n        return true;\n      }\n    }" if (parenthesized_expression "(ppeVar4 == (exp_node **)0x0)" ( (binary_expression "ppeVar4 == (exp_node **)0x0" identifier == (cast_expression "(exp_node **)0x0" ( (type_descriptor "exp_node **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n    }" { (expression_statement "wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';" (assignment_expression "wVar5 = (pNVar3->sub).val.sref + L'\xffffffff'" identifier = (binary_expression "(pNVar3->sub).val.sref + L'\xffffffff'" (field_expression "(pNVar3->sub).val.sref" (field_expression "(pNVar3->sub).val" (parenthesized_expression "(pNVar3->sub)" ( (field_expression "pNVar3->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) + (char_literal "L'\xffffffff'" L' escape_sequence character character character character '))) ;) (expression_statement "(pNVar3->sub).val.sref = wVar5;" (assignment_expression "(pNVar3->sub).val.sref = wVar5" (field_expression "(pNVar3->sub).val.sref" (field_expression "(pNVar3->sub).val" (parenthesized_expression "(pNVar3->sub)" ( (field_expression "pNVar3->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }" if (parenthesized_expression "(wVar5 < L'\x01')" ( (binary_expression "wVar5 < L'\x01'" identifier < (char_literal "L'\x01'" L' escape_sequence ')) )) (compound_statement "{\n        r_unref(pNVar3);\n      }" { (expression_statement "r_unref(pNVar3);" (call_expression "r_unref(pNVar3)" identifier (argument_list "(pNVar3)" ( identifier ))) ;) })) }) (else_clause "else {\n      peVar1 = *ppeVar4;\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n      if (peVar1 != (exp_node *)0x0) {\n        return true;\n      }\n    }" else (compound_statement "{\n      peVar1 = *ppeVar4;\n      wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';\n      (pNVar3->sub).val.sref = wVar5;\n      if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }\n      if (peVar1 != (exp_node *)0x0) {\n        return true;\n      }\n    }" { (expression_statement "peVar1 = *ppeVar4;" (assignment_expression "peVar1 = *ppeVar4" identifier = (pointer_expression "*ppeVar4" * identifier)) ;) (expression_statement "wVar5 = (pNVar3->sub).val.sref + L'\xffffffff';" (assignment_expression "wVar5 = (pNVar3->sub).val.sref + L'\xffffffff'" identifier = (binary_expression "(pNVar3->sub).val.sref + L'\xffffffff'" (field_expression "(pNVar3->sub).val.sref" (field_expression "(pNVar3->sub).val" (parenthesized_expression "(pNVar3->sub)" ( (field_expression "pNVar3->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) + (char_literal "L'\xffffffff'" L' escape_sequence character character character character '))) ;) (expression_statement "(pNVar3->sub).val.sref = wVar5;" (assignment_expression "(pNVar3->sub).val.sref = wVar5" (field_expression "(pNVar3->sub).val.sref" (field_expression "(pNVar3->sub).val" (parenthesized_expression "(pNVar3->sub)" ( (field_expression "pNVar3->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (if_statement "if (wVar5 < L'\x01') {\n        r_unref(pNVar3);\n      }" if (parenthesized_expression "(wVar5 < L'\x01')" ( (binary_expression "wVar5 < L'\x01'" identifier < (char_literal "L'\x01'" L' escape_sequence ')) )) (compound_statement "{\n        r_unref(pNVar3);\n      }" { (expression_statement "r_unref(pNVar3);" (call_expression "r_unref(pNVar3)" identifier (argument_list "(pNVar3)" ( identifier ))) ;) })) (if_statement "if (peVar1 != (exp_node *)0x0) {\n        return true;\n      }" if (parenthesized_expression "(peVar1 != (exp_node *)0x0)" ( (binary_expression "peVar1 != (exp_node *)0x0" identifier != (cast_expression "(exp_node *)0x0" ( (type_descriptor "exp_node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) }))) })) (if_statement "if (*(FILE **)PTR_stdout_000dcfc8 == fp) {\n    pNVar3 = in_PROCINFO("-","NONFATAL",(NODE **)0x0);\n    _Var7 = true;\n    if (pNVar3 == (NODE *)0x0) {\n      pNVar3 = in_PROCINFO("/dev/stdout","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }\n  }\n  else {\n    _Var7 = false;\n    if (*(FILE **)PTR_stderr_000dcf78 == fp) {\n      pNVar3 = in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }\n  }" if (parenthesized_expression "(*(FILE **)PTR_stdout_000dcfc8 == fp)" ( (binary_expression "*(FILE **)PTR_stdout_000dcfc8 == fp" (pointer_expression "*(FILE **)PTR_stdout_000dcfc8" * (cast_expression "(FILE **)PTR_stdout_000dcfc8" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) == identifier) )) (compound_statement "{\n    pNVar3 = in_PROCINFO("-","NONFATAL",(NODE **)0x0);\n    _Var7 = true;\n    if (pNVar3 == (NODE *)0x0) {\n      pNVar3 = in_PROCINFO("/dev/stdout","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }\n  }" { (expression_statement "pNVar3 = in_PROCINFO("-","NONFATAL",(NODE **)0x0);" (assignment_expression "pNVar3 = in_PROCINFO("-","NONFATAL",(NODE **)0x0)" identifier = (call_expression "in_PROCINFO("-","NONFATAL",(NODE **)0x0)" identifier (argument_list "("-","NONFATAL",(NODE **)0x0)" ( (string_literal ""-"" " string_content ") , (string_literal ""NONFATAL"" " string_content ") , (cast_expression "(NODE **)0x0" ( (type_descriptor "NODE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (expression_statement "_Var7 = true;" (assignment_expression "_Var7 = true" identifier = true) ;) (if_statement "if (pNVar3 == (NODE *)0x0) {\n      pNVar3 = in_PROCINFO("/dev/stdout","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }" if (parenthesized_expression "(pNVar3 == (NODE *)0x0)" ( (binary_expression "pNVar3 == (NODE *)0x0" identifier == (cast_expression "(NODE *)0x0" ( (type_descriptor "NODE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pNVar3 = in_PROCINFO("/dev/stdout","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }" { (expression_statement "pNVar3 = in_PROCINFO("/dev/stdout","NONFATAL",(NODE **)0x0);" (assignment_expression "pNVar3 = in_PROCINFO("/dev/stdout","NONFATAL",(NODE **)0x0)" identifier = (call_expression "in_PROCINFO("/dev/stdout","NONFATAL",(NODE **)0x0)" identifier (argument_list "("/dev/stdout","NONFATAL",(NODE **)0x0)" ( (string_literal ""/dev/stdout"" " string_content ") , (string_literal ""NONFATAL"" " string_content ") , (cast_expression "(NODE **)0x0" ( (type_descriptor "NODE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (expression_statement "_Var7 = pNVar3 != (NODE *)0x0;" (assignment_expression "_Var7 = pNVar3 != (NODE *)0x0" identifier = (binary_expression "pNVar3 != (NODE *)0x0" identifier != (cast_expression "(NODE *)0x0" ( (type_descriptor "NODE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) })) }) (else_clause "else {\n    _Var7 = false;\n    if (*(FILE **)PTR_stderr_000dcf78 == fp) {\n      pNVar3 = in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }\n  }" else (compound_statement "{\n    _Var7 = false;\n    if (*(FILE **)PTR_stderr_000dcf78 == fp) {\n      pNVar3 = in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }\n  }" { (expression_statement "_Var7 = false;" (assignment_expression "_Var7 = false" identifier = false) ;) (if_statement "if (*(FILE **)PTR_stderr_000dcf78 == fp) {\n      pNVar3 = in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }" if (parenthesized_expression "(*(FILE **)PTR_stderr_000dcf78 == fp)" ( (binary_expression "*(FILE **)PTR_stderr_000dcf78 == fp" (pointer_expression "*(FILE **)PTR_stderr_000dcf78" * (cast_expression "(FILE **)PTR_stderr_000dcf78" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) == identifier) )) (compound_statement "{\n      pNVar3 = in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0);\n      _Var7 = pNVar3 != (NODE *)0x0;\n    }" { (expression_statement "pNVar3 = in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0);" (assignment_expression "pNVar3 = in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0)" identifier = (call_expression "in_PROCINFO("/dev/stderr","NONFATAL",(NODE **)0x0)" identifier (argument_list "("/dev/stderr","NONFATAL",(NODE **)0x0)" ( (string_literal ""/dev/stderr"" " string_content ") , (string_literal ""NONFATAL"" " string_content ") , (cast_expression "(NODE **)0x0" ( (type_descriptor "NODE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (expression_statement "_Var7 = pNVar3 != (NODE *)0x0;" (assignment_expression "_Var7 = pNVar3 != (NODE *)0x0" identifier = (binary_expression "pNVar3 != (NODE *)0x0" identifier != (cast_expression "(NODE *)0x0" ( (type_descriptor "NODE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) })) }))) (return_statement "return _Var7;" return identifier ;) })))
(translation_unit "bool FUN_0006cf70(int param_1)\n\n{\n  undefined4 *puVar1;\n  void *pvVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  bool bVar9;\n  \n  if (DAT_000e2a08 != (int *)0x0) {\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }\n  if (*(int *)PTR_stdout_000dcfc8 == param_1) {\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  return bVar9;\n}\n\n" (function_definition "bool FUN_0006cf70(int param_1)\n\n{\n  undefined4 *puVar1;\n  void *pvVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  bool bVar9;\n  \n  if (DAT_000e2a08 != (int *)0x0) {\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }\n  if (*(int *)PTR_stdout_000dcfc8 == param_1) {\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  return bVar9;\n}" primitive_type (function_declarator "FUN_0006cf70(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  void *pvVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  bool bVar9;\n  \n  if (DAT_000e2a08 != (int *)0x0) {\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }\n  if (*(int *)PTR_stdout_000dcfc8 == param_1) {\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  return bVar9;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "void *pvVar2;" primitive_type (pointer_declarator "*pvVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "bool bVar9;" primitive_type identifier ;) (if_statement "if (DAT_000e2a08 != (int *)0x0) {\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }" if (parenthesized_expression "(DAT_000e2a08 != (int *)0x0)" ( (binary_expression "DAT_000e2a08 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }" { (expression_statement "pvVar2 = malloc(9);" (assignment_expression "pvVar2 = malloc(9)" identifier = (call_expression "malloc(9)" identifier (argument_list "(9)" ( number_literal )))) ;) (if_statement "if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }" if (parenthesized_expression "(pvVar2 == (void *)0x0)" ( (binary_expression "pvVar2 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }" { (expression_statement "FUN_00074330("awk.h",0x7c9);" (call_expression "FUN_00074330("awk.h",0x7c9)" identifier (argument_list "("awk.h",0x7c9)" ( (string_literal ""awk.h"" " string_content ") , number_literal ))) ;) (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar7 = strerror(*piVar4);" (assignment_expression "pcVar7 = strerror(*piVar4)" identifier = (call_expression "strerror(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);" (assignment_expression "uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" identifier = (call_expression "dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" identifier (argument_list "(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" ( number_literal , (string_literal ""%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);" (call_expression "FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7)" identifier (argument_list "(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7)" ( identifier , (pointer_expression "&DAT_000abe5c" & identifier) , number_literal , (string_literal ""in_PROCINFO"" " string_content ") , (pointer_expression "&DAT_000adf4d" & identifier) , number_literal , identifier ))) ;) })) (expression_statement "iVar3 = FUN_00076970(pvVar2,8,2);" (assignment_expression "iVar3 = FUN_00076970(pvVar2,8,2)" identifier = (call_expression "FUN_00076970(pvVar2,8,2)" identifier (argument_list "(pvVar2,8,2)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "puVar1 = *(undefined4 **)(iVar3 + 8);" (assignment_expression "puVar1 = *(undefined4 **)(iVar3 + 8)" identifier = (pointer_expression "*(undefined4 **)(iVar3 + 8)" * (cast_expression "(undefined4 **)(iVar3 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (expression_statement "*puVar1 = 0x464e4f4e;" (assignment_expression "*puVar1 = 0x464e4f4e" (pointer_expression "*puVar1" * identifier) = number_literal) ;) (expression_statement "puVar1[1] = 0x4c415441;" (assignment_expression "puVar1[1] = 0x4c415441" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar1 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar1 + 2)" * (cast_expression "(undefined1 *)(puVar1 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 2)" ( (binary_expression "puVar1 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);" (assignment_expression "piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3)" identifier = (cast_expression "(int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3)" (parenthesized_expression "(**(code **)(*DAT_000e2a08 + 0x10))" ( (pointer_expression "**(code **)(*DAT_000e2a08 + 0x10)" * (pointer_expression "*(code **)(*DAT_000e2a08 + 0x10)" * (cast_expression "(code **)(*DAT_000e2a08 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*DAT_000e2a08 + 0x10)" ( (binary_expression "*DAT_000e2a08 + 0x10" (pointer_expression "*DAT_000e2a08" * identifier) + number_literal) ))))) )) (argument_list "(DAT_000e2a08,iVar3)" ( identifier , identifier ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }" { (expression_statement "iVar6 = *(int *)(iVar3 + 0x10) + -1;" (assignment_expression "iVar6 = *(int *)(iVar3 + 0x10) + -1" identifier = (binary_expression "*(int *)(iVar3 + 0x10) + -1" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar3 + 0x10) = iVar6;" (assignment_expression "*(int *)(iVar3 + 0x10) = iVar6" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (compound_statement "{\n        FUN_00075360(iVar3);\n      }" { (expression_statement "FUN_00075360(iVar3);" (call_expression "FUN_00075360(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) }) (else_clause "else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }" else (compound_statement "{\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }" { (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" identifier = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "iVar5 = *(int *)(iVar3 + 0x10) + -1;" (assignment_expression "iVar5 = *(int *)(iVar3 + 0x10) + -1" identifier = (binary_expression "*(int *)(iVar3 + 0x10) + -1" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(iVar3 + 0x10) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x10) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (compound_statement "{\n        FUN_00075360(iVar3);\n      }" { (expression_statement "FUN_00075360(iVar3);" (call_expression "FUN_00075360(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) (if_statement "if (iVar6 != 0) {\n        return true;\n      }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) }))) })) (if_statement "if (*(int *)PTR_stdout_000dcfc8 == param_1) {\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" if (parenthesized_expression "(*(int *)PTR_stdout_000dcfc8 == param_1)" ( (binary_expression "*(int *)PTR_stdout_000dcfc8 == param_1" (pointer_expression "*(int *)PTR_stdout_000dcfc8" * (cast_expression "(int *)PTR_stdout_000dcfc8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" { (expression_statement "iVar3 = FUN_0006b370();" (assignment_expression "iVar3 = FUN_0006b370()" identifier = (call_expression "FUN_0006b370()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar9 = true;" (assignment_expression "bVar9 = true" identifier = true) ;) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" { (expression_statement "iVar3 = FUN_0006b370();" (assignment_expression "iVar3 = FUN_0006b370()" identifier = (call_expression "FUN_0006b370()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar9 = iVar3 != 0;" (assignment_expression "bVar9 = iVar3 != 0" identifier = (binary_expression "iVar3 != 0" identifier != number_literal)) ;) })) }) (else_clause "else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" else (compound_statement "{\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" { (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" identifier = false) ;) (if_statement "if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" if (parenthesized_expression "(*(int *)PTR_stderr_000dcf78 == param_1)" ( (binary_expression "*(int *)PTR_stderr_000dcf78 == param_1" (pointer_expression "*(int *)PTR_stderr_000dcf78" * (cast_expression "(int *)PTR_stderr_000dcf78" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == identifier) )) (compound_statement "{\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" { (expression_statement "iVar3 = FUN_0006b370();" (assignment_expression "iVar3 = FUN_0006b370()" identifier = (call_expression "FUN_0006b370()" identifier (argument_list "()" ( )))) ;) (expression_statement "bVar9 = iVar3 != 0;" (assignment_expression "bVar9 = iVar3 != 0" identifier = (binary_expression "iVar3 != 0" identifier != number_literal)) ;) })) }))) (return_statement "return bVar9;" return identifier ;) })))
(translation_unit (function_definition TYPE (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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , LIT , (string_literal " string_content ") , (pointer_expression & IDENT) , LIT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return BOOL ;) })) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) })) }))) (return_statement return IDENT ;) })))
(function_definition "bool FUN_0006cf70(int param_1)\n\n{\n  undefined4 *puVar1;\n  void *pvVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  bool bVar9;\n  \n  if (DAT_000e2a08 != (int *)0x0) {\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }\n  if (*(int *)PTR_stdout_000dcfc8 == param_1) {\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  return bVar9;\n}" (primitive_type "bool") (function_declarator "FUN_0006cf70(int param_1)" (identifier "FUN_0006cf70") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  void *pvVar2;\n  int iVar3;\n  int *piVar4;\n  int iVar5;\n  int iVar6;\n  char *pcVar7;\n  undefined4 uVar8;\n  bool bVar9;\n  \n  if (DAT_000e2a08 != (int *)0x0) {\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }\n  if (*(int *)PTR_stdout_000dcfc8 == param_1) {\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  return bVar9;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "void *pvVar2;" (primitive_type "void") (pointer_declarator "*pvVar2" (* "*") (identifier "pvVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "undefined4 uVar8;" (type_identifier "undefined4") (identifier "uVar8") (; ";")) (declaration "bool bVar9;" (primitive_type "bool") (identifier "bVar9") (; ";")) (if_statement "if (DAT_000e2a08 != (int *)0x0) {\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(DAT_000e2a08 != (int *)0x0)" (( "(") (binary_expression "DAT_000e2a08 != (int *)0x0" (identifier "DAT_000e2a08") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pvVar2 = malloc(9);\n    if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }\n    iVar3 = FUN_00076970(pvVar2,8,2);\n    puVar1 = *(undefined4 **)(iVar3 + 8);\n    *puVar1 = 0x464e4f4e;\n    puVar1[1] = 0x4c415441;\n    *(undefined1 *)(puVar1 + 2) = 0;\n    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);\n    if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }\n  }" ({ "{") (expression_statement "pvVar2 = malloc(9);" (assignment_expression "pvVar2 = malloc(9)" (identifier "pvVar2") (= "=") (call_expression "malloc(9)" (identifier "malloc") (argument_list "(9)" (( "(") (number_literal "9") () ")")))) (; ";")) (if_statement "if (pvVar2 == (void *)0x0) {\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }" (if "if") (parenthesized_expression "(pvVar2 == (void *)0x0)" (( "(") (binary_expression "pvVar2 == (void *)0x0" (identifier "pvVar2") (== "==") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_00074330("awk.h",0x7c9);\n      piVar4 = __errno_location();\n      pcVar7 = strerror(*piVar4);\n      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);\n    }" ({ "{") (expression_statement "FUN_00074330("awk.h",0x7c9);" (call_expression "FUN_00074330("awk.h",0x7c9)" (identifier "FUN_00074330") (argument_list "("awk.h",0x7c9)" (( "(") (string_literal ""awk.h"" (" """) (string_content "awk.h") (" """)) (, ",") (number_literal "0x7c9") () ")"))) (; ";")) (expression_statement "piVar4 = __errno_location();" (assignment_expression "piVar4 = __errno_location()" (identifier "piVar4") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar7 = strerror(*piVar4);" (assignment_expression "pcVar7 = strerror(*piVar4)" (identifier "pcVar7") (= "=") (call_expression "strerror(*piVar4)" (identifier "strerror") (argument_list "(*piVar4)" (( "(") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) () ")")))) (; ";")) (expression_statement "uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);" (assignment_expression "uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" (identifier "uVar8") (= "=") (call_expression "dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" (identifier "dcgettext") (argument_list "(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s"" (" """) (string_content "%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);" (call_expression "FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7)" (identifier "FUN_00074d10") (argument_list "(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7)" (( "(") (identifier "uVar8") (, ",") (pointer_expression "&DAT_000abe5c" (& "&") (identifier "DAT_000abe5c")) (, ",") (number_literal "0x10ac") (, ",") (string_literal ""in_PROCINFO"" (" """) (string_content "in_PROCINFO") (" """)) (, ",") (pointer_expression "&DAT_000adf4d" (& "&") (identifier "DAT_000adf4d")) (, ",") (number_literal "9") (, ",") (identifier "pcVar7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = FUN_00076970(pvVar2,8,2);" (assignment_expression "iVar3 = FUN_00076970(pvVar2,8,2)" (identifier "iVar3") (= "=") (call_expression "FUN_00076970(pvVar2,8,2)" (identifier "FUN_00076970") (argument_list "(pvVar2,8,2)" (( "(") (identifier "pvVar2") (, ",") (number_literal "8") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "puVar1 = *(undefined4 **)(iVar3 + 8);" (assignment_expression "puVar1 = *(undefined4 **)(iVar3 + 8)" (identifier "puVar1") (= "=") (pointer_expression "*(undefined4 **)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 **)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*puVar1 = 0x464e4f4e;" (assignment_expression "*puVar1 = 0x464e4f4e" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (number_literal "0x464e4f4e")) (; ";")) (expression_statement "puVar1[1] = 0x4c415441;" (assignment_expression "puVar1[1] = 0x4c415441" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x4c415441")) (; ";")) (expression_statement "*(undefined1 *)(puVar1 + 2) = 0;" (assignment_expression "*(undefined1 *)(puVar1 + 2) = 0" (pointer_expression "*(undefined1 *)(puVar1 + 2)" (* "*") (cast_expression "(undefined1 *)(puVar1 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar1 + 2)" (( "(") (binary_expression "puVar1 + 2" (identifier "puVar1") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);" (assignment_expression "piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3)" (identifier "piVar4") (= "=") (cast_expression "(int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3)" (parenthesized_expression "(**(code **)(*DAT_000e2a08 + 0x10))" (( "(") (pointer_expression "**(code **)(*DAT_000e2a08 + 0x10)" (* "*") (pointer_expression "*(code **)(*DAT_000e2a08 + 0x10)" (* "*") (cast_expression "(code **)(*DAT_000e2a08 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*DAT_000e2a08 + 0x10)" (( "(") (binary_expression "*DAT_000e2a08 + 0x10" (pointer_expression "*DAT_000e2a08" (* "*") (identifier "DAT_000e2a08")) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(DAT_000e2a08,iVar3)" (( "(") (identifier "DAT_000e2a08") (, ",") (identifier "iVar3") () ")"))))) (; ";")) (if_statement "if (piVar4 == (int *)0x0) {\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }\n    else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar6 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar6;\n      if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }\n    }" ({ "{") (expression_statement "iVar6 = *(int *)(iVar3 + 0x10) + -1;" (assignment_expression "iVar6 = *(int *)(iVar3 + 0x10) + -1" (identifier "iVar6") (= "=") (binary_expression "*(int *)(iVar3 + 0x10) + -1" (pointer_expression "*(int *)(iVar3 + 0x10)" (* "*") (cast_expression "(int *)(iVar3 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(iVar3 + 0x10) = iVar6;" (assignment_expression "*(int *)(iVar3 + 0x10) = iVar6" (pointer_expression "*(int *)(iVar3 + 0x10)" (* "*") (cast_expression "(int *)(iVar3 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (iVar6 < 1) {\n        FUN_00075360(iVar3);\n      }" (if "if") (parenthesized_expression "(iVar6 < 1)" (( "(") (binary_expression "iVar6 < 1" (identifier "iVar6") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        FUN_00075360(iVar3);\n      }" ({ "{") (expression_statement "FUN_00075360(iVar3);" (call_expression "FUN_00075360(iVar3)" (identifier "FUN_00075360") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }" (else "else") (compound_statement "{\n      iVar6 = *piVar4;\n      iVar5 = *(int *)(iVar3 + 0x10) + -1;\n      *(int *)(iVar3 + 0x10) = iVar5;\n      if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }\n      if (iVar6 != 0) {\n        return true;\n      }\n    }" ({ "{") (expression_statement "iVar6 = *piVar4;" (assignment_expression "iVar6 = *piVar4" (identifier "iVar6") (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "iVar5 = *(int *)(iVar3 + 0x10) + -1;" (assignment_expression "iVar5 = *(int *)(iVar3 + 0x10) + -1" (identifier "iVar5") (= "=") (binary_expression "*(int *)(iVar3 + 0x10) + -1" (pointer_expression "*(int *)(iVar3 + 0x10)" (* "*") (cast_expression "(int *)(iVar3 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*(int *)(iVar3 + 0x10) = iVar5;" (assignment_expression "*(int *)(iVar3 + 0x10) = iVar5" (pointer_expression "*(int *)(iVar3 + 0x10)" (* "*") (cast_expression "(int *)(iVar3 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar5 < 1) {\n        FUN_00075360(iVar3);\n      }" (if "if") (parenthesized_expression "(iVar5 < 1)" (( "(") (binary_expression "iVar5 < 1" (identifier "iVar5") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        FUN_00075360(iVar3);\n      }" ({ "{") (expression_statement "FUN_00075360(iVar3);" (call_expression "FUN_00075360(iVar3)" (identifier "FUN_00075360") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (if_statement "if (iVar6 != 0) {\n        return true;\n      }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return true;\n      }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (} "}")))) (} "}"))) (if_statement "if (*(int *)PTR_stdout_000dcfc8 == param_1) {\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }\n  else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" (if "if") (parenthesized_expression "(*(int *)PTR_stdout_000dcfc8 == param_1)" (( "(") (binary_expression "*(int *)PTR_stdout_000dcfc8 == param_1" (pointer_expression "*(int *)PTR_stdout_000dcfc8" (* "*") (cast_expression "(int *)PTR_stdout_000dcfc8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stdout_000dcfc8"))) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n    iVar3 = FUN_0006b370();\n    bVar9 = true;\n    if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" ({ "{") (expression_statement "iVar3 = FUN_0006b370();" (assignment_expression "iVar3 = FUN_0006b370()" (identifier "iVar3") (= "=") (call_expression "FUN_0006b370()" (identifier "FUN_0006b370") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar9 = true;" (assignment_expression "bVar9 = true" (identifier "bVar9") (= "=") (true "true")) (; ";")) (if_statement "if (iVar3 == 0) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" ({ "{") (expression_statement "iVar3 = FUN_0006b370();" (assignment_expression "iVar3 = FUN_0006b370()" (identifier "iVar3") (= "=") (call_expression "FUN_0006b370()" (identifier "FUN_0006b370") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar9 = iVar3 != 0;" (assignment_expression "bVar9 = iVar3 != 0" (identifier "bVar9") (= "=") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" (else "else") (compound_statement "{\n    bVar9 = false;\n    if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }\n  }" ({ "{") (expression_statement "bVar9 = false;" (assignment_expression "bVar9 = false" (identifier "bVar9") (= "=") (false "false")) (; ";")) (if_statement "if (*(int *)PTR_stderr_000dcf78 == param_1) {\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" (if "if") (parenthesized_expression "(*(int *)PTR_stderr_000dcf78 == param_1)" (( "(") (binary_expression "*(int *)PTR_stderr_000dcf78 == param_1" (pointer_expression "*(int *)PTR_stderr_000dcf78" (* "*") (cast_expression "(int *)PTR_stderr_000dcf78" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_000dcf78"))) (== "==") (identifier "param_1")) () ")")) (compound_statement "{\n      iVar3 = FUN_0006b370();\n      bVar9 = iVar3 != 0;\n    }" ({ "{") (expression_statement "iVar3 = FUN_0006b370();" (assignment_expression "iVar3 = FUN_0006b370()" (identifier "iVar3") (= "=") (call_expression "FUN_0006b370()" (identifier "FUN_0006b370") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar9 = iVar3 != 0;" (assignment_expression "bVar9 = iVar3 != 0" (identifier "bVar9") (= "=") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0"))) (; ";")) (} "}"))) (} "}")))) (return_statement "return bVar9;" (return "return") (identifier "bVar9") (; ";")) (} "}")))

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

type_1 function_1(type_2 *var_15)

{
  type_3 *var_14;
  char *var_3;
  type_4 *var_17;
  type_3 **var_11;
  type_5 var_12;
  int *piVar6;
  char *mesg;
  type_1 _Var7;
  
  if (var_1 != (type_4 *)0x0) {
    var_3 = (char *)var_2(9);
    if (var_3 == (char *)0x0) {
      var_4("awk.h",0x7c9);
      piVar6 = var_5();
      var_3 = var_6(*piVar6);
      mesg = (char *)var_7(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);
                    /* WARNING: Subroutine does not return */
      var_8(mesg,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,var_3);
    }
    var_17 = var_9(var_3,8,2);
    var_10((var_17->sub).val.sp,"NONFATAL",9);
    var_11 = (*((var_1->sub).nodep.l.lp)->exists)(var_1,var_17);
    if (var_11 == (type_3 **)0x0) {
      var_12 = (var_17->sub).val.sref + L'\xffffffff';
      (var_17->sub).val.sref = var_12;
      if (var_12 < L'\x01') {
        var_13(var_17);
      }
    }
    else {
      var_14 = *var_11;
      var_12 = (var_17->sub).val.sref + L'\xffffffff';
      (var_17->sub).val.sref = var_12;
      if (var_12 < L'\x01') {
        var_13(var_17);
      }
      if (var_14 != (type_3 *)0x0) {
        return true;
      }
    }
  }
  if (*(type_2 **)PTR_stdout_000dcfc8 == var_15) {
    var_17 = var_16("-","NONFATAL",(type_4 **)0x0);
    _Var7 = true;
    if (var_17 == (type_4 *)0x0) {
      var_17 = var_16("/dev/stdout","NONFATAL",(type_4 **)0x0);
      _Var7 = var_17 != (type_4 *)0x0;
    }
  }
  else {
    _Var7 = false;
    if (*(type_2 **)PTR_stderr_000dcf78 == var_15) {
      var_17 = var_16("/dev/stderr","NONFATAL",(type_4 **)0x0);
      _Var7 = var_17 != (type_4 *)0x0;
    }
  }
  return _Var7;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (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: (call_expression function: (identifier) arguments: (argument_list (number_literal))))) (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 (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (number_literal) (string_literal (string_content)) (pointer_expression argument: (identifier)) (number_literal) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))))) (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: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (true))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))))) (return_statement (identifier)))))

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

bool MASKED(int param_1)

{
  undefined4 *puVar1;
  void *pvVar2;
  int iVar3;
  int *piVar4;
  int iVar5;
  int iVar6;
  char *pcVar7;
  undefined4 uVar8;
  bool bVar9;
  
  if (DAT_000e2a08 != (int *)0x0) {
    pvVar2 = malloc(9);
    if (pvVar2 == (void *)0x0) {
      FUN_00074330("awk.h",0x7c9);
      piVar4 = __errno_location();
      pcVar7 = strerror(*piVar4);
      uVar8 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);
      FUN_00074d10(uVar8,&DAT_000abe5c,0x10ac,"in_PROCINFO",&DAT_000adf4d,9,pcVar7);
    }
    iVar3 = FUN_00076970(pvVar2,8,2);
    puVar1 = *(undefined4 **)(iVar3 + 8);
    *puVar1 = 0x464e4f4e;
    puVar1[1] = 0x4c415441;
    *(undefined1 *)(puVar1 + 2) = 0;
    piVar4 = (int *)(**(code **)(*DAT_000e2a08 + 0x10))(DAT_000e2a08,iVar3);
    if (piVar4 == (int *)0x0) {
      iVar6 = *(int *)(iVar3 + 0x10) + -1;
      *(int *)(iVar3 + 0x10) = iVar6;
      if (iVar6 < 1) {
        FUN_00075360(iVar3);
      }
    }
    else {
      iVar6 = *piVar4;
      iVar5 = *(int *)(iVar3 + 0x10) + -1;
      *(int *)(iVar3 + 0x10) = iVar5;
      if (iVar5 < 1) {
        FUN_00075360(iVar3);
      }
      if (iVar6 != 0) {
        return true;
      }
    }
  }
  if (*(int *)PTR_stdout_000dcfc8 == param_1) {
    iVar3 = FUN_0006b370();
    bVar9 = true;
    if (iVar3 == 0) {
      iVar3 = FUN_0006b370();
      bVar9 = iVar3 != 0;
    }
  }
  else {
    bVar9 = false;
    if (*(int *)PTR_stderr_000dcf78 == param_1) {
      iVar3 = FUN_0006b370();
      bVar9 = iVar3 != 0;
    }
  }
  return bVar9;
}

