
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void init_fields(void)

{
  uint *puVar1;
  char **ppcVar2;
  NODE **ppNVar3;
  NODE *pNVar4;
  int *piVar5;
  char *pcVar6;
  char *mesg;
  
  ppNVar3 = (NODE **)malloc(4);
  if (ppNVar3 == (NODE **)0x0) {
    set_loc("awk.h",0x7c9);
    piVar5 = __errno_location();
    pcVar6 = strerror(*piVar5);
    mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);
    r_fatal(mesg,"field.c",0x62,"init_fields","fields_arr",4,pcVar6);
  }
  fields_arr = ppNVar3;
  pNVar4 = make_str_node("",0,0);
  *ppNVar3 = pNVar4;
  pNVar4 = *fields_arr;
  puVar1 = &pNVar4->flags;
  *puVar1 = *puVar1 | 0x2000;
  parse_extent = (pNVar4->sub).val.sp;
  pNVar4 = *(NODE **)&FS_node->sub;
  if ((pNVar4->flags & 1) == 0) {
    pNVar4 = r_dupnode(pNVar4);
  }
  else {
    ppcVar2 = &(pNVar4->sub).nodep.name;
    *ppcVar2 = *ppcVar2 + 1;
  }
  save_FS = pNVar4;
  Null_field = make_str_node("",0,0);
  Null_field->flags = 0x2006;
  field0_valid = true;
  return;
}



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

void FUN_00055f20(void)

{
  uint *puVar1;
  int *piVar2;
  int iVar3;
  int *piVar4;
  char *pcVar5;
  undefined4 uVar6;
  
  piVar2 = (int *)malloc(4);
  if (piVar2 == (int *)0x0) {
    FUN_000660d0("awk.h",0x7c9);
    piVar4 = __errno_location();
    pcVar5 = strerror(*piVar4);
    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);
    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);
  }
  DAT_000c49ac = piVar2;
  iVar3 = FUN_00067f10(&DAT_000954d0,0,0);
  *piVar2 = iVar3;
  iVar3 = *DAT_000c49ac;
  puVar1 = (uint *)(iVar3 + 0x2c);
  *puVar1 = *puVar1 | 0x2000;
  DAT_000c355c = *(undefined4 *)(iVar3 + 8);
  iVar3 = *DAT_000c4a10;
  if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {
    iVar3 = FUN_00067c20(iVar3);
  }
  else {
    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;
  }
  DAT_000c354c = iVar3;
  DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);
  *(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;
  DAT_000c49a8 = 1;
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00016f50
ADD EBX,0x68dbb
SUB ESP,0x18
PUSH 0x4
CALL 0x00014140
ADD ESP,0x10
TEST EAX,EAX
MOV ESI,EAX
JZ 0x00055fe0
LEA EBP,[EBX + 0x5cc8]
LEA EDI,[EBX + 0xfffd67ec]
SUB ESP,0x4
MOV dword ptr [EBP],ESI
PUSH 0x0
PUSH 0x0
PUSH EDI
CALL 0x00067f10
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EBP]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
OR dword ptr [EAX + 0x2c],0x2000
MOV EAX,dword ptr [EAX + 0x8]
MOV dword ptr [EBX + 0x4878],EAX
LEA EAX,[EBX + 0x5d2c]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX]
TEST byte ptr [EAX + 0x2c],0x1
JZ 0x00055fc8
ADD dword ptr [EAX + 0x10],0x1
SUB ESP,0x4
MOV dword ptr [EBX + 0x4868],EAX
PUSH 0x0
PUSH 0x0
PUSH EDI
CALL 0x00067f10
MOV dword ptr [EAX + 0x2c],0x2006
MOV dword ptr [EBX + 0x4828],EAX
LEA EAX,[EBX + 0x5cc4]
MOV byte ptr [EAX],0x1
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH EAX
CALL 0x00067c20
ADD ESP,0x10
JMP 0x00055f90
LEA EAX,[EBX + 0xfffc8f86]
SUB ESP,0x8
PUSH 0x7c9
PUSH EAX
CALL 0x000660d0
CALL 0x00014330
POP EDX
PUSH dword ptr [EAX]
CALL 0x00014180
MOV EDI,EAX
LEA EAX,[EBX + 0xfffc9134]
ADD ESP,0xc
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013f40
LEA EDX,[EBX + 0xfffd2ea2]
ADD ESP,0xc
PUSH EDI
PUSH 0x4
PUSH EDX
LEA EDX,[EBX + 0xfffd2ec3]
PUSH EDX
LEA EDX,[EBX + 0xfffd2e95]
PUSH 0x62
PUSH EDX
PUSH EAX
CALL 0x00066470
ADD ESP,0x20
JMP 0x00055f46
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00055f20(void)\n\n{\n  uint *puVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  \n  piVar2 = (int *)malloc(4);\n  if (piVar2 == (int *)0x0) {\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }\n  DAT_000c49ac = piVar2;\n  iVar3 = FUN_00067f10(&DAT_000954d0,0,0);\n  *piVar2 = iVar3;\n  iVar3 = *DAT_000c49ac;\n  puVar1 = (uint *)(iVar3 + 0x2c);\n  *puVar1 = *puVar1 | 0x2000;\n  DAT_000c355c = *(undefined4 *)(iVar3 + 8);\n  iVar3 = *DAT_000c4a10;\n  if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {\n    iVar3 = FUN_00067c20(iVar3);\n  }\n  else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }\n  DAT_000c354c = iVar3;\n  DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);\n  *(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;\n  DAT_000c49a8 = 1;\n  return;\n}\n\n" comment (function_definition "void FUN_00055f20(void)\n\n{\n  uint *puVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  \n  piVar2 = (int *)malloc(4);\n  if (piVar2 == (int *)0x0) {\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }\n  DAT_000c49ac = piVar2;\n  iVar3 = FUN_00067f10(&DAT_000954d0,0,0);\n  *piVar2 = iVar3;\n  iVar3 = *DAT_000c49ac;\n  puVar1 = (uint *)(iVar3 + 0x2c);\n  *puVar1 = *puVar1 | 0x2000;\n  DAT_000c355c = *(undefined4 *)(iVar3 + 8);\n  iVar3 = *DAT_000c4a10;\n  if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {\n    iVar3 = FUN_00067c20(iVar3);\n  }\n  else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }\n  DAT_000c354c = iVar3;\n  DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);\n  *(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;\n  DAT_000c49a8 = 1;\n  return;\n}" primitive_type (function_declarator "FUN_00055f20(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint *puVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  \n  piVar2 = (int *)malloc(4);\n  if (piVar2 == (int *)0x0) {\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }\n  DAT_000c49ac = piVar2;\n  iVar3 = FUN_00067f10(&DAT_000954d0,0,0);\n  *piVar2 = iVar3;\n  iVar3 = *DAT_000c49ac;\n  puVar1 = (uint *)(iVar3 + 0x2c);\n  *puVar1 = *puVar1 | 0x2000;\n  DAT_000c355c = *(undefined4 *)(iVar3 + 8);\n  iVar3 = *DAT_000c4a10;\n  if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {\n    iVar3 = FUN_00067c20(iVar3);\n  }\n  else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }\n  DAT_000c354c = iVar3;\n  DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);\n  *(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;\n  DAT_000c49a8 = 1;\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (expression_statement "piVar2 = (int *)malloc(4);" (assignment_expression "piVar2 = (int *)malloc(4)" identifier = (cast_expression "(int *)malloc(4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(4)" identifier (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }" { (expression_statement "FUN_000660d0("awk.h",0x7c9);" (call_expression "FUN_000660d0("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 "pcVar5 = strerror(*piVar4);" (assignment_expression "pcVar5 = strerror(*piVar4)" identifier = (call_expression "strerror(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);" (assignment_expression "uVar6 = 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_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);" (call_expression "FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5)" identifier (argument_list "(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5)" ( identifier , (string_literal ""field.c"" " string_content ") , number_literal , (string_literal ""init_fields"" " string_content ") , (string_literal ""fields_arr"" " string_content ") , number_literal , identifier ))) ;) })) (expression_statement "DAT_000c49ac = piVar2;" (assignment_expression "DAT_000c49ac = piVar2" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00067f10(&DAT_000954d0,0,0);" (assignment_expression "iVar3 = FUN_00067f10(&DAT_000954d0,0,0)" identifier = (call_expression "FUN_00067f10(&DAT_000954d0,0,0)" identifier (argument_list "(&DAT_000954d0,0,0)" ( (pointer_expression "&DAT_000954d0" & identifier) , number_literal , number_literal )))) ;) (expression_statement "*piVar2 = iVar3;" (assignment_expression "*piVar2 = iVar3" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "iVar3 = *DAT_000c49ac;" (assignment_expression "iVar3 = *DAT_000c49ac" identifier = (pointer_expression "*DAT_000c49ac" * identifier)) ;) (expression_statement "puVar1 = (uint *)(iVar3 + 0x2c);" (assignment_expression "puVar1 = (uint *)(iVar3 + 0x2c)" identifier = (cast_expression "(uint *)(iVar3 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 0x2000;" (assignment_expression "*puVar1 = *puVar1 | 0x2000" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 0x2000" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "DAT_000c355c = *(undefined4 *)(iVar3 + 8);" (assignment_expression "DAT_000c355c = *(undefined4 *)(iVar3 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *DAT_000c4a10;" (assignment_expression "iVar3 = *DAT_000c4a10" identifier = (pointer_expression "*DAT_000c4a10" * identifier)) ;) (if_statement "if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {\n    iVar3 = FUN_00067c20(iVar3);\n  }\n  else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }" if (parenthesized_expression "((*(byte *)(iVar3 + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x2c) & 1)" ( (binary_expression "*(byte *)(iVar3 + 0x2c) & 1" (pointer_expression "*(byte *)(iVar3 + 0x2c)" * (cast_expression "(byte *)(iVar3 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar3 = FUN_00067c20(iVar3);\n  }" { (expression_statement "iVar3 = FUN_00067c20(iVar3);" (assignment_expression "iVar3 = FUN_00067c20(iVar3)" identifier = (call_expression "FUN_00067c20(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) }) (else_clause "else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }" else (compound_statement "{\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }" { (expression_statement "*(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;" (assignment_expression "*(int *)(iVar3 + 0x10) = *(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) )))) = (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 "DAT_000c354c = iVar3;" (assignment_expression "DAT_000c354c = iVar3" identifier = identifier) ;) (expression_statement "DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);" (assignment_expression "DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0)" identifier = (call_expression "FUN_00067f10(&DAT_000954d0,0,0)" identifier (argument_list "(&DAT_000954d0,0,0)" ( (pointer_expression "&DAT_000954d0" & identifier) , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;" (assignment_expression "*(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006" (pointer_expression "*(undefined4 *)(DAT_000c350c + 0x2c)" * (cast_expression "(undefined4 *)(DAT_000c350c + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000c350c + 0x2c)" ( (binary_expression "DAT_000c350c + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "DAT_000c49a8 = 1;" (assignment_expression "DAT_000c49a8 = 1" identifier = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid init_fields(void)\n\n{\n  uint *puVar1;\n  char **ppcVar2;\n  NODE **ppNVar3;\n  NODE *pNVar4;\n  int *piVar5;\n  char *pcVar6;\n  char *mesg;\n  \n  ppNVar3 = (NODE **)malloc(4);\n  if (ppNVar3 == (NODE **)0x0) {\n    set_loc("awk.h",0x7c9);\n    piVar5 = __errno_location();\n    pcVar6 = strerror(*piVar5);\n    mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    r_fatal(mesg,"field.c",0x62,"init_fields","fields_arr",4,pcVar6);\n  }\n  fields_arr = ppNVar3;\n  pNVar4 = make_str_node("",0,0);\n  *ppNVar3 = pNVar4;\n  pNVar4 = *fields_arr;\n  puVar1 = &pNVar4->flags;\n  *puVar1 = *puVar1 | 0x2000;\n  parse_extent = (pNVar4->sub).val.sp;\n  pNVar4 = *(NODE **)&FS_node->sub;\n  if ((pNVar4->flags & 1) == 0) {\n    pNVar4 = r_dupnode(pNVar4);\n  }\n  else {\n    ppcVar2 = &(pNVar4->sub).nodep.name;\n    *ppcVar2 = *ppcVar2 + 1;\n  }\n  save_FS = pNVar4;\n  Null_field = make_str_node("",0,0);\n  Null_field->flags = 0x2006;\n  field0_valid = true;\n  return;\n}\n\n" comment comment (function_definition "void init_fields(void)\n\n{\n  uint *puVar1;\n  char **ppcVar2;\n  NODE **ppNVar3;\n  NODE *pNVar4;\n  int *piVar5;\n  char *pcVar6;\n  char *mesg;\n  \n  ppNVar3 = (NODE **)malloc(4);\n  if (ppNVar3 == (NODE **)0x0) {\n    set_loc("awk.h",0x7c9);\n    piVar5 = __errno_location();\n    pcVar6 = strerror(*piVar5);\n    mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    r_fatal(mesg,"field.c",0x62,"init_fields","fields_arr",4,pcVar6);\n  }\n  fields_arr = ppNVar3;\n  pNVar4 = make_str_node("",0,0);\n  *ppNVar3 = pNVar4;\n  pNVar4 = *fields_arr;\n  puVar1 = &pNVar4->flags;\n  *puVar1 = *puVar1 | 0x2000;\n  parse_extent = (pNVar4->sub).val.sp;\n  pNVar4 = *(NODE **)&FS_node->sub;\n  if ((pNVar4->flags & 1) == 0) {\n    pNVar4 = r_dupnode(pNVar4);\n  }\n  else {\n    ppcVar2 = &(pNVar4->sub).nodep.name;\n    *ppcVar2 = *ppcVar2 + 1;\n  }\n  save_FS = pNVar4;\n  Null_field = make_str_node("",0,0);\n  Null_field->flags = 0x2006;\n  field0_valid = true;\n  return;\n}" primitive_type (function_declarator "init_fields(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint *puVar1;\n  char **ppcVar2;\n  NODE **ppNVar3;\n  NODE *pNVar4;\n  int *piVar5;\n  char *pcVar6;\n  char *mesg;\n  \n  ppNVar3 = (NODE **)malloc(4);\n  if (ppNVar3 == (NODE **)0x0) {\n    set_loc("awk.h",0x7c9);\n    piVar5 = __errno_location();\n    pcVar6 = strerror(*piVar5);\n    mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    r_fatal(mesg,"field.c",0x62,"init_fields","fields_arr",4,pcVar6);\n  }\n  fields_arr = ppNVar3;\n  pNVar4 = make_str_node("",0,0);\n  *ppNVar3 = pNVar4;\n  pNVar4 = *fields_arr;\n  puVar1 = &pNVar4->flags;\n  *puVar1 = *puVar1 | 0x2000;\n  parse_extent = (pNVar4->sub).val.sp;\n  pNVar4 = *(NODE **)&FS_node->sub;\n  if ((pNVar4->flags & 1) == 0) {\n    pNVar4 = r_dupnode(pNVar4);\n  }\n  else {\n    ppcVar2 = &(pNVar4->sub).nodep.name;\n    *ppcVar2 = *ppcVar2 + 1;\n  }\n  save_FS = pNVar4;\n  Null_field = make_str_node("",0,0);\n  Null_field->flags = 0x2006;\n  field0_valid = true;\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char **ppcVar2;" primitive_type (pointer_declarator "**ppcVar2" * (pointer_declarator "*ppcVar2" * identifier)) ;) (declaration "NODE **ppNVar3;" type_identifier (pointer_declarator "**ppNVar3" * (pointer_declarator "*ppNVar3" * identifier)) ;) (declaration "NODE *pNVar4;" type_identifier (pointer_declarator "*pNVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *mesg;" primitive_type (pointer_declarator "*mesg" * identifier) ;) (expression_statement "ppNVar3 = (NODE **)malloc(4);" (assignment_expression "ppNVar3 = (NODE **)malloc(4)" identifier = (cast_expression "(NODE **)malloc(4)" ( (type_descriptor "NODE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "malloc(4)" identifier (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (ppNVar3 == (NODE **)0x0) {\n    set_loc("awk.h",0x7c9);\n    piVar5 = __errno_location();\n    pcVar6 = strerror(*piVar5);\n    mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    r_fatal(mesg,"field.c",0x62,"init_fields","fields_arr",4,pcVar6);\n  }" if (parenthesized_expression "(ppNVar3 == (NODE **)0x0)" ( (binary_expression "ppNVar3 == (NODE **)0x0" identifier == (cast_expression "(NODE **)0x0" ( (type_descriptor "NODE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    set_loc("awk.h",0x7c9);\n    piVar5 = __errno_location();\n    pcVar6 = strerror(*piVar5);\n    mesg = (char *)dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    r_fatal(mesg,"field.c",0x62,"init_fields","fields_arr",4,pcVar6);\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 "piVar5 = __errno_location();" (assignment_expression "piVar5 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar6 = strerror(*piVar5);" (assignment_expression "pcVar6 = strerror(*piVar5)" identifier = (call_expression "strerror(*piVar5)" identifier (argument_list "(*piVar5)" ( (pointer_expression "*piVar5" * 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 ))))) ;) (expression_statement "r_fatal(mesg,"field.c",0x62,"init_fields","fields_arr",4,pcVar6);" (call_expression "r_fatal(mesg,"field.c",0x62,"init_fields","fields_arr",4,pcVar6)" identifier (argument_list "(mesg,"field.c",0x62,"init_fields","fields_arr",4,pcVar6)" ( identifier , (string_literal ""field.c"" " string_content ") , number_literal , (string_literal ""init_fields"" " string_content ") , (string_literal ""fields_arr"" " string_content ") , number_literal , identifier ))) ;) })) (expression_statement "fields_arr = ppNVar3;" (assignment_expression "fields_arr = ppNVar3" identifier = identifier) ;) (expression_statement "pNVar4 = make_str_node("",0,0);" (assignment_expression "pNVar4 = make_str_node("",0,0)" identifier = (call_expression "make_str_node("",0,0)" identifier (argument_list "("",0,0)" ( (string_literal """" " ") , number_literal , number_literal )))) ;) (expression_statement "*ppNVar3 = pNVar4;" (assignment_expression "*ppNVar3 = pNVar4" (pointer_expression "*ppNVar3" * identifier) = identifier) ;) (expression_statement "pNVar4 = *fields_arr;" (assignment_expression "pNVar4 = *fields_arr" identifier = (pointer_expression "*fields_arr" * identifier)) ;) (expression_statement "puVar1 = &pNVar4->flags;" (assignment_expression "puVar1 = &pNVar4->flags" identifier = (pointer_expression "&pNVar4->flags" & (field_expression "pNVar4->flags" identifier -> field_identifier))) ;) (expression_statement "*puVar1 = *puVar1 | 0x2000;" (assignment_expression "*puVar1 = *puVar1 | 0x2000" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 0x2000" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "parse_extent = (pNVar4->sub).val.sp;" (assignment_expression "parse_extent = (pNVar4->sub).val.sp" identifier = (field_expression "(pNVar4->sub).val.sp" (field_expression "(pNVar4->sub).val" (parenthesized_expression "(pNVar4->sub)" ( (field_expression "pNVar4->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "pNVar4 = *(NODE **)&FS_node->sub;" (assignment_expression "pNVar4 = *(NODE **)&FS_node->sub" identifier = (pointer_expression "*(NODE **)&FS_node->sub" * (cast_expression "(NODE **)&FS_node->sub" ( (type_descriptor "NODE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&FS_node->sub" & (field_expression "FS_node->sub" identifier -> field_identifier))))) ;) (if_statement "if ((pNVar4->flags & 1) == 0) {\n    pNVar4 = r_dupnode(pNVar4);\n  }\n  else {\n    ppcVar2 = &(pNVar4->sub).nodep.name;\n    *ppcVar2 = *ppcVar2 + 1;\n  }" if (parenthesized_expression "((pNVar4->flags & 1) == 0)" ( (binary_expression "(pNVar4->flags & 1) == 0" (parenthesized_expression "(pNVar4->flags & 1)" ( (binary_expression "pNVar4->flags & 1" (field_expression "pNVar4->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    pNVar4 = r_dupnode(pNVar4);\n  }" { (expression_statement "pNVar4 = r_dupnode(pNVar4);" (assignment_expression "pNVar4 = r_dupnode(pNVar4)" identifier = (call_expression "r_dupnode(pNVar4)" identifier (argument_list "(pNVar4)" ( identifier )))) ;) }) (else_clause "else {\n    ppcVar2 = &(pNVar4->sub).nodep.name;\n    *ppcVar2 = *ppcVar2 + 1;\n  }" else (compound_statement "{\n    ppcVar2 = &(pNVar4->sub).nodep.name;\n    *ppcVar2 = *ppcVar2 + 1;\n  }" { (expression_statement "ppcVar2 = &(pNVar4->sub).nodep.name;" (assignment_expression "ppcVar2 = &(pNVar4->sub).nodep.name" identifier = (pointer_expression "&(pNVar4->sub).nodep.name" & (field_expression "(pNVar4->sub).nodep.name" (field_expression "(pNVar4->sub).nodep" (parenthesized_expression "(pNVar4->sub)" ( (field_expression "pNVar4->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "*ppcVar2 = *ppcVar2 + 1;" (assignment_expression "*ppcVar2 = *ppcVar2 + 1" (pointer_expression "*ppcVar2" * identifier) = (binary_expression "*ppcVar2 + 1" (pointer_expression "*ppcVar2" * identifier) + number_literal)) ;) }))) (expression_statement "save_FS = pNVar4;" (assignment_expression "save_FS = pNVar4" identifier = identifier) ;) (expression_statement "Null_field = make_str_node("",0,0);" (assignment_expression "Null_field = make_str_node("",0,0)" identifier = (call_expression "make_str_node("",0,0)" identifier (argument_list "("",0,0)" ( (string_literal """" " ") , number_literal , number_literal )))) ;) (expression_statement "Null_field->flags = 0x2006;" (assignment_expression "Null_field->flags = 0x2006" (field_expression "Null_field->flags" identifier -> field_identifier) = number_literal) ;) (expression_statement "field0_valid = true;" (assignment_expression "field0_valid = true" identifier = true) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00055f20(void)\n\n{\n  uint *puVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  \n  piVar2 = (int *)malloc(4);\n  if (piVar2 == (int *)0x0) {\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }\n  DAT_000c49ac = piVar2;\n  iVar3 = FUN_00067f10(&DAT_000954d0,0,0);\n  *piVar2 = iVar3;\n  iVar3 = *DAT_000c49ac;\n  puVar1 = (uint *)(iVar3 + 0x2c);\n  *puVar1 = *puVar1 | 0x2000;\n  DAT_000c355c = *(undefined4 *)(iVar3 + 8);\n  iVar3 = *DAT_000c4a10;\n  if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {\n    iVar3 = FUN_00067c20(iVar3);\n  }\n  else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }\n  DAT_000c354c = iVar3;\n  DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);\n  *(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;\n  DAT_000c49a8 = 1;\n  return;\n}\n\n" (function_definition "void FUN_00055f20(void)\n\n{\n  uint *puVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  \n  piVar2 = (int *)malloc(4);\n  if (piVar2 == (int *)0x0) {\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }\n  DAT_000c49ac = piVar2;\n  iVar3 = FUN_00067f10(&DAT_000954d0,0,0);\n  *piVar2 = iVar3;\n  iVar3 = *DAT_000c49ac;\n  puVar1 = (uint *)(iVar3 + 0x2c);\n  *puVar1 = *puVar1 | 0x2000;\n  DAT_000c355c = *(undefined4 *)(iVar3 + 8);\n  iVar3 = *DAT_000c4a10;\n  if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {\n    iVar3 = FUN_00067c20(iVar3);\n  }\n  else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }\n  DAT_000c354c = iVar3;\n  DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);\n  *(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;\n  DAT_000c49a8 = 1;\n  return;\n}" primitive_type (function_declarator "FUN_00055f20(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  uint *puVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  \n  piVar2 = (int *)malloc(4);\n  if (piVar2 == (int *)0x0) {\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }\n  DAT_000c49ac = piVar2;\n  iVar3 = FUN_00067f10(&DAT_000954d0,0,0);\n  *piVar2 = iVar3;\n  iVar3 = *DAT_000c49ac;\n  puVar1 = (uint *)(iVar3 + 0x2c);\n  *puVar1 = *puVar1 | 0x2000;\n  DAT_000c355c = *(undefined4 *)(iVar3 + 8);\n  iVar3 = *DAT_000c4a10;\n  if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {\n    iVar3 = FUN_00067c20(iVar3);\n  }\n  else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }\n  DAT_000c354c = iVar3;\n  DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);\n  *(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;\n  DAT_000c49a8 = 1;\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (expression_statement "piVar2 = (int *)malloc(4);" (assignment_expression "piVar2 = (int *)malloc(4)" identifier = (cast_expression "(int *)malloc(4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(4)" identifier (argument_list "(4)" ( number_literal ))))) ;) (if_statement "if (piVar2 == (int *)0x0) {\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }" if (parenthesized_expression "(piVar2 == (int *)0x0)" ( (binary_expression "piVar2 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }" { (expression_statement "FUN_000660d0("awk.h",0x7c9);" (call_expression "FUN_000660d0("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 "pcVar5 = strerror(*piVar4);" (assignment_expression "pcVar5 = strerror(*piVar4)" identifier = (call_expression "strerror(*piVar4)" identifier (argument_list "(*piVar4)" ( (pointer_expression "*piVar4" * identifier) )))) ;) (expression_statement "uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);" (assignment_expression "uVar6 = 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_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);" (call_expression "FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5)" identifier (argument_list "(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5)" ( identifier , (string_literal ""field.c"" " string_content ") , number_literal , (string_literal ""init_fields"" " string_content ") , (string_literal ""fields_arr"" " string_content ") , number_literal , identifier ))) ;) })) (expression_statement "DAT_000c49ac = piVar2;" (assignment_expression "DAT_000c49ac = piVar2" identifier = identifier) ;) (expression_statement "iVar3 = FUN_00067f10(&DAT_000954d0,0,0);" (assignment_expression "iVar3 = FUN_00067f10(&DAT_000954d0,0,0)" identifier = (call_expression "FUN_00067f10(&DAT_000954d0,0,0)" identifier (argument_list "(&DAT_000954d0,0,0)" ( (pointer_expression "&DAT_000954d0" & identifier) , number_literal , number_literal )))) ;) (expression_statement "*piVar2 = iVar3;" (assignment_expression "*piVar2 = iVar3" (pointer_expression "*piVar2" * identifier) = identifier) ;) (expression_statement "iVar3 = *DAT_000c49ac;" (assignment_expression "iVar3 = *DAT_000c49ac" identifier = (pointer_expression "*DAT_000c49ac" * identifier)) ;) (expression_statement "puVar1 = (uint *)(iVar3 + 0x2c);" (assignment_expression "puVar1 = (uint *)(iVar3 + 0x2c)" identifier = (cast_expression "(uint *)(iVar3 + 0x2c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) ;) (expression_statement "*puVar1 = *puVar1 | 0x2000;" (assignment_expression "*puVar1 = *puVar1 | 0x2000" (pointer_expression "*puVar1" * identifier) = (binary_expression "*puVar1 | 0x2000" (pointer_expression "*puVar1" * identifier) | number_literal)) ;) (expression_statement "DAT_000c355c = *(undefined4 *)(iVar3 + 8);" (assignment_expression "DAT_000c355c = *(undefined4 *)(iVar3 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 8)" * (cast_expression "(undefined4 *)(iVar3 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 8)" ( (binary_expression "iVar3 + 8" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *DAT_000c4a10;" (assignment_expression "iVar3 = *DAT_000c4a10" identifier = (pointer_expression "*DAT_000c4a10" * identifier)) ;) (if_statement "if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {\n    iVar3 = FUN_00067c20(iVar3);\n  }\n  else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }" if (parenthesized_expression "((*(byte *)(iVar3 + 0x2c) & 1) == 0)" ( (binary_expression "(*(byte *)(iVar3 + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x2c) & 1)" ( (binary_expression "*(byte *)(iVar3 + 0x2c) & 1" (pointer_expression "*(byte *)(iVar3 + 0x2c)" * (cast_expression "(byte *)(iVar3 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x2c)" ( (binary_expression "iVar3 + 0x2c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n    iVar3 = FUN_00067c20(iVar3);\n  }" { (expression_statement "iVar3 = FUN_00067c20(iVar3);" (assignment_expression "iVar3 = FUN_00067c20(iVar3)" identifier = (call_expression "FUN_00067c20(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) }) (else_clause "else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }" else (compound_statement "{\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }" { (expression_statement "*(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;" (assignment_expression "*(int *)(iVar3 + 0x10) = *(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) )))) = (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 "DAT_000c354c = iVar3;" (assignment_expression "DAT_000c354c = iVar3" identifier = identifier) ;) (expression_statement "DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);" (assignment_expression "DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0)" identifier = (call_expression "FUN_00067f10(&DAT_000954d0,0,0)" identifier (argument_list "(&DAT_000954d0,0,0)" ( (pointer_expression "&DAT_000954d0" & identifier) , number_literal , number_literal )))) ;) (expression_statement "*(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;" (assignment_expression "*(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006" (pointer_expression "*(undefined4 *)(DAT_000c350c + 0x2c)" * (cast_expression "(undefined4 *)(DAT_000c350c + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000c350c + 0x2c)" ( (binary_expression "DAT_000c350c + 0x2c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "DAT_000c49a8 = 1;" (assignment_expression "DAT_000c49a8 = 1" identifier = number_literal) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 , (string_literal " string_content ") , LIT , (string_literal " string_content ") , (string_literal " string_content ") , LIT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_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 = LIT) ;) (return_statement return ;) })))
(function_definition "void FUN_00055f20(void)\n\n{\n  uint *puVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  \n  piVar2 = (int *)malloc(4);\n  if (piVar2 == (int *)0x0) {\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }\n  DAT_000c49ac = piVar2;\n  iVar3 = FUN_00067f10(&DAT_000954d0,0,0);\n  *piVar2 = iVar3;\n  iVar3 = *DAT_000c49ac;\n  puVar1 = (uint *)(iVar3 + 0x2c);\n  *puVar1 = *puVar1 | 0x2000;\n  DAT_000c355c = *(undefined4 *)(iVar3 + 8);\n  iVar3 = *DAT_000c4a10;\n  if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {\n    iVar3 = FUN_00067c20(iVar3);\n  }\n  else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }\n  DAT_000c354c = iVar3;\n  DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);\n  *(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;\n  DAT_000c49a8 = 1;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00055f20(void)" (identifier "FUN_00055f20") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  uint *puVar1;\n  int *piVar2;\n  int iVar3;\n  int *piVar4;\n  char *pcVar5;\n  undefined4 uVar6;\n  \n  piVar2 = (int *)malloc(4);\n  if (piVar2 == (int *)0x0) {\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }\n  DAT_000c49ac = piVar2;\n  iVar3 = FUN_00067f10(&DAT_000954d0,0,0);\n  *piVar2 = iVar3;\n  iVar3 = *DAT_000c49ac;\n  puVar1 = (uint *)(iVar3 + 0x2c);\n  *puVar1 = *puVar1 | 0x2000;\n  DAT_000c355c = *(undefined4 *)(iVar3 + 8);\n  iVar3 = *DAT_000c4a10;\n  if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {\n    iVar3 = FUN_00067c20(iVar3);\n  }\n  else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }\n  DAT_000c354c = iVar3;\n  DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);\n  *(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;\n  DAT_000c49a8 = 1;\n  return;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (expression_statement "piVar2 = (int *)malloc(4);" (assignment_expression "piVar2 = (int *)malloc(4)" (identifier "piVar2") (= "=") (cast_expression "(int *)malloc(4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "malloc(4)" (identifier "malloc") (argument_list "(4)" (( "(") (number_literal "4") () ")"))))) (; ";")) (if_statement "if (piVar2 == (int *)0x0) {\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }" (if "if") (parenthesized_expression "(piVar2 == (int *)0x0)" (( "(") (binary_expression "piVar2 == (int *)0x0" (identifier "piVar2") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_000660d0("awk.h",0x7c9);\n    piVar4 = __errno_location();\n    pcVar5 = strerror(*piVar4);\n    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);\n    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);\n  }" ({ "{") (expression_statement "FUN_000660d0("awk.h",0x7c9);" (call_expression "FUN_000660d0("awk.h",0x7c9)" (identifier "FUN_000660d0") (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 "pcVar5 = strerror(*piVar4);" (assignment_expression "pcVar5 = strerror(*piVar4)" (identifier "pcVar5") (= "=") (call_expression "strerror(*piVar4)" (identifier "strerror") (argument_list "(*piVar4)" (( "(") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) () ")")))) (; ";")) (expression_statement "uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);" (assignment_expression "uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5)" (identifier "uVar6") (= "=") (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_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);" (call_expression "FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5)" (identifier "FUN_00066470") (argument_list "(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5)" (( "(") (identifier "uVar6") (, ",") (string_literal ""field.c"" (" """) (string_content "field.c") (" """)) (, ",") (number_literal "0x62") (, ",") (string_literal ""init_fields"" (" """) (string_content "init_fields") (" """)) (, ",") (string_literal ""fields_arr"" (" """) (string_content "fields_arr") (" """)) (, ",") (number_literal "4") (, ",") (identifier "pcVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_000c49ac = piVar2;" (assignment_expression "DAT_000c49ac = piVar2" (identifier "DAT_000c49ac") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "iVar3 = FUN_00067f10(&DAT_000954d0,0,0);" (assignment_expression "iVar3 = FUN_00067f10(&DAT_000954d0,0,0)" (identifier "iVar3") (= "=") (call_expression "FUN_00067f10(&DAT_000954d0,0,0)" (identifier "FUN_00067f10") (argument_list "(&DAT_000954d0,0,0)" (( "(") (pointer_expression "&DAT_000954d0" (& "&") (identifier "DAT_000954d0")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*piVar2 = iVar3;" (assignment_expression "*piVar2 = iVar3" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar3 = *DAT_000c49ac;" (assignment_expression "iVar3 = *DAT_000c49ac" (identifier "iVar3") (= "=") (pointer_expression "*DAT_000c49ac" (* "*") (identifier "DAT_000c49ac"))) (; ";")) (expression_statement "puVar1 = (uint *)(iVar3 + 0x2c);" (assignment_expression "puVar1 = (uint *)(iVar3 + 0x2c)" (identifier "puVar1") (= "=") (cast_expression "(uint *)(iVar3 + 0x2c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")")))) (; ";")) (expression_statement "*puVar1 = *puVar1 | 0x2000;" (assignment_expression "*puVar1 = *puVar1 | 0x2000" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (binary_expression "*puVar1 | 0x2000" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (| "|") (number_literal "0x2000"))) (; ";")) (expression_statement "DAT_000c355c = *(undefined4 *)(iVar3 + 8);" (assignment_expression "DAT_000c355c = *(undefined4 *)(iVar3 + 8)" (identifier "DAT_000c355c") (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 8)" (( "(") (binary_expression "iVar3 + 8" (identifier "iVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "iVar3 = *DAT_000c4a10;" (assignment_expression "iVar3 = *DAT_000c4a10" (identifier "iVar3") (= "=") (pointer_expression "*DAT_000c4a10" (* "*") (identifier "DAT_000c4a10"))) (; ";")) (if_statement "if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {\n    iVar3 = FUN_00067c20(iVar3);\n  }\n  else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }" (if "if") (parenthesized_expression "((*(byte *)(iVar3 + 0x2c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(iVar3 + 0x2c) & 1) == 0" (parenthesized_expression "(*(byte *)(iVar3 + 0x2c) & 1)" (( "(") (binary_expression "*(byte *)(iVar3 + 0x2c) & 1" (pointer_expression "*(byte *)(iVar3 + 0x2c)" (* "*") (cast_expression "(byte *)(iVar3 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x2c)" (( "(") (binary_expression "iVar3 + 0x2c" (identifier "iVar3") (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar3 = FUN_00067c20(iVar3);\n  }" ({ "{") (expression_statement "iVar3 = FUN_00067c20(iVar3);" (assignment_expression "iVar3 = FUN_00067c20(iVar3)" (identifier "iVar3") (= "=") (call_expression "FUN_00067c20(iVar3)" (identifier "FUN_00067c20") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }" (else "else") (compound_statement "{\n    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;\n  }" ({ "{") (expression_statement "*(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;" (assignment_expression "*(int *)(iVar3 + 0x10) = *(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")) () ")")))) (= "=") (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 "DAT_000c354c = iVar3;" (assignment_expression "DAT_000c354c = iVar3" (identifier "DAT_000c354c") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);" (assignment_expression "DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0)" (identifier "DAT_000c350c") (= "=") (call_expression "FUN_00067f10(&DAT_000954d0,0,0)" (identifier "FUN_00067f10") (argument_list "(&DAT_000954d0,0,0)" (( "(") (pointer_expression "&DAT_000954d0" (& "&") (identifier "DAT_000954d0")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;" (assignment_expression "*(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006" (pointer_expression "*(undefined4 *)(DAT_000c350c + 0x2c)" (* "*") (cast_expression "(undefined4 *)(DAT_000c350c + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000c350c + 0x2c)" (( "(") (binary_expression "DAT_000c350c + 0x2c" (identifier "DAT_000c350c") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0x2006")) (; ";")) (expression_statement "DAT_000c49a8 = 1;" (assignment_expression "DAT_000c49a8 = 1" (identifier "DAT_000c49a8") (= "=") (number_literal "1")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  type_1 *puVar1;
  char **ppcVar2;
  type_2 **var_2;
  type_2 *pNVar4;
  int *piVar5;
  char *pcVar6;
  char *mesg;
  
  var_2 = (type_2 **)var_1(4);
  if (var_2 == (type_2 **)0x0) {
    var_3("awk.h",0x7c9);
    piVar5 = var_4();
    pcVar6 = var_5(*piVar5);
    mesg = (char *)var_6(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);
    var_7(mesg,"field.c",0x62,"init_fields","fields_arr",4,pcVar6);
  }
  fields_arr = var_2;
  pNVar4 = var_8("",0,0);
  *var_2 = pNVar4;
  pNVar4 = *fields_arr;
  puVar1 = &pNVar4->flags;
  *puVar1 = *puVar1 | 0x2000;
  parse_extent = (pNVar4->sub).val.sp;
  pNVar4 = *(type_2 **)&FS_node->sub;
  if ((pNVar4->flags & 1) == 0) {
    pNVar4 = var_9(pNVar4);
  }
  else {
    ppcVar2 = &(pNVar4->sub).nodep.name;
    *ppcVar2 = *ppcVar2 + 1;
  }
  save_FS = pNVar4;
  Null_field = var_8("",0,0);
  Null_field->flags = 0x2006;
  field0_valid = true;
  return;
}


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

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

void MASKED(void)

{
  uint *puVar1;
  int *piVar2;
  int iVar3;
  int *piVar4;
  char *pcVar5;
  undefined4 uVar6;
  
  piVar2 = (int *)malloc(4);
  if (piVar2 == (int *)0x0) {
    FUN_000660d0("awk.h",0x7c9);
    piVar4 = __errno_location();
    pcVar5 = strerror(*piVar4);
    uVar6 = dcgettext(0,"%s:%d:%s: %s: cannot allocate %ld bytes of memory: %s",5);
    FUN_00066470(uVar6,"field.c",0x62,"init_fields","fields_arr",4,pcVar5);
  }
  DAT_000c49ac = piVar2;
  iVar3 = FUN_00067f10(&DAT_000954d0,0,0);
  *piVar2 = iVar3;
  iVar3 = *DAT_000c49ac;
  puVar1 = (uint *)(iVar3 + 0x2c);
  *puVar1 = *puVar1 | 0x2000;
  DAT_000c355c = *(undefined4 *)(iVar3 + 8);
  iVar3 = *DAT_000c4a10;
  if ((*(byte *)(iVar3 + 0x2c) & 1) == 0) {
    iVar3 = FUN_00067c20(iVar3);
  }
  else {
    *(int *)(iVar3 + 0x10) = *(int *)(iVar3 + 0x10) + 1;
  }
  DAT_000c354c = iVar3;
  DAT_000c350c = FUN_00067f10(&DAT_000954d0,0,0);
  *(undefined4 *)(DAT_000c350c + 0x2c) = 0x2006;
  DAT_000c49a8 = 1;
  return;
}

