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

int __regparm3 cmp_scalars(scalar_cmp_t comparison_type)

{
  char **ppcVar1;
  NODE *symbol;
  NODE *symbol_00;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  
  symbol = stack_ptr->rptr;
  stack_ptr = stack_ptr + -1;
  if (symbol->type == Node_var_array) {
    set_loc("awk.h",0x72b);
    pcVar2 = array_vname(symbol);
    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);
    r_fatal(pcVar3,pcVar2);
  }
  symbol_00 = stack_ptr->rptr;
  if (symbol_00->type == Node_var_array) {
    ppcVar1 = &(symbol->sub).nodep.name;
    *ppcVar1 = *ppcVar1 + -1;
    if (*ppcVar1 == (char *)0x0) {
      r_unref(symbol);
    }
    set_loc("eval.c",0x5fa);
    pcVar2 = array_vname(symbol_00);
    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);
    r_fatal(pcVar3,pcVar2);
  }
  iVar4 = 0;
  if (symbol_00 != symbol) {
    iVar4 = cmp_nodes(symbol_00,symbol,(_Bool)((byte)comparison_type ^ 1));
  }
  ppcVar1 = &(symbol_00->sub).nodep.name;
  *ppcVar1 = *ppcVar1 + -1;
  if (*ppcVar1 == (char *)0x0) {
    r_unref(symbol_00);
  }
  ppcVar1 = &(symbol->sub).nodep.name;
  *ppcVar1 = *ppcVar1 + -1;
  if (*ppcVar1 == (char *)0x0) {
    r_unref(symbol);
  }
  return iVar4;
}



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

undefined4 FUN_00047bd0(void)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  
  iVar2 = *DAT_000c13c8;
  DAT_000c13c8 = DAT_000c13c8 + -1;
  if (*(int *)(iVar2 + 0x28) == 5) {
    FUN_000660d0("awk.h",0x72b);
    uVar5 = FUN_00018020(iVar2);
    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);
    FUN_00066470(uVar4,uVar5);
  }
  iVar3 = *DAT_000c13c8;
  if (*(int *)(iVar3 + 0x28) == 5) {
    piVar1 = (int *)(iVar2 + 0x10);
    *piVar1 = *piVar1 + -1;
    if (*piVar1 == 0) {
      FUN_000668b0(iVar2);
    }
    FUN_000660d0("eval.c",0x5fa);
    uVar5 = FUN_00018020(iVar3);
    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);
    FUN_00066470(uVar4,uVar5);
  }
  uVar5 = 0;
  if (iVar3 != iVar2) {
    uVar5 = FUN_00047660();
  }
  piVar1 = (int *)(iVar3 + 0x10);
  *piVar1 = *piVar1 + -1;
  if (*piVar1 == 0) {
    FUN_000668b0(iVar3);
  }
  piVar1 = (int *)(iVar2 + 0x10);
  *piVar1 = *piVar1 + -1;
  if (*piVar1 == 0) {
    FUN_000668b0(iVar2);
  }
  return uVar5;
}


PUSH EBP
PUSH EDI
MOV ECX,EAX
PUSH ESI
PUSH EBX
CALL 0x00016f50
ADD EBX,0x77109
SUB ESP,0x1c
MOV EDX,dword ptr [EBX + 0x26e4]
MOV ESI,dword ptr [EDX]
LEA EAX,[EDX + -0x4]
MOV dword ptr [EBX + 0x26e4],EAX
CMP dword ptr [ESI + 0x28],0x5
JZ 0x00047cb0
MOV EDI,dword ptr [EAX]
CMP dword ptr [EDI + 0x28],0x5
JZ 0x00047c40
XOR EBP,EBP
CMP EDI,ESI
JZ 0x00047c1b
XOR ECX,0x1
MOV EDX,ESI
MOV EAX,EDI
CALL 0x00047660
MOV EBP,EAX
SUB dword ptr [EDI + 0x10],0x1
JZ 0x00047c98
SUB dword ptr [ESI + 0x10],0x1
JNZ 0x00047c33
SUB ESP,0xc
PUSH ESI
CALL 0x000668b0
ADD ESP,0x10
ADD ESP,0x1c
MOV EAX,EBP
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB dword ptr [ESI + 0x10],0x1
JZ 0x00047d00
LEA EAX,[EBX + 0xfffd1760]
MOV dword ptr [ESP + 0xc],ECX
SUB ESP,0x8
PUSH 0x5fa
PUSH EAX
CALL 0x000660d0
MOV dword ptr [ESP],EDI
CALL 0x00018020
MOV EBP,EAX
LEA EAX,[EBX + 0xfffc916c]
ADD ESP,0xc
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013f40
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x00066470
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
JMP 0x00047c07
SUB ESP,0xc
PUSH EDI
CALL 0x000668b0
ADD ESP,0x10
JMP 0x00047c21
LEA EAX,[EBX + 0xfffc8f86]
MOV dword ptr [ESP + 0xc],ECX
SUB ESP,0x8
PUSH 0x72b
PUSH EAX
CALL 0x000660d0
MOV dword ptr [ESP],ESI
CALL 0x00018020
MOV EDI,EAX
LEA EAX,[EBX + 0xfffc916c]
ADD ESP,0xc
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013f40
POP EBP
POP EDX
PUSH EDI
PUSH EAX
CALL 0x00066470
ADD ESP,0x10
MOV EAX,dword ptr [EBX + 0x26e4]
MOV ECX,dword ptr [ESP + 0xc]
JMP 0x00047bff
MOV dword ptr [ESP + 0xc],ECX
SUB ESP,0xc
PUSH ESI
CALL 0x000668b0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
JMP 0x00047c4a
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 FUN_00047bd0(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar2 = *DAT_000c13c8;\n  DAT_000c13c8 = DAT_000c13c8 + -1;\n  if (*(int *)(iVar2 + 0x28) == 5) {\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  iVar3 = *DAT_000c13c8;\n  if (*(int *)(iVar3 + 0x28) == 5) {\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  uVar5 = 0;\n  if (iVar3 != iVar2) {\n    uVar5 = FUN_00047660();\n  }\n  piVar1 = (int *)(iVar3 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar3);\n  }\n  piVar1 = (int *)(iVar2 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar2);\n  }\n  return uVar5;\n}\n\n" comment (function_definition "undefined4 FUN_00047bd0(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar2 = *DAT_000c13c8;\n  DAT_000c13c8 = DAT_000c13c8 + -1;\n  if (*(int *)(iVar2 + 0x28) == 5) {\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  iVar3 = *DAT_000c13c8;\n  if (*(int *)(iVar3 + 0x28) == 5) {\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  uVar5 = 0;\n  if (iVar3 != iVar2) {\n    uVar5 = FUN_00047660();\n  }\n  piVar1 = (int *)(iVar3 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar3);\n  }\n  piVar1 = (int *)(iVar2 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar2);\n  }\n  return uVar5;\n}" type_identifier (function_declarator "FUN_00047bd0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar2 = *DAT_000c13c8;\n  DAT_000c13c8 = DAT_000c13c8 + -1;\n  if (*(int *)(iVar2 + 0x28) == 5) {\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  iVar3 = *DAT_000c13c8;\n  if (*(int *)(iVar3 + 0x28) == 5) {\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  uVar5 = 0;\n  if (iVar3 != iVar2) {\n    uVar5 = FUN_00047660();\n  }\n  piVar1 = (int *)(iVar3 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar3);\n  }\n  piVar1 = (int *)(iVar2 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar2);\n  }\n  return uVar5;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (expression_statement "iVar2 = *DAT_000c13c8;" (assignment_expression "iVar2 = *DAT_000c13c8" identifier = (pointer_expression "*DAT_000c13c8" * identifier)) ;) (expression_statement "DAT_000c13c8 = DAT_000c13c8 + -1;" (assignment_expression "DAT_000c13c8 = DAT_000c13c8 + -1" identifier = (binary_expression "DAT_000c13c8 + -1" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar2 + 0x28) == 5) {\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) == 5)" ( (binary_expression "*(int *)(iVar2 + 0x28) == 5" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" { (expression_statement "FUN_000660d0("awk.h",0x72b);" (call_expression "FUN_000660d0("awk.h",0x72b)" identifier (argument_list "("awk.h",0x72b)" ( (string_literal ""awk.h"" " string_content ") , number_literal ))) ;) (expression_statement "uVar5 = FUN_00018020(iVar2);" (assignment_expression "uVar5 = FUN_00018020(iVar2)" identifier = (call_expression "FUN_00018020(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier = (call_expression "dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier (argument_list "(0,"attempt to use array `%s\' in a scalar context",5)" ( number_literal , (string_literal ""attempt to use array `%s\' in a scalar context"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00066470(uVar4,uVar5);" (call_expression "FUN_00066470(uVar4,uVar5)" identifier (argument_list "(uVar4,uVar5)" ( identifier , identifier ))) ;) })) (expression_statement "iVar3 = *DAT_000c13c8;" (assignment_expression "iVar3 = *DAT_000c13c8" identifier = (pointer_expression "*DAT_000c13c8" * identifier)) ;) (if_statement "if (*(int *)(iVar3 + 0x28) == 5) {\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x28) == 5)" ( (binary_expression "*(int *)(iVar3 + 0x28) == 5" (pointer_expression "*(int *)(iVar3 + 0x28)" * (cast_expression "(int *)(iVar3 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" { (expression_statement "piVar1 = (int *)(iVar2 + 0x10);" (assignment_expression "piVar1 = (int *)(iVar2 + 0x10)" identifier = (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) ;) (expression_statement "*piVar1 = *piVar1 + -1;" (assignment_expression "*piVar1 = *piVar1 + -1" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + -1" (pointer_expression "*piVar1" * identifier) + number_literal)) ;) (if_statement "if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (compound_statement "{\n      FUN_000668b0(iVar2);\n    }" { (expression_statement "FUN_000668b0(iVar2);" (call_expression "FUN_000668b0(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (expression_statement "FUN_000660d0("eval.c",0x5fa);" (call_expression "FUN_000660d0("eval.c",0x5fa)" identifier (argument_list "("eval.c",0x5fa)" ( (string_literal ""eval.c"" " string_content ") , number_literal ))) ;) (expression_statement "uVar5 = FUN_00018020(iVar3);" (assignment_expression "uVar5 = FUN_00018020(iVar3)" identifier = (call_expression "FUN_00018020(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier = (call_expression "dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier (argument_list "(0,"attempt to use array `%s\' in a scalar context",5)" ( number_literal , (string_literal ""attempt to use array `%s\' in a scalar context"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00066470(uVar4,uVar5);" (call_expression "FUN_00066470(uVar4,uVar5)" identifier (argument_list "(uVar4,uVar5)" ( identifier , identifier ))) ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (iVar3 != iVar2) {\n    uVar5 = FUN_00047660();\n  }" if (parenthesized_expression "(iVar3 != iVar2)" ( (binary_expression "iVar3 != iVar2" identifier != identifier) )) (compound_statement "{\n    uVar5 = FUN_00047660();\n  }" { (expression_statement "uVar5 = FUN_00047660();" (assignment_expression "uVar5 = FUN_00047660()" identifier = (call_expression "FUN_00047660()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "piVar1 = (int *)(iVar3 + 0x10);" (assignment_expression "piVar1 = (int *)(iVar3 + 0x10)" identifier = (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) ;) (expression_statement "*piVar1 = *piVar1 + -1;" (assignment_expression "*piVar1 = *piVar1 + -1" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + -1" (pointer_expression "*piVar1" * identifier) + number_literal)) ;) (if_statement "if (*piVar1 == 0) {\n    FUN_000668b0(iVar3);\n  }" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (compound_statement "{\n    FUN_000668b0(iVar3);\n  }" { (expression_statement "FUN_000668b0(iVar3);" (call_expression "FUN_000668b0(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) (expression_statement "piVar1 = (int *)(iVar2 + 0x10);" (assignment_expression "piVar1 = (int *)(iVar2 + 0x10)" identifier = (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) ;) (expression_statement "*piVar1 = *piVar1 + -1;" (assignment_expression "*piVar1 = *piVar1 + -1" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + -1" (pointer_expression "*piVar1" * identifier) + number_literal)) ;) (if_statement "if (*piVar1 == 0) {\n    FUN_000668b0(iVar2);\n  }" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (compound_statement "{\n    FUN_000668b0(iVar2);\n  }" { (expression_statement "FUN_000668b0(iVar2);" (call_expression "FUN_000668b0(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 cmp_scalars(scalar_cmp_t comparison_type)\n\n{\n  char **ppcVar1;\n  NODE *symbol;\n  NODE *symbol_00;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  symbol = stack_ptr->rptr;\n  stack_ptr = stack_ptr + -1;\n  if (symbol->type == Node_var_array) {\n    set_loc("awk.h",0x72b);\n    pcVar2 = array_vname(symbol);\n    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    r_fatal(pcVar3,pcVar2);\n  }\n  symbol_00 = stack_ptr->rptr;\n  if (symbol_00->type == Node_var_array) {\n    ppcVar1 = &(symbol->sub).nodep.name;\n    *ppcVar1 = *ppcVar1 + -1;\n    if (*ppcVar1 == (char *)0x0) {\n      r_unref(symbol);\n    }\n    set_loc("eval.c",0x5fa);\n    pcVar2 = array_vname(symbol_00);\n    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    r_fatal(pcVar3,pcVar2);\n  }\n  iVar4 = 0;\n  if (symbol_00 != symbol) {\n    iVar4 = cmp_nodes(symbol_00,symbol,(_Bool)((byte)comparison_type ^ 1));\n  }\n  ppcVar1 = &(symbol_00->sub).nodep.name;\n  *ppcVar1 = *ppcVar1 + -1;\n  if (*ppcVar1 == (char *)0x0) {\n    r_unref(symbol_00);\n  }\n  ppcVar1 = &(symbol->sub).nodep.name;\n  *ppcVar1 = *ppcVar1 + -1;\n  if (*ppcVar1 == (char *)0x0) {\n    r_unref(symbol);\n  }\n  return iVar4;\n}\n\n" comment (function_definition "int __regparm3 cmp_scalars(scalar_cmp_t comparison_type)\n\n{\n  char **ppcVar1;\n  NODE *symbol;\n  NODE *symbol_00;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  symbol = stack_ptr->rptr;\n  stack_ptr = stack_ptr + -1;\n  if (symbol->type == Node_var_array) {\n    set_loc("awk.h",0x72b);\n    pcVar2 = array_vname(symbol);\n    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    r_fatal(pcVar3,pcVar2);\n  }\n  symbol_00 = stack_ptr->rptr;\n  if (symbol_00->type == Node_var_array) {\n    ppcVar1 = &(symbol->sub).nodep.name;\n    *ppcVar1 = *ppcVar1 + -1;\n    if (*ppcVar1 == (char *)0x0) {\n      r_unref(symbol);\n    }\n    set_loc("eval.c",0x5fa);\n    pcVar2 = array_vname(symbol_00);\n    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    r_fatal(pcVar3,pcVar2);\n  }\n  iVar4 = 0;\n  if (symbol_00 != symbol) {\n    iVar4 = cmp_nodes(symbol_00,symbol,(_Bool)((byte)comparison_type ^ 1));\n  }\n  ppcVar1 = &(symbol_00->sub).nodep.name;\n  *ppcVar1 = *ppcVar1 + -1;\n  if (*ppcVar1 == (char *)0x0) {\n    r_unref(symbol_00);\n  }\n  ppcVar1 = &(symbol->sub).nodep.name;\n  *ppcVar1 = *ppcVar1 + -1;\n  if (*ppcVar1 == (char *)0x0) {\n    r_unref(symbol);\n  }\n  return iVar4;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "cmp_scalars(scalar_cmp_t comparison_type)" identifier (parameter_list "(scalar_cmp_t comparison_type)" ( (parameter_declaration "scalar_cmp_t comparison_type" type_identifier identifier) ))) (compound_statement "{\n  char **ppcVar1;\n  NODE *symbol;\n  NODE *symbol_00;\n  char *pcVar2;\n  char *pcVar3;\n  int iVar4;\n  \n  symbol = stack_ptr->rptr;\n  stack_ptr = stack_ptr + -1;\n  if (symbol->type == Node_var_array) {\n    set_loc("awk.h",0x72b);\n    pcVar2 = array_vname(symbol);\n    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    r_fatal(pcVar3,pcVar2);\n  }\n  symbol_00 = stack_ptr->rptr;\n  if (symbol_00->type == Node_var_array) {\n    ppcVar1 = &(symbol->sub).nodep.name;\n    *ppcVar1 = *ppcVar1 + -1;\n    if (*ppcVar1 == (char *)0x0) {\n      r_unref(symbol);\n    }\n    set_loc("eval.c",0x5fa);\n    pcVar2 = array_vname(symbol_00);\n    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    r_fatal(pcVar3,pcVar2);\n  }\n  iVar4 = 0;\n  if (symbol_00 != symbol) {\n    iVar4 = cmp_nodes(symbol_00,symbol,(_Bool)((byte)comparison_type ^ 1));\n  }\n  ppcVar1 = &(symbol_00->sub).nodep.name;\n  *ppcVar1 = *ppcVar1 + -1;\n  if (*ppcVar1 == (char *)0x0) {\n    r_unref(symbol_00);\n  }\n  ppcVar1 = &(symbol->sub).nodep.name;\n  *ppcVar1 = *ppcVar1 + -1;\n  if (*ppcVar1 == (char *)0x0) {\n    r_unref(symbol);\n  }\n  return iVar4;\n}" { (declaration "char **ppcVar1;" primitive_type (pointer_declarator "**ppcVar1" * (pointer_declarator "*ppcVar1" * identifier)) ;) (declaration "NODE *symbol;" type_identifier (pointer_declarator "*symbol" * identifier) ;) (declaration "NODE *symbol_00;" type_identifier (pointer_declarator "*symbol_00" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "symbol = stack_ptr->rptr;" (assignment_expression "symbol = stack_ptr->rptr" identifier = (field_expression "stack_ptr->rptr" identifier -> field_identifier)) ;) (expression_statement "stack_ptr = stack_ptr + -1;" (assignment_expression "stack_ptr = stack_ptr + -1" identifier = (binary_expression "stack_ptr + -1" identifier + number_literal)) ;) (if_statement "if (symbol->type == Node_var_array) {\n    set_loc("awk.h",0x72b);\n    pcVar2 = array_vname(symbol);\n    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    r_fatal(pcVar3,pcVar2);\n  }" if (parenthesized_expression "(symbol->type == Node_var_array)" ( (binary_expression "symbol->type == Node_var_array" (field_expression "symbol->type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    set_loc("awk.h",0x72b);\n    pcVar2 = array_vname(symbol);\n    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    r_fatal(pcVar3,pcVar2);\n  }" { (expression_statement "set_loc("awk.h",0x72b);" (call_expression "set_loc("awk.h",0x72b)" identifier (argument_list "("awk.h",0x72b)" ( (string_literal ""awk.h"" " string_content ") , number_literal ))) ;) (expression_statement "pcVar2 = array_vname(symbol);" (assignment_expression "pcVar2 = array_vname(symbol)" identifier = (call_expression "array_vname(symbol)" identifier (argument_list "(symbol)" ( identifier )))) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier = (cast_expression "(char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier (argument_list "(0,"attempt to use array `%s\' in a scalar context",5)" ( number_literal , (string_literal ""attempt to use array `%s\' in a scalar context"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "r_fatal(pcVar3,pcVar2);" (call_expression "r_fatal(pcVar3,pcVar2)" identifier (argument_list "(pcVar3,pcVar2)" ( identifier , identifier ))) ;) })) (expression_statement "symbol_00 = stack_ptr->rptr;" (assignment_expression "symbol_00 = stack_ptr->rptr" identifier = (field_expression "stack_ptr->rptr" identifier -> field_identifier)) ;) (if_statement "if (symbol_00->type == Node_var_array) {\n    ppcVar1 = &(symbol->sub).nodep.name;\n    *ppcVar1 = *ppcVar1 + -1;\n    if (*ppcVar1 == (char *)0x0) {\n      r_unref(symbol);\n    }\n    set_loc("eval.c",0x5fa);\n    pcVar2 = array_vname(symbol_00);\n    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    r_fatal(pcVar3,pcVar2);\n  }" if (parenthesized_expression "(symbol_00->type == Node_var_array)" ( (binary_expression "symbol_00->type == Node_var_array" (field_expression "symbol_00->type" identifier -> field_identifier) == identifier) )) (compound_statement "{\n    ppcVar1 = &(symbol->sub).nodep.name;\n    *ppcVar1 = *ppcVar1 + -1;\n    if (*ppcVar1 == (char *)0x0) {\n      r_unref(symbol);\n    }\n    set_loc("eval.c",0x5fa);\n    pcVar2 = array_vname(symbol_00);\n    pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    r_fatal(pcVar3,pcVar2);\n  }" { (expression_statement "ppcVar1 = &(symbol->sub).nodep.name;" (assignment_expression "ppcVar1 = &(symbol->sub).nodep.name" identifier = (pointer_expression "&(symbol->sub).nodep.name" & (field_expression "(symbol->sub).nodep.name" (field_expression "(symbol->sub).nodep" (parenthesized_expression "(symbol->sub)" ( (field_expression "symbol->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "*ppcVar1 = *ppcVar1 + -1;" (assignment_expression "*ppcVar1 = *ppcVar1 + -1" (pointer_expression "*ppcVar1" * identifier) = (binary_expression "*ppcVar1 + -1" (pointer_expression "*ppcVar1" * identifier) + number_literal)) ;) (if_statement "if (*ppcVar1 == (char *)0x0) {\n      r_unref(symbol);\n    }" if (parenthesized_expression "(*ppcVar1 == (char *)0x0)" ( (binary_expression "*ppcVar1 == (char *)0x0" (pointer_expression "*ppcVar1" * identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      r_unref(symbol);\n    }" { (expression_statement "r_unref(symbol);" (call_expression "r_unref(symbol)" identifier (argument_list "(symbol)" ( identifier ))) ;) })) (expression_statement "set_loc("eval.c",0x5fa);" (call_expression "set_loc("eval.c",0x5fa)" identifier (argument_list "("eval.c",0x5fa)" ( (string_literal ""eval.c"" " string_content ") , number_literal ))) ;) (expression_statement "pcVar2 = array_vname(symbol_00);" (assignment_expression "pcVar2 = array_vname(symbol_00)" identifier = (call_expression "array_vname(symbol_00)" identifier (argument_list "(symbol_00)" ( identifier )))) ;) (expression_statement "pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier = (cast_expression "(char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier (argument_list "(0,"attempt to use array `%s\' in a scalar context",5)" ( number_literal , (string_literal ""attempt to use array `%s\' in a scalar context"" " string_content escape_sequence string_content ") , number_literal ))))) ;) (expression_statement "r_fatal(pcVar3,pcVar2);" (call_expression "r_fatal(pcVar3,pcVar2)" identifier (argument_list "(pcVar3,pcVar2)" ( identifier , identifier ))) ;) })) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (if_statement "if (symbol_00 != symbol) {\n    iVar4 = cmp_nodes(symbol_00,symbol,(_Bool)((byte)comparison_type ^ 1));\n  }" if (parenthesized_expression "(symbol_00 != symbol)" ( (binary_expression "symbol_00 != symbol" identifier != identifier) )) (compound_statement "{\n    iVar4 = cmp_nodes(symbol_00,symbol,(_Bool)((byte)comparison_type ^ 1));\n  }" { (expression_statement "iVar4 = cmp_nodes(symbol_00,symbol,(_Bool)((byte)comparison_type ^ 1));" (assignment_expression "iVar4 = cmp_nodes(symbol_00,symbol,(_Bool)((byte)comparison_type ^ 1))" identifier = (call_expression "cmp_nodes(symbol_00,symbol,(_Bool)((byte)comparison_type ^ 1))" identifier (argument_list "(symbol_00,symbol,(_Bool)((byte)comparison_type ^ 1))" ( identifier , identifier , (call_expression "(_Bool)((byte)comparison_type ^ 1)" (parenthesized_expression "(_Bool)" ( identifier )) (argument_list "((byte)comparison_type ^ 1)" ( (binary_expression "(byte)comparison_type ^ 1" (cast_expression "(byte)comparison_type" ( (type_descriptor "byte" type_identifier) ) identifier) ^ number_literal) ))) )))) ;) })) (expression_statement "ppcVar1 = &(symbol_00->sub).nodep.name;" (assignment_expression "ppcVar1 = &(symbol_00->sub).nodep.name" identifier = (pointer_expression "&(symbol_00->sub).nodep.name" & (field_expression "(symbol_00->sub).nodep.name" (field_expression "(symbol_00->sub).nodep" (parenthesized_expression "(symbol_00->sub)" ( (field_expression "symbol_00->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "*ppcVar1 = *ppcVar1 + -1;" (assignment_expression "*ppcVar1 = *ppcVar1 + -1" (pointer_expression "*ppcVar1" * identifier) = (binary_expression "*ppcVar1 + -1" (pointer_expression "*ppcVar1" * identifier) + number_literal)) ;) (if_statement "if (*ppcVar1 == (char *)0x0) {\n    r_unref(symbol_00);\n  }" if (parenthesized_expression "(*ppcVar1 == (char *)0x0)" ( (binary_expression "*ppcVar1 == (char *)0x0" (pointer_expression "*ppcVar1" * identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    r_unref(symbol_00);\n  }" { (expression_statement "r_unref(symbol_00);" (call_expression "r_unref(symbol_00)" identifier (argument_list "(symbol_00)" ( identifier ))) ;) })) (expression_statement "ppcVar1 = &(symbol->sub).nodep.name;" (assignment_expression "ppcVar1 = &(symbol->sub).nodep.name" identifier = (pointer_expression "&(symbol->sub).nodep.name" & (field_expression "(symbol->sub).nodep.name" (field_expression "(symbol->sub).nodep" (parenthesized_expression "(symbol->sub)" ( (field_expression "symbol->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier))) ;) (expression_statement "*ppcVar1 = *ppcVar1 + -1;" (assignment_expression "*ppcVar1 = *ppcVar1 + -1" (pointer_expression "*ppcVar1" * identifier) = (binary_expression "*ppcVar1 + -1" (pointer_expression "*ppcVar1" * identifier) + number_literal)) ;) (if_statement "if (*ppcVar1 == (char *)0x0) {\n    r_unref(symbol);\n  }" if (parenthesized_expression "(*ppcVar1 == (char *)0x0)" ( (binary_expression "*ppcVar1 == (char *)0x0" (pointer_expression "*ppcVar1" * identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    r_unref(symbol);\n  }" { (expression_statement "r_unref(symbol);" (call_expression "r_unref(symbol)" identifier (argument_list "(symbol)" ( identifier ))) ;) })) (return_statement "return iVar4;" return identifier ;) })))
(translation_unit "undefined4 FUN_00047bd0(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar2 = *DAT_000c13c8;\n  DAT_000c13c8 = DAT_000c13c8 + -1;\n  if (*(int *)(iVar2 + 0x28) == 5) {\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  iVar3 = *DAT_000c13c8;\n  if (*(int *)(iVar3 + 0x28) == 5) {\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  uVar5 = 0;\n  if (iVar3 != iVar2) {\n    uVar5 = FUN_00047660();\n  }\n  piVar1 = (int *)(iVar3 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar3);\n  }\n  piVar1 = (int *)(iVar2 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar2);\n  }\n  return uVar5;\n}\n\n" (function_definition "undefined4 FUN_00047bd0(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar2 = *DAT_000c13c8;\n  DAT_000c13c8 = DAT_000c13c8 + -1;\n  if (*(int *)(iVar2 + 0x28) == 5) {\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  iVar3 = *DAT_000c13c8;\n  if (*(int *)(iVar3 + 0x28) == 5) {\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  uVar5 = 0;\n  if (iVar3 != iVar2) {\n    uVar5 = FUN_00047660();\n  }\n  piVar1 = (int *)(iVar3 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar3);\n  }\n  piVar1 = (int *)(iVar2 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar2);\n  }\n  return uVar5;\n}" type_identifier (function_declarator "FUN_00047bd0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar2 = *DAT_000c13c8;\n  DAT_000c13c8 = DAT_000c13c8 + -1;\n  if (*(int *)(iVar2 + 0x28) == 5) {\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  iVar3 = *DAT_000c13c8;\n  if (*(int *)(iVar3 + 0x28) == 5) {\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  uVar5 = 0;\n  if (iVar3 != iVar2) {\n    uVar5 = FUN_00047660();\n  }\n  piVar1 = (int *)(iVar3 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar3);\n  }\n  piVar1 = (int *)(iVar2 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar2);\n  }\n  return uVar5;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (expression_statement "iVar2 = *DAT_000c13c8;" (assignment_expression "iVar2 = *DAT_000c13c8" identifier = (pointer_expression "*DAT_000c13c8" * identifier)) ;) (expression_statement "DAT_000c13c8 = DAT_000c13c8 + -1;" (assignment_expression "DAT_000c13c8 = DAT_000c13c8 + -1" identifier = (binary_expression "DAT_000c13c8 + -1" identifier + number_literal)) ;) (if_statement "if (*(int *)(iVar2 + 0x28) == 5) {\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" if (parenthesized_expression "(*(int *)(iVar2 + 0x28) == 5)" ( (binary_expression "*(int *)(iVar2 + 0x28) == 5" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" { (expression_statement "FUN_000660d0("awk.h",0x72b);" (call_expression "FUN_000660d0("awk.h",0x72b)" identifier (argument_list "("awk.h",0x72b)" ( (string_literal ""awk.h"" " string_content ") , number_literal ))) ;) (expression_statement "uVar5 = FUN_00018020(iVar2);" (assignment_expression "uVar5 = FUN_00018020(iVar2)" identifier = (call_expression "FUN_00018020(iVar2)" identifier (argument_list "(iVar2)" ( identifier )))) ;) (expression_statement "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier = (call_expression "dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier (argument_list "(0,"attempt to use array `%s\' in a scalar context",5)" ( number_literal , (string_literal ""attempt to use array `%s\' in a scalar context"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00066470(uVar4,uVar5);" (call_expression "FUN_00066470(uVar4,uVar5)" identifier (argument_list "(uVar4,uVar5)" ( identifier , identifier ))) ;) })) (expression_statement "iVar3 = *DAT_000c13c8;" (assignment_expression "iVar3 = *DAT_000c13c8" identifier = (pointer_expression "*DAT_000c13c8" * identifier)) ;) (if_statement "if (*(int *)(iVar3 + 0x28) == 5) {\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" if (parenthesized_expression "(*(int *)(iVar3 + 0x28) == 5)" ( (binary_expression "*(int *)(iVar3 + 0x28) == 5" (pointer_expression "*(int *)(iVar3 + 0x28)" * (cast_expression "(int *)(iVar3 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x28)" ( (binary_expression "iVar3 + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" { (expression_statement "piVar1 = (int *)(iVar2 + 0x10);" (assignment_expression "piVar1 = (int *)(iVar2 + 0x10)" identifier = (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) ;) (expression_statement "*piVar1 = *piVar1 + -1;" (assignment_expression "*piVar1 = *piVar1 + -1" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + -1" (pointer_expression "*piVar1" * identifier) + number_literal)) ;) (if_statement "if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (compound_statement "{\n      FUN_000668b0(iVar2);\n    }" { (expression_statement "FUN_000668b0(iVar2);" (call_expression "FUN_000668b0(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (expression_statement "FUN_000660d0("eval.c",0x5fa);" (call_expression "FUN_000660d0("eval.c",0x5fa)" identifier (argument_list "("eval.c",0x5fa)" ( (string_literal ""eval.c"" " string_content ") , number_literal ))) ;) (expression_statement "uVar5 = FUN_00018020(iVar3);" (assignment_expression "uVar5 = FUN_00018020(iVar3)" identifier = (call_expression "FUN_00018020(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier = (call_expression "dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" identifier (argument_list "(0,"attempt to use array `%s\' in a scalar context",5)" ( number_literal , (string_literal ""attempt to use array `%s\' in a scalar context"" " string_content escape_sequence string_content ") , number_literal )))) ;) (expression_statement "FUN_00066470(uVar4,uVar5);" (call_expression "FUN_00066470(uVar4,uVar5)" identifier (argument_list "(uVar4,uVar5)" ( identifier , identifier ))) ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (if_statement "if (iVar3 != iVar2) {\n    uVar5 = FUN_00047660();\n  }" if (parenthesized_expression "(iVar3 != iVar2)" ( (binary_expression "iVar3 != iVar2" identifier != identifier) )) (compound_statement "{\n    uVar5 = FUN_00047660();\n  }" { (expression_statement "uVar5 = FUN_00047660();" (assignment_expression "uVar5 = FUN_00047660()" identifier = (call_expression "FUN_00047660()" identifier (argument_list "()" ( )))) ;) })) (expression_statement "piVar1 = (int *)(iVar3 + 0x10);" (assignment_expression "piVar1 = (int *)(iVar3 + 0x10)" identifier = (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) ;) (expression_statement "*piVar1 = *piVar1 + -1;" (assignment_expression "*piVar1 = *piVar1 + -1" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + -1" (pointer_expression "*piVar1" * identifier) + number_literal)) ;) (if_statement "if (*piVar1 == 0) {\n    FUN_000668b0(iVar3);\n  }" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (compound_statement "{\n    FUN_000668b0(iVar3);\n  }" { (expression_statement "FUN_000668b0(iVar3);" (call_expression "FUN_000668b0(iVar3)" identifier (argument_list "(iVar3)" ( identifier ))) ;) })) (expression_statement "piVar1 = (int *)(iVar2 + 0x10);" (assignment_expression "piVar1 = (int *)(iVar2 + 0x10)" identifier = (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) ;) (expression_statement "*piVar1 = *piVar1 + -1;" (assignment_expression "*piVar1 = *piVar1 + -1" (pointer_expression "*piVar1" * identifier) = (binary_expression "*piVar1 + -1" (pointer_expression "*piVar1" * identifier) + number_literal)) ;) (if_statement "if (*piVar1 == 0) {\n    FUN_000668b0(iVar2);\n  }" if (parenthesized_expression "(*piVar1 == 0)" ( (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" * identifier) == number_literal) )) (compound_statement "{\n    FUN_000668b0(iVar2);\n  }" { (expression_statement "FUN_000668b0(iVar2);" (call_expression "FUN_000668b0(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) })) (return_statement "return uVar5;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == 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 ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( 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)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined4 FUN_00047bd0(void)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar2 = *DAT_000c13c8;\n  DAT_000c13c8 = DAT_000c13c8 + -1;\n  if (*(int *)(iVar2 + 0x28) == 5) {\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  iVar3 = *DAT_000c13c8;\n  if (*(int *)(iVar3 + 0x28) == 5) {\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  uVar5 = 0;\n  if (iVar3 != iVar2) {\n    uVar5 = FUN_00047660();\n  }\n  piVar1 = (int *)(iVar3 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar3);\n  }\n  piVar1 = (int *)(iVar2 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar2);\n  }\n  return uVar5;\n}" (type_identifier "undefined4") (function_declarator "FUN_00047bd0(void)" (identifier "FUN_00047bd0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  \n  iVar2 = *DAT_000c13c8;\n  DAT_000c13c8 = DAT_000c13c8 + -1;\n  if (*(int *)(iVar2 + 0x28) == 5) {\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  iVar3 = *DAT_000c13c8;\n  if (*(int *)(iVar3 + 0x28) == 5) {\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }\n  uVar5 = 0;\n  if (iVar3 != iVar2) {\n    uVar5 = FUN_00047660();\n  }\n  piVar1 = (int *)(iVar3 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar3);\n  }\n  piVar1 = (int *)(iVar2 + 0x10);\n  *piVar1 = *piVar1 + -1;\n  if (*piVar1 == 0) {\n    FUN_000668b0(iVar2);\n  }\n  return uVar5;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (expression_statement "iVar2 = *DAT_000c13c8;" (assignment_expression "iVar2 = *DAT_000c13c8" (identifier "iVar2") (= "=") (pointer_expression "*DAT_000c13c8" (* "*") (identifier "DAT_000c13c8"))) (; ";")) (expression_statement "DAT_000c13c8 = DAT_000c13c8 + -1;" (assignment_expression "DAT_000c13c8 = DAT_000c13c8 + -1" (identifier "DAT_000c13c8") (= "=") (binary_expression "DAT_000c13c8 + -1" (identifier "DAT_000c13c8") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x28) == 5) {\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x28) == 5)" (( "(") (binary_expression "*(int *)(iVar2 + 0x28) == 5" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n    FUN_000660d0("awk.h",0x72b);\n    uVar5 = FUN_00018020(iVar2);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" ({ "{") (expression_statement "FUN_000660d0("awk.h",0x72b);" (call_expression "FUN_000660d0("awk.h",0x72b)" (identifier "FUN_000660d0") (argument_list "("awk.h",0x72b)" (( "(") (string_literal ""awk.h"" (" """) (string_content "awk.h") (" """)) (, ",") (number_literal "0x72b") () ")"))) (; ";")) (expression_statement "uVar5 = FUN_00018020(iVar2);" (assignment_expression "uVar5 = FUN_00018020(iVar2)" (identifier "uVar5") (= "=") (call_expression "FUN_00018020(iVar2)" (identifier "FUN_00018020") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" (identifier "dcgettext") (argument_list "(0,"attempt to use array `%s\' in a scalar context",5)" (( "(") (number_literal "0") (, ",") (string_literal ""attempt to use array `%s\' in a scalar context"" (" """) (string_content "attempt to use array `%s") (escape_sequence "\'") (string_content " in a scalar context") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00066470(uVar4,uVar5);" (call_expression "FUN_00066470(uVar4,uVar5)" (identifier "FUN_00066470") (argument_list "(uVar4,uVar5)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = *DAT_000c13c8;" (assignment_expression "iVar3 = *DAT_000c13c8" (identifier "iVar3") (= "=") (pointer_expression "*DAT_000c13c8" (* "*") (identifier "DAT_000c13c8"))) (; ";")) (if_statement "if (*(int *)(iVar3 + 0x28) == 5) {\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar3 + 0x28) == 5)" (( "(") (binary_expression "*(int *)(iVar3 + 0x28) == 5" (pointer_expression "*(int *)(iVar3 + 0x28)" (* "*") (cast_expression "(int *)(iVar3 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x28)" (( "(") (binary_expression "iVar3 + 0x28" (identifier "iVar3") (+ "+") (number_literal "0x28")) () ")")))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n    piVar1 = (int *)(iVar2 + 0x10);\n    *piVar1 = *piVar1 + -1;\n    if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }\n    FUN_000660d0("eval.c",0x5fa);\n    uVar5 = FUN_00018020(iVar3);\n    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n    FUN_00066470(uVar4,uVar5);\n  }" ({ "{") (expression_statement "piVar1 = (int *)(iVar2 + 0x10);" (assignment_expression "piVar1 = (int *)(iVar2 + 0x10)" (identifier "piVar1") (= "=") (cast_expression "(int *)(iVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*piVar1 = *piVar1 + -1;" (assignment_expression "*piVar1 = *piVar1 + -1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (binary_expression "*piVar1 + -1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar1 == 0) {\n      FUN_000668b0(iVar2);\n    }" (if "if") (parenthesized_expression "(*piVar1 == 0)" (( "(") (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000668b0(iVar2);\n    }" ({ "{") (expression_statement "FUN_000668b0(iVar2);" (call_expression "FUN_000668b0(iVar2)" (identifier "FUN_000668b0") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000660d0("eval.c",0x5fa);" (call_expression "FUN_000660d0("eval.c",0x5fa)" (identifier "FUN_000660d0") (argument_list "("eval.c",0x5fa)" (( "(") (string_literal ""eval.c"" (" """) (string_content "eval.c") (" """)) (, ",") (number_literal "0x5fa") () ")"))) (; ";")) (expression_statement "uVar5 = FUN_00018020(iVar3);" (assignment_expression "uVar5 = FUN_00018020(iVar3)" (identifier "uVar5") (= "=") (call_expression "FUN_00018020(iVar3)" (identifier "FUN_00018020") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" (identifier "dcgettext") (argument_list "(0,"attempt to use array `%s\' in a scalar context",5)" (( "(") (number_literal "0") (, ",") (string_literal ""attempt to use array `%s\' in a scalar context"" (" """) (string_content "attempt to use array `%s") (escape_sequence "\'") (string_content " in a scalar context") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00066470(uVar4,uVar5);" (call_expression "FUN_00066470(uVar4,uVar5)" (identifier "FUN_00066470") (argument_list "(uVar4,uVar5)" (( "(") (identifier "uVar4") (, ",") (identifier "uVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar3 != iVar2) {\n    uVar5 = FUN_00047660();\n  }" (if "if") (parenthesized_expression "(iVar3 != iVar2)" (( "(") (binary_expression "iVar3 != iVar2" (identifier "iVar3") (!= "!=") (identifier "iVar2")) () ")")) (compound_statement "{\n    uVar5 = FUN_00047660();\n  }" ({ "{") (expression_statement "uVar5 = FUN_00047660();" (assignment_expression "uVar5 = FUN_00047660()" (identifier "uVar5") (= "=") (call_expression "FUN_00047660()" (identifier "FUN_00047660") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (expression_statement "piVar1 = (int *)(iVar3 + 0x10);" (assignment_expression "piVar1 = (int *)(iVar3 + 0x10)" (identifier "piVar1") (= "=") (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")) () ")")))) (; ";")) (expression_statement "*piVar1 = *piVar1 + -1;" (assignment_expression "*piVar1 = *piVar1 + -1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (binary_expression "*piVar1 + -1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar1 == 0) {\n    FUN_000668b0(iVar3);\n  }" (if "if") (parenthesized_expression "(*piVar1 == 0)" (( "(") (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_000668b0(iVar3);\n  }" ({ "{") (expression_statement "FUN_000668b0(iVar3);" (call_expression "FUN_000668b0(iVar3)" (identifier "FUN_000668b0") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = (int *)(iVar2 + 0x10);" (assignment_expression "piVar1 = (int *)(iVar2 + 0x10)" (identifier "piVar1") (= "=") (cast_expression "(int *)(iVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*piVar1 = *piVar1 + -1;" (assignment_expression "*piVar1 = *piVar1 + -1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (= "=") (binary_expression "*piVar1 + -1" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar1 == 0) {\n    FUN_000668b0(iVar2);\n  }" (if "if") (parenthesized_expression "(*piVar1 == 0)" (( "(") (binary_expression "*piVar1 == 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_000668b0(iVar2);\n  }" ({ "{") (expression_statement "FUN_000668b0(iVar2);" (call_expression "FUN_000668b0(iVar2)" (identifier "FUN_000668b0") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (} "}"))) (return_statement "return uVar5;" (return "return") (identifier "uVar5") (; ";")) (} "}")))

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

int __regparm3 function_1(type_1 comparison_type)

{
  char **ppcVar1;
  type_2 *var_9;
  type_2 *var_8;
  char *pcVar2;
  char *pcVar3;
  int iVar4;
  
  var_9 = var_1->rptr;
  var_1 = var_1 + -1;
  if (var_9->type == var_2) {
    var_3("awk.h",0x72b);
    pcVar2 = var_4(var_9);
    pcVar3 = (char *)var_5(0,"attempt to use array `%s\' in a scalar context",5);
    var_6(pcVar3,pcVar2);
  }
  var_8 = var_1->rptr;
  if (var_8->type == var_2) {
    ppcVar1 = &(var_9->sub).nodep.name;
    *ppcVar1 = *ppcVar1 + -1;
    if (*ppcVar1 == (char *)0x0) {
      var_7(var_9);
    }
    var_3("eval.c",0x5fa);
    pcVar2 = var_4(var_8);
    pcVar3 = (char *)var_5(0,"attempt to use array `%s\' in a scalar context",5);
    var_6(pcVar3,pcVar2);
  }
  iVar4 = 0;
  if (var_8 != var_9) {
    iVar4 = var_10(var_8,var_9,(_Bool)((type_3)comparison_type ^ 1));
  }
  ppcVar1 = &(var_8->sub).nodep.name;
  *ppcVar1 = *ppcVar1 + -1;
  if (*ppcVar1 == (char *)0x0) {
    var_7(var_8);
  }
  ppcVar1 = &(var_9->sub).nodep.name;
  *ppcVar1 = *ppcVar1 + -1;
  if (*ppcVar1 == (char *)0x0) {
    var_7(var_9);
  }
  return iVar4;
}


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

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

undefined4 MASKED(void)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  
  iVar2 = *DAT_000c13c8;
  DAT_000c13c8 = DAT_000c13c8 + -1;
  if (*(int *)(iVar2 + 0x28) == 5) {
    FUN_000660d0("awk.h",0x72b);
    uVar5 = FUN_00018020(iVar2);
    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);
    FUN_00066470(uVar4,uVar5);
  }
  iVar3 = *DAT_000c13c8;
  if (*(int *)(iVar3 + 0x28) == 5) {
    piVar1 = (int *)(iVar2 + 0x10);
    *piVar1 = *piVar1 + -1;
    if (*piVar1 == 0) {
      FUN_000668b0(iVar2);
    }
    FUN_000660d0("eval.c",0x5fa);
    uVar5 = FUN_00018020(iVar3);
    uVar4 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);
    FUN_00066470(uVar4,uVar5);
  }
  uVar5 = 0;
  if (iVar3 != iVar2) {
    uVar5 = FUN_00047660();
  }
  piVar1 = (int *)(iVar3 + 0x10);
  *piVar1 = *piVar1 + -1;
  if (*piVar1 == 0) {
    FUN_000668b0(iVar3);
  }
  piVar1 = (int *)(iVar2 + 0x10);
  *piVar1 = *piVar1 + -1;
  if (*piVar1 == 0) {
    FUN_000668b0(iVar2);
  }
  return uVar5;
}

