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

NODE * do_adump(int nargs)

{
  char **ppcVar1;
  afunc_t p_Var2;
  NODETYPE NVar3;
  NODE *pNVar4;
  char *pcVar5;
  char *mesg;
  anon_union_4_4_7583dc62_for_l aVar6;
  
  aVar6.lptr = (exp_node *)0x0;
  pNVar4 = stack_ptr->rptr;
  stack_ptr = stack_ptr + -1;
  NVar3 = pNVar4->type;
  if (nargs == 2) {
    if (NVar3 == Node_var_array) {
      set_loc("awk.h",0x72b);
      pcVar5 = array_vname(pNVar4);
      mesg = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);
                    /* WARNING: Subroutine does not return */
      r_fatal(mesg,pcVar5);
    }
    if ((pNVar4->flags & 8) == 0) {
      pNVar4 = (*str2number)(pNVar4);
    }
    aVar6.ll = (wchar_t)ROUND((pNVar4->sub).val.fltnum);
    ppcVar1 = &(pNVar4->sub).nodep.name;
    *ppcVar1 = *ppcVar1 + -1;
    if (*ppcVar1 == (char *)0x0) {
      r_unref(pNVar4);
      pNVar4 = stack_ptr->rptr;
      stack_ptr = stack_ptr + -1;
      NVar3 = pNVar4->type;
    }
    else {
      pNVar4 = stack_ptr->rptr;
      stack_ptr = stack_ptr + -1;
      NVar3 = pNVar4->type;
    }
  }
  if (NVar3 != Node_var_array) {
    if (NVar3 == Node_param_list) {
      pNVar4 = *(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4);
      NVar3 = pNVar4->type;
      if (NVar3 == Node_array_ref) {
        pNVar4 = *(NODE **)&pNVar4->sub;
        NVar3 = pNVar4->type;
      }
      if (NVar3 != Node_var_new) {
        if (NVar3 != Node_var_array) goto LAB_0001c28b;
        goto LAB_0001c210;
      }
    }
    else if (NVar3 != Node_var_new) {
LAB_0001c28b:
      set_loc("array.c",0x30f);
      pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5);
                    /* WARNING: Subroutine does not return */
      r_fatal(pcVar5,"adump");
    }
    (pNVar4->sub).nodep.rn = (exp_node *)0x0;
    pNVar4->type = Node_var_array;
    *(undefined4 *)((int)&pNVar4->sub + 4) = 0;
    (pNVar4->sub).nodep.cnt = 0;
    (pNVar4->sub).nodep.l.lp = &null_array_func;
    (pNVar4->sub).nodep.reflags = 0;
    (pNVar4->sub).nodep.reserved = 0;
    pNVar4->flags = 0;
    (pNVar4->sub).val.slen = 0;
  }
LAB_0001c210:
  do_adump::ndump.type = Node_dump_array;
  do_adump::ndump.sub.val.slen = 0;
  p_Var2 = ((pNVar4->sub).nodep.l.lp)->dump;
  do_adump::ndump.sub.nodep.l = aVar6;
  if (p_Var2 != (afunc_t)0x0) {
    (*p_Var2)(pNVar4,&do_adump::ndump);
  }
  pNVar4 = (*make_number)(0.0);
  return pNVar4;
}



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

void FUN_0001c180(int param_1)

{
  double *pdVar1;
  int iVar2;
  undefined4 uVar3;
  double *pdVar4;
  undefined4 uVar5;
  int iVar6;
  
  iVar6 = 0;
  pdVar4 = (double *)*DAT_000df3c8;
  DAT_000df3c8 = DAT_000df3c8 + -1;
  iVar2 = *(int *)(pdVar4 + 5);
  if (param_1 == 2) {
    if (iVar2 == 5) {
      FUN_00074330("awk.h",0x72b);
      uVar3 = FUN_0001a590(pdVar4);
      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);
      FUN_00074d10(uVar5,uVar3);
    }
    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {
      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);
    }
    iVar6 = (int)ROUND(*pdVar4);
    pdVar1 = pdVar4 + 2;
    *(int *)pdVar1 = *(int *)pdVar1 + -1;
    if (*(int *)pdVar1 == 0) {
      FUN_00075360(pdVar4);
      pdVar4 = (double *)*DAT_000df3c8;
      DAT_000df3c8 = DAT_000df3c8 + -1;
      iVar2 = *(int *)(pdVar4 + 5);
    }
    else {
      pdVar4 = (double *)*DAT_000df3c8;
      DAT_000df3c8 = DAT_000df3c8 + -1;
      iVar2 = *(int *)(pdVar4 + 5);
    }
  }
  if (iVar2 == 5) goto LAB_0001c210;
  if (iVar2 == 7) {
    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);
    iVar2 = *(int *)(pdVar4 + 5);
    if (iVar2 == 0xb) {
      pdVar4 = *(double **)pdVar4;
      iVar2 = *(int *)(pdVar4 + 5);
    }
    if (iVar2 != 6) {
      if (iVar2 == 5) goto LAB_0001c210;
      goto LAB_0001c28b;
    }
  }
  else if (iVar2 != 6) {
LAB_0001c28b:
    FUN_00074330("array.c",0x30f);
    uVar3 = dcgettext(0,"%s: first argument is not an array",5);
    FUN_00074d10(uVar3,"adump");
    goto LAB_0001c210;
  }
  *(undefined4 *)(pdVar4 + 3) = 0;
  *(undefined4 *)(pdVar4 + 5) = 5;
  *(undefined4 *)((int)pdVar4 + 4) = 0;
  *(undefined4 *)((int)pdVar4 + 0x1c) = 0;
  *(undefined **)pdVar4 = &DAT_000db4e0;
  *(undefined4 *)(pdVar4 + 4) = 0;
  *(undefined4 *)((int)pdVar4 + 0x14) = 0;
  *(undefined4 *)((int)pdVar4 + 0x2c) = 0;
  *(undefined4 *)((int)pdVar4 + 0xc) = 0;
LAB_0001c210:
  DAT_000ddb68 = 0xe;
  DAT_000ddb4c = 0;
  DAT_000ddb40 = iVar6;
  if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {
    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);
  }
  (*(code *)PTR_FUN_000dd94c)(0,0);
  return;
}


PUSH EBP
PUSH EDI
XOR EBP,EBP
PUSH ESI
PUSH EBX
CALL 0x00016f80
ADD EBX,0xc0b59
SUB ESP,0x1c
LEA EDI,[EBX + 0x26e4]
CMP dword ptr [ESP + 0x30],0x2
MOV EAX,dword ptr [EDI]
MOV ESI,dword ptr [EAX]
LEA EDX,[EAX + -0x4]
MOV EAX,dword ptr [ESI + 0x28]
JZ 0x0001c2d0
CMP EAX,0x5
MOV dword ptr [EDI],EDX
JZ 0x0001c210
CMP EAX,0x7
JZ 0x0001c260
CMP EAX,0x6
JNZ 0x0001c28b
LEA EAX,[EBX + 0xffffe7fc]
MOV dword ptr [ESI + 0x18],0x0
MOV dword ptr [ESI + 0x28],0x5
MOV dword ptr [ESI + 0x4],0x0
MOV dword ptr [ESI + 0x1c],0x0
MOV dword ptr [ESI],EAX
MOV dword ptr [ESI + 0x20],0x0
MOV dword ptr [ESI + 0x14],0x0
MOV dword ptr [ESI + 0x2c],0x0
MOV dword ptr [ESI + 0xc],0x0
NOP
LEA ESI,[ESI]
MOV dword ptr [EBX + 0xe5c],EBP
MOV EAX,dword ptr [ESI]
MOV dword ptr [EBX + 0xe84],0xe
MOV dword ptr [EBX + 0xe68],0x0
MOV EAX,dword ptr [EAX + 0x24]
TEST EAX,EAX
JZ 0x0001c243
LEA EDX,[EBX + 0xe5c]
SUB ESP,0x8
PUSH EDX
PUSH ESI
CALL EAX
ADD ESP,0x10
SUB ESP,0x8
LEA EAX,[EBX + 0xc68]
PUSH 0x0
PUSH 0x0
CALL dword ptr [EAX]
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0x5ca8]
MOV EDX,dword ptr [ESI]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x4]
MOV ESI,dword ptr [EAX + EDX*0x4]
MOV EAX,dword ptr [ESI + 0x28]
CMP EAX,0xb
JNZ 0x0001c27d
MOV ESI,dword ptr [ESI]
MOV EAX,dword ptr [ESI + 0x28]
CMP EAX,0x6
JZ 0x0001c1c8
CMP EAX,0x5
JZ 0x0001c210
LEA EAX,[EBX + 0xfffd3552]
SUB ESP,0x8
PUSH 0x30f
PUSH EAX
CALL 0x00074330
LEA EAX,[EBX + 0xfffc4a38]
ADD ESP,0xc
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013f40
POP EDX
LEA EDX,[EBX + 0xfffc47ba]
POP ECX
PUSH EDX
PUSH EAX
CALL 0x00074d10
ADD ESP,0x10
JMP 0x0001c210
CMP EAX,0x5
MOV dword ptr [EDI],EDX
JZ 0x0001c350
TEST byte ptr [ESI + 0x2c],0x8
JNZ 0x0001c2ee
SUB ESP,0xc
LEA EAX,[EBX + 0xc64]
PUSH ESI
CALL dword ptr [EAX]
ADD ESP,0x10
MOV ESI,EAX
FLD qword ptr [ESI]
FNSTCW word ptr [ESP + 0xe]
MOVZX EAX,word ptr [ESP + 0xe]
OR AH,0xc
MOV word ptr [ESP + 0xc],AX
FLDCW word ptr [ESP + 0xc]
FISTP dword ptr [ESP + 0x8]
FLDCW word ptr [ESP + 0xe]
MOV EBP,dword ptr [ESP + 0x8]
SUB dword ptr [ESI + 0x10],0x1
JZ 0x0001c330
MOV EAX,dword ptr [EDI]
MOV ESI,dword ptr [EAX]
LEA EDX,[EAX + -0x4]
MOV EAX,dword ptr [ESI + 0x28]
JMP 0x0001c1af
SUB ESP,0xc
PUSH ESI
CALL 0x00075360
MOV EAX,dword ptr [EDI]
ADD ESP,0x10
MOV ESI,dword ptr [EAX]
LEA EDX,[EAX + -0x4]
MOV EAX,dword ptr [ESI + 0x28]
JMP 0x0001c1af
LEA EAX,[EBX + 0xfffc4704]
SUB ESP,0x8
PUSH 0x72b
PUSH EAX
CALL 0x00074330
MOV dword ptr [ESP],ESI
CALL 0x0001a590
MOV EBP,EAX
LEA EAX,[EBX + 0xfffc492c]
ADD ESP,0xc
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00013f40
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x00074d10
ADD ESP,0x10
JMP 0x0001c2d7
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0001c180(int param_1)\n\n{\n  double *pdVar1;\n  int iVar2;\n  undefined4 uVar3;\n  double *pdVar4;\n  undefined4 uVar5;\n  int iVar6;\n  \n  iVar6 = 0;\n  pdVar4 = (double *)*DAT_000df3c8;\n  DAT_000df3c8 = DAT_000df3c8 + -1;\n  iVar2 = *(int *)(pdVar4 + 5);\n  if (param_1 == 2) {\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }\n  if (iVar2 == 5) goto LAB_0001c210;\n  if (iVar2 == 7) {\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }\n  else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }\n  *(undefined4 *)(pdVar4 + 3) = 0;\n  *(undefined4 *)(pdVar4 + 5) = 5;\n  *(undefined4 *)((int)pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x1c) = 0;\n  *(undefined **)pdVar4 = &DAT_000db4e0;\n  *(undefined4 *)(pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x14) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x2c) = 0;\n  *(undefined4 *)((int)pdVar4 + 0xc) = 0;\nLAB_0001c210:\n  DAT_000ddb68 = 0xe;\n  DAT_000ddb4c = 0;\n  DAT_000ddb40 = iVar6;\n  if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }\n  (*(code *)PTR_FUN_000dd94c)(0,0);\n  return;\n}\n\n" comment (function_definition "void FUN_0001c180(int param_1)\n\n{\n  double *pdVar1;\n  int iVar2;\n  undefined4 uVar3;\n  double *pdVar4;\n  undefined4 uVar5;\n  int iVar6;\n  \n  iVar6 = 0;\n  pdVar4 = (double *)*DAT_000df3c8;\n  DAT_000df3c8 = DAT_000df3c8 + -1;\n  iVar2 = *(int *)(pdVar4 + 5);\n  if (param_1 == 2) {\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }\n  if (iVar2 == 5) goto LAB_0001c210;\n  if (iVar2 == 7) {\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }\n  else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }\n  *(undefined4 *)(pdVar4 + 3) = 0;\n  *(undefined4 *)(pdVar4 + 5) = 5;\n  *(undefined4 *)((int)pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x1c) = 0;\n  *(undefined **)pdVar4 = &DAT_000db4e0;\n  *(undefined4 *)(pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x14) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x2c) = 0;\n  *(undefined4 *)((int)pdVar4 + 0xc) = 0;\nLAB_0001c210:\n  DAT_000ddb68 = 0xe;\n  DAT_000ddb4c = 0;\n  DAT_000ddb40 = iVar6;\n  if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }\n  (*(code *)PTR_FUN_000dd94c)(0,0);\n  return;\n}" primitive_type (function_declarator "FUN_0001c180(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  double *pdVar1;\n  int iVar2;\n  undefined4 uVar3;\n  double *pdVar4;\n  undefined4 uVar5;\n  int iVar6;\n  \n  iVar6 = 0;\n  pdVar4 = (double *)*DAT_000df3c8;\n  DAT_000df3c8 = DAT_000df3c8 + -1;\n  iVar2 = *(int *)(pdVar4 + 5);\n  if (param_1 == 2) {\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }\n  if (iVar2 == 5) goto LAB_0001c210;\n  if (iVar2 == 7) {\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }\n  else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }\n  *(undefined4 *)(pdVar4 + 3) = 0;\n  *(undefined4 *)(pdVar4 + 5) = 5;\n  *(undefined4 *)((int)pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x1c) = 0;\n  *(undefined **)pdVar4 = &DAT_000db4e0;\n  *(undefined4 *)(pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x14) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x2c) = 0;\n  *(undefined4 *)((int)pdVar4 + 0xc) = 0;\nLAB_0001c210:\n  DAT_000ddb68 = 0xe;\n  DAT_000ddb4c = 0;\n  DAT_000ddb40 = iVar6;\n  if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }\n  (*(code *)PTR_FUN_000dd94c)(0,0);\n  return;\n}" { (declaration "double *pdVar1;" primitive_type (pointer_declarator "*pdVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "double *pdVar4;" primitive_type (pointer_declarator "*pdVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "pdVar4 = (double *)*DAT_000df3c8;" (assignment_expression "pdVar4 = (double *)*DAT_000df3c8" identifier = (cast_expression "(double *)*DAT_000df3c8" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000df3c8" * identifier))) ;) (expression_statement "DAT_000df3c8 = DAT_000df3c8 + -1;" (assignment_expression "DAT_000df3c8 = DAT_000df3c8 + -1" identifier = (binary_expression "DAT_000df3c8 + -1" identifier + number_literal)) ;) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" identifier = (pointer_expression "*(int *)(pdVar4 + 5)" * (cast_expression "(int *)(pdVar4 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 2) {\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }" if (parenthesized_expression "(param_1 == 2)" ( (binary_expression "param_1 == 2" identifier == number_literal) )) (compound_statement "{\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }" { (if_statement "if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }" if (parenthesized_expression "(iVar2 == 5)" ( (binary_expression "iVar2 == 5" identifier == number_literal) )) (compound_statement "{\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }" { (expression_statement "FUN_00074330("awk.h",0x72b);" (call_expression "FUN_00074330("awk.h",0x72b)" identifier (argument_list "("awk.h",0x72b)" ( (string_literal ""awk.h"" " string_content ") , number_literal ))) ;) (expression_statement "uVar3 = FUN_0001a590(pdVar4);" (assignment_expression "uVar3 = FUN_0001a590(pdVar4)" identifier = (call_expression "FUN_0001a590(pdVar4)" identifier (argument_list "(pdVar4)" ( identifier )))) ;) (expression_statement "uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "uVar5 = 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_00074d10(uVar5,uVar3);" (call_expression "FUN_00074d10(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) })) (if_statement "if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }" if (parenthesized_expression "((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0)" ( (binary_expression "(*(byte *)((int)pdVar4 + 0x2c) & 8) == 0" (parenthesized_expression "(*(byte *)((int)pdVar4 + 0x2c) & 8)" ( (binary_expression "*(byte *)((int)pdVar4 + 0x2c) & 8" (pointer_expression "*(byte *)((int)pdVar4 + 0x2c)" * (cast_expression "(byte *)((int)pdVar4 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 0x2c)" ( (binary_expression "(int)pdVar4 + 0x2c" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }" { (expression_statement "pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);" (assignment_expression "pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4)" identifier = (cast_expression "(double *)(*(code *)PTR_FUN_000dd948)(pdVar4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_000dd948)(pdVar4)" (parenthesized_expression "(*(code *)PTR_FUN_000dd948)" ( (pointer_expression "*(code *)PTR_FUN_000dd948" * (cast_expression "(code *)PTR_FUN_000dd948" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pdVar4)" ( identifier ))))) ;) })) (expression_statement "iVar6 = (int)ROUND(*pdVar4);" (assignment_expression "iVar6 = (int)ROUND(*pdVar4)" identifier = (cast_expression "(int)ROUND(*pdVar4)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(*pdVar4)" identifier (argument_list "(*pdVar4)" ( (pointer_expression "*pdVar4" * identifier) ))))) ;) (expression_statement "pdVar1 = pdVar4 + 2;" (assignment_expression "pdVar1 = pdVar4 + 2" identifier = (binary_expression "pdVar4 + 2" identifier + number_literal)) ;) (expression_statement "*(int *)pdVar1 = *(int *)pdVar1 + -1;" (assignment_expression "*(int *)pdVar1 = *(int *)pdVar1 + -1" (pointer_expression "*(int *)pdVar1" * (cast_expression "(int *)pdVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(int *)pdVar1 + -1" (pointer_expression "*(int *)pdVar1" * (cast_expression "(int *)pdVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (if_statement "if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" if (parenthesized_expression "(*(int *)pdVar1 == 0)" ( (binary_expression "*(int *)pdVar1 == 0" (pointer_expression "*(int *)pdVar1" * (cast_expression "(int *)pdVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" { (expression_statement "FUN_00075360(pdVar4);" (call_expression "FUN_00075360(pdVar4)" identifier (argument_list "(pdVar4)" ( identifier ))) ;) (expression_statement "pdVar4 = (double *)*DAT_000df3c8;" (assignment_expression "pdVar4 = (double *)*DAT_000df3c8" identifier = (cast_expression "(double *)*DAT_000df3c8" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000df3c8" * identifier))) ;) (expression_statement "DAT_000df3c8 = DAT_000df3c8 + -1;" (assignment_expression "DAT_000df3c8 = DAT_000df3c8 + -1" identifier = (binary_expression "DAT_000df3c8 + -1" identifier + number_literal)) ;) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" identifier = (pointer_expression "*(int *)(pdVar4 + 5)" * (cast_expression "(int *)(pdVar4 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" else (compound_statement "{\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" { (expression_statement "pdVar4 = (double *)*DAT_000df3c8;" (assignment_expression "pdVar4 = (double *)*DAT_000df3c8" identifier = (cast_expression "(double *)*DAT_000df3c8" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000df3c8" * identifier))) ;) (expression_statement "DAT_000df3c8 = DAT_000df3c8 + -1;" (assignment_expression "DAT_000df3c8 = DAT_000df3c8 + -1" identifier = (binary_expression "DAT_000df3c8 + -1" identifier + number_literal)) ;) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" identifier = (pointer_expression "*(int *)(pdVar4 + 5)" * (cast_expression "(int *)(pdVar4 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) ))))) ;) }))) })) (if_statement "if (iVar2 == 5) goto LAB_0001c210;" if (parenthesized_expression "(iVar2 == 5)" ( (binary_expression "iVar2 == 5" identifier == number_literal) )) (goto_statement "goto LAB_0001c210;" goto statement_identifier ;)) (if_statement "if (iVar2 == 7) {\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }\n  else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" if (parenthesized_expression "(iVar2 == 7)" ( (binary_expression "iVar2 == 7" identifier == number_literal) )) (compound_statement "{\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }" { (expression_statement "pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);" (assignment_expression "pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" identifier = (pointer_expression "*(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" * (cast_expression "(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" ( (binary_expression "*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4" (pointer_expression "*(int *)(DAT_000e298c + 4)" * (cast_expression "(int *)(DAT_000e298c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000e298c + 4)" ( (binary_expression "DAT_000e298c + 4" identifier + number_literal) )))) + (binary_expression "*(int *)pdVar4 * 4" (pointer_expression "*(int *)pdVar4" * (cast_expression "(int *)pdVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal)) ))))) ;) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" identifier = (pointer_expression "*(int *)(pdVar4 + 5)" * (cast_expression "(int *)(pdVar4 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" if (parenthesized_expression "(iVar2 == 0xb)" ( (binary_expression "iVar2 == 0xb" identifier == number_literal) )) (compound_statement "{\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" { (expression_statement "pdVar4 = *(double **)pdVar4;" (assignment_expression "pdVar4 = *(double **)pdVar4" identifier = (pointer_expression "*(double **)pdVar4" * (cast_expression "(double **)pdVar4" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" identifier = (pointer_expression "*(int *)(pdVar4 + 5)" * (cast_expression "(int *)(pdVar4 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) ))))) ;) })) (if_statement "if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }" if (parenthesized_expression "(iVar2 != 6)" ( (binary_expression "iVar2 != 6" identifier != number_literal) )) (compound_statement "{\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }" { (if_statement "if (iVar2 == 5) goto LAB_0001c210;" if (parenthesized_expression "(iVar2 == 5)" ( (binary_expression "iVar2 == 5" identifier == number_literal) )) (goto_statement "goto LAB_0001c210;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c28b;" goto statement_identifier ;) })) }) (else_clause "else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" else (if_statement "if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" if (parenthesized_expression "(iVar2 != 6)" ( (binary_expression "iVar2 != 6" identifier != number_literal) )) (compound_statement "{\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" { (labeled_statement "LAB_0001c28b:\n    FUN_00074330("array.c",0x30f);" statement_identifier : (expression_statement "FUN_00074330("array.c",0x30f);" (call_expression "FUN_00074330("array.c",0x30f)" identifier (argument_list "("array.c",0x30f)" ( (string_literal ""array.c"" " string_content ") , number_literal ))) ;)) (expression_statement "uVar3 = dcgettext(0,"%s: first argument is not an array",5);" (assignment_expression "uVar3 = dcgettext(0,"%s: first argument is not an array",5)" identifier = (call_expression "dcgettext(0,"%s: first argument is not an array",5)" identifier (argument_list "(0,"%s: first argument is not an array",5)" ( number_literal , (string_literal ""%s: first argument is not an array"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00074d10(uVar3,"adump");" (call_expression "FUN_00074d10(uVar3,"adump")" identifier (argument_list "(uVar3,"adump")" ( identifier , (string_literal ""adump"" " string_content ") ))) ;) (goto_statement "goto LAB_0001c210;" goto statement_identifier ;) })))) (expression_statement "*(undefined4 *)(pdVar4 + 3) = 0;" (assignment_expression "*(undefined4 *)(pdVar4 + 3) = 0" (pointer_expression "*(undefined4 *)(pdVar4 + 3)" * (cast_expression "(undefined4 *)(pdVar4 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 3)" ( (binary_expression "pdVar4 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(pdVar4 + 5) = 5;" (assignment_expression "*(undefined4 *)(pdVar4 + 5) = 5" (pointer_expression "*(undefined4 *)(pdVar4 + 5)" * (cast_expression "(undefined4 *)(pdVar4 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pdVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 4) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 4)" * (cast_expression "(undefined4 *)((int)pdVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 4)" ( (binary_expression "(int)pdVar4 + 4" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pdVar4 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0x1c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0x1c)" * (cast_expression "(undefined4 *)((int)pdVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 0x1c)" ( (binary_expression "(int)pdVar4 + 0x1c" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)pdVar4 = &DAT_000db4e0;" (assignment_expression "*(undefined **)pdVar4 = &DAT_000db4e0" (pointer_expression "*(undefined **)pdVar4" * (cast_expression "(undefined **)pdVar4" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (pointer_expression "&DAT_000db4e0" & identifier)) ;) (expression_statement "*(undefined4 *)(pdVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)(pdVar4 + 4) = 0" (pointer_expression "*(undefined4 *)(pdVar4 + 4)" * (cast_expression "(undefined4 *)(pdVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 4)" ( (binary_expression "pdVar4 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pdVar4 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 0x14)" ( (binary_expression "(int)pdVar4 + 0x14" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pdVar4 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdVar4 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 0x2c)" ( (binary_expression "(int)pdVar4 + 0x2c" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pdVar4 + 0xc) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0xc) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 0xc)" ( (binary_expression "(int)pdVar4 + 0xc" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0001c210:\n  DAT_000ddb68 = 0xe;" statement_identifier : (expression_statement "DAT_000ddb68 = 0xe;" (assignment_expression "DAT_000ddb68 = 0xe" identifier = number_literal) ;)) (expression_statement "DAT_000ddb4c = 0;" (assignment_expression "DAT_000ddb4c = 0" identifier = number_literal) ;) (expression_statement "DAT_000ddb40 = iVar6;" (assignment_expression "DAT_000ddb40 = iVar6" identifier = identifier) ;) (if_statement "if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }" if (parenthesized_expression "(*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0)" ( (binary_expression "*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0" (pointer_expression "*(code **)(*(int *)pdVar4 + 0x24)" * (cast_expression "(code **)(*(int *)pdVar4 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pdVar4 + 0x24)" ( (binary_expression "*(int *)pdVar4 + 0x24" (pointer_expression "*(int *)pdVar4" * (cast_expression "(int *)pdVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }" { (expression_statement "(**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);" (call_expression "(**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40)" (parenthesized_expression "(**(code **)(*(int *)pdVar4 + 0x24))" ( (pointer_expression "**(code **)(*(int *)pdVar4 + 0x24)" * (pointer_expression "*(code **)(*(int *)pdVar4 + 0x24)" * (cast_expression "(code **)(*(int *)pdVar4 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pdVar4 + 0x24)" ( (binary_expression "*(int *)pdVar4 + 0x24" (pointer_expression "*(int *)pdVar4" * (cast_expression "(int *)pdVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pdVar4,&DAT_000ddb40)" ( identifier , (pointer_expression "&DAT_000ddb40" & identifier) ))) ;) })) (expression_statement "(*(code *)PTR_FUN_000dd94c)(0,0);" (call_expression "(*(code *)PTR_FUN_000dd94c)(0,0)" (parenthesized_expression "(*(code *)PTR_FUN_000dd94c)" ( (pointer_expression "*(code *)PTR_FUN_000dd94c" * (cast_expression "(code *)PTR_FUN_000dd94c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0)" ( number_literal , 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 */\n\nNODE * do_adump(int nargs)\n\n{\n  char **ppcVar1;\n  afunc_t p_Var2;\n  NODETYPE NVar3;\n  NODE *pNVar4;\n  char *pcVar5;\n  char *mesg;\n  anon_union_4_4_7583dc62_for_l aVar6;\n  \n  aVar6.lptr = (exp_node *)0x0;\n  pNVar4 = stack_ptr->rptr;\n  stack_ptr = stack_ptr + -1;\n  NVar3 = pNVar4->type;\n  if (nargs == 2) {\n    if (NVar3 == Node_var_array) {\n      set_loc("awk.h",0x72b);\n      pcVar5 = array_vname(pNVar4);\n      mesg = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,pcVar5);\n    }\n    if ((pNVar4->flags & 8) == 0) {\n      pNVar4 = (*str2number)(pNVar4);\n    }\n    aVar6.ll = (wchar_t)ROUND((pNVar4->sub).val.fltnum);\n    ppcVar1 = &(pNVar4->sub).nodep.name;\n    *ppcVar1 = *ppcVar1 + -1;\n    if (*ppcVar1 == (char *)0x0) {\n      r_unref(pNVar4);\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }\n    else {\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }\n  }\n  if (NVar3 != Node_var_array) {\n    if (NVar3 == Node_param_list) {\n      pNVar4 = *(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4);\n      NVar3 = pNVar4->type;\n      if (NVar3 == Node_array_ref) {\n        pNVar4 = *(NODE **)&pNVar4->sub;\n        NVar3 = pNVar4->type;\n      }\n      if (NVar3 != Node_var_new) {\n        if (NVar3 != Node_var_array) goto LAB_0001c28b;\n        goto LAB_0001c210;\n      }\n    }\n    else if (NVar3 != Node_var_new) {\nLAB_0001c28b:\n      set_loc("array.c",0x30f);\n      pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(pcVar5,"adump");\n    }\n    (pNVar4->sub).nodep.rn = (exp_node *)0x0;\n    pNVar4->type = Node_var_array;\n    *(undefined4 *)((int)&pNVar4->sub + 4) = 0;\n    (pNVar4->sub).nodep.cnt = 0;\n    (pNVar4->sub).nodep.l.lp = &null_array_func;\n    (pNVar4->sub).nodep.reflags = 0;\n    (pNVar4->sub).nodep.reserved = 0;\n    pNVar4->flags = 0;\n    (pNVar4->sub).val.slen = 0;\n  }\nLAB_0001c210:\n  do_adump::ndump.type = Node_dump_array;\n  do_adump::ndump.sub.val.slen = 0;\n  p_Var2 = ((pNVar4->sub).nodep.l.lp)->dump;\n  do_adump::ndump.sub.nodep.l = aVar6;\n  if (p_Var2 != (afunc_t)0x0) {\n    (*p_Var2)(pNVar4,&do_adump::ndump);\n  }\n  pNVar4 = (*make_number)(0.0);\n  return pNVar4;\n}\n\n" comment comment (function_definition "NODE * do_adump(int nargs)\n\n{\n  char **ppcVar1;\n  afunc_t p_Var2;\n  NODETYPE NVar3;\n  NODE *pNVar4;\n  char *pcVar5;\n  char *mesg;\n  anon_union_4_4_7583dc62_for_l aVar6;\n  \n  aVar6.lptr = (exp_node *)0x0;\n  pNVar4 = stack_ptr->rptr;\n  stack_ptr = stack_ptr + -1;\n  NVar3 = pNVar4->type;\n  if (nargs == 2) {\n    if (NVar3 == Node_var_array) {\n      set_loc("awk.h",0x72b);\n      pcVar5 = array_vname(pNVar4);\n      mesg = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,pcVar5);\n    }\n    if ((pNVar4->flags & 8) == 0) {\n      pNVar4 = (*str2number)(pNVar4);\n    }\n    aVar6.ll = (wchar_t)ROUND((pNVar4->sub).val.fltnum);\n    ppcVar1 = &(pNVar4->sub).nodep.name;\n    *ppcVar1 = *ppcVar1 + -1;\n    if (*ppcVar1 == (char *)0x0) {\n      r_unref(pNVar4);\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }\n    else {\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }\n  }\n  if (NVar3 != Node_var_array) {\n    if (NVar3 == Node_param_list) {\n      pNVar4 = *(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4);\n      NVar3 = pNVar4->type;\n      if (NVar3 == Node_array_ref) {\n        pNVar4 = *(NODE **)&pNVar4->sub;\n        NVar3 = pNVar4->type;\n      }\n      if (NVar3 != Node_var_new) {\n        if (NVar3 != Node_var_array) goto LAB_0001c28b;\n        goto LAB_0001c210;\n      }\n    }\n    else if (NVar3 != Node_var_new) {\nLAB_0001c28b:\n      set_loc("array.c",0x30f);\n      pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(pcVar5,"adump");\n    }\n    (pNVar4->sub).nodep.rn = (exp_node *)0x0;\n    pNVar4->type = Node_var_array;\n    *(undefined4 *)((int)&pNVar4->sub + 4) = 0;\n    (pNVar4->sub).nodep.cnt = 0;\n    (pNVar4->sub).nodep.l.lp = &null_array_func;\n    (pNVar4->sub).nodep.reflags = 0;\n    (pNVar4->sub).nodep.reserved = 0;\n    pNVar4->flags = 0;\n    (pNVar4->sub).val.slen = 0;\n  }\nLAB_0001c210:\n  do_adump::ndump.type = Node_dump_array;\n  do_adump::ndump.sub.val.slen = 0;\n  p_Var2 = ((pNVar4->sub).nodep.l.lp)->dump;\n  do_adump::ndump.sub.nodep.l = aVar6;\n  if (p_Var2 != (afunc_t)0x0) {\n    (*p_Var2)(pNVar4,&do_adump::ndump);\n  }\n  pNVar4 = (*make_number)(0.0);\n  return pNVar4;\n}" type_identifier (pointer_declarator "* do_adump(int nargs)" * (function_declarator "do_adump(int nargs)" identifier (parameter_list "(int nargs)" ( (parameter_declaration "int nargs" primitive_type identifier) )))) (compound_statement "{\n  char **ppcVar1;\n  afunc_t p_Var2;\n  NODETYPE NVar3;\n  NODE *pNVar4;\n  char *pcVar5;\n  char *mesg;\n  anon_union_4_4_7583dc62_for_l aVar6;\n  \n  aVar6.lptr = (exp_node *)0x0;\n  pNVar4 = stack_ptr->rptr;\n  stack_ptr = stack_ptr + -1;\n  NVar3 = pNVar4->type;\n  if (nargs == 2) {\n    if (NVar3 == Node_var_array) {\n      set_loc("awk.h",0x72b);\n      pcVar5 = array_vname(pNVar4);\n      mesg = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,pcVar5);\n    }\n    if ((pNVar4->flags & 8) == 0) {\n      pNVar4 = (*str2number)(pNVar4);\n    }\n    aVar6.ll = (wchar_t)ROUND((pNVar4->sub).val.fltnum);\n    ppcVar1 = &(pNVar4->sub).nodep.name;\n    *ppcVar1 = *ppcVar1 + -1;\n    if (*ppcVar1 == (char *)0x0) {\n      r_unref(pNVar4);\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }\n    else {\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }\n  }\n  if (NVar3 != Node_var_array) {\n    if (NVar3 == Node_param_list) {\n      pNVar4 = *(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4);\n      NVar3 = pNVar4->type;\n      if (NVar3 == Node_array_ref) {\n        pNVar4 = *(NODE **)&pNVar4->sub;\n        NVar3 = pNVar4->type;\n      }\n      if (NVar3 != Node_var_new) {\n        if (NVar3 != Node_var_array) goto LAB_0001c28b;\n        goto LAB_0001c210;\n      }\n    }\n    else if (NVar3 != Node_var_new) {\nLAB_0001c28b:\n      set_loc("array.c",0x30f);\n      pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(pcVar5,"adump");\n    }\n    (pNVar4->sub).nodep.rn = (exp_node *)0x0;\n    pNVar4->type = Node_var_array;\n    *(undefined4 *)((int)&pNVar4->sub + 4) = 0;\n    (pNVar4->sub).nodep.cnt = 0;\n    (pNVar4->sub).nodep.l.lp = &null_array_func;\n    (pNVar4->sub).nodep.reflags = 0;\n    (pNVar4->sub).nodep.reserved = 0;\n    pNVar4->flags = 0;\n    (pNVar4->sub).val.slen = 0;\n  }\nLAB_0001c210:\n  do_adump::ndump.type = Node_dump_array;\n  do_adump::ndump.sub.val.slen = 0;\n  p_Var2 = ((pNVar4->sub).nodep.l.lp)->dump;\n  do_adump::ndump.sub.nodep.l = aVar6;\n  if (p_Var2 != (afunc_t)0x0) {\n    (*p_Var2)(pNVar4,&do_adump::ndump);\n  }\n  pNVar4 = (*make_number)(0.0);\n  return pNVar4;\n}" { (declaration "char **ppcVar1;" primitive_type (pointer_declarator "**ppcVar1" * (pointer_declarator "*ppcVar1" * identifier)) ;) (declaration "afunc_t p_Var2;" type_identifier identifier ;) (declaration "NODETYPE NVar3;" type_identifier identifier ;) (declaration "NODE *pNVar4;" type_identifier (pointer_declarator "*pNVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *mesg;" primitive_type (pointer_declarator "*mesg" * identifier) ;) (declaration "anon_union_4_4_7583dc62_for_l aVar6;" type_identifier identifier ;) (expression_statement "aVar6.lptr = (exp_node *)0x0;" (assignment_expression "aVar6.lptr = (exp_node *)0x0" (field_expression "aVar6.lptr" identifier . field_identifier) = (cast_expression "(exp_node *)0x0" ( (type_descriptor "exp_node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pNVar4 = stack_ptr->rptr;" (assignment_expression "pNVar4 = 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)) ;) (expression_statement "NVar3 = pNVar4->type;" (assignment_expression "NVar3 = pNVar4->type" identifier = (field_expression "pNVar4->type" identifier -> field_identifier)) ;) (if_statement "if (nargs == 2) {\n    if (NVar3 == Node_var_array) {\n      set_loc("awk.h",0x72b);\n      pcVar5 = array_vname(pNVar4);\n      mesg = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,pcVar5);\n    }\n    if ((pNVar4->flags & 8) == 0) {\n      pNVar4 = (*str2number)(pNVar4);\n    }\n    aVar6.ll = (wchar_t)ROUND((pNVar4->sub).val.fltnum);\n    ppcVar1 = &(pNVar4->sub).nodep.name;\n    *ppcVar1 = *ppcVar1 + -1;\n    if (*ppcVar1 == (char *)0x0) {\n      r_unref(pNVar4);\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }\n    else {\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }\n  }" if (parenthesized_expression "(nargs == 2)" ( (binary_expression "nargs == 2" identifier == number_literal) )) (compound_statement "{\n    if (NVar3 == Node_var_array) {\n      set_loc("awk.h",0x72b);\n      pcVar5 = array_vname(pNVar4);\n      mesg = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,pcVar5);\n    }\n    if ((pNVar4->flags & 8) == 0) {\n      pNVar4 = (*str2number)(pNVar4);\n    }\n    aVar6.ll = (wchar_t)ROUND((pNVar4->sub).val.fltnum);\n    ppcVar1 = &(pNVar4->sub).nodep.name;\n    *ppcVar1 = *ppcVar1 + -1;\n    if (*ppcVar1 == (char *)0x0) {\n      r_unref(pNVar4);\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }\n    else {\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }\n  }" { (if_statement "if (NVar3 == Node_var_array) {\n      set_loc("awk.h",0x72b);\n      pcVar5 = array_vname(pNVar4);\n      mesg = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,pcVar5);\n    }" if (parenthesized_expression "(NVar3 == Node_var_array)" ( (binary_expression "NVar3 == Node_var_array" identifier == identifier) )) (compound_statement "{\n      set_loc("awk.h",0x72b);\n      pcVar5 = array_vname(pNVar4);\n      mesg = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(mesg,pcVar5);\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 "pcVar5 = array_vname(pNVar4);" (assignment_expression "pcVar5 = array_vname(pNVar4)" identifier = (call_expression "array_vname(pNVar4)" identifier (argument_list "(pNVar4)" ( identifier )))) ;) (expression_statement "mesg = (char *)dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "mesg = (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 ))))) ;) comment (expression_statement "r_fatal(mesg,pcVar5);" (call_expression "r_fatal(mesg,pcVar5)" identifier (argument_list "(mesg,pcVar5)" ( identifier , identifier ))) ;) })) (if_statement "if ((pNVar4->flags & 8) == 0) {\n      pNVar4 = (*str2number)(pNVar4);\n    }" if (parenthesized_expression "((pNVar4->flags & 8) == 0)" ( (binary_expression "(pNVar4->flags & 8) == 0" (parenthesized_expression "(pNVar4->flags & 8)" ( (binary_expression "pNVar4->flags & 8" (field_expression "pNVar4->flags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      pNVar4 = (*str2number)(pNVar4);\n    }" { (expression_statement "pNVar4 = (*str2number)(pNVar4);" (assignment_expression "pNVar4 = (*str2number)(pNVar4)" identifier = (call_expression "(*str2number)(pNVar4)" (parenthesized_expression "(*str2number)" ( (pointer_expression "*str2number" * identifier) )) (argument_list "(pNVar4)" ( identifier )))) ;) })) (expression_statement "aVar6.ll = (wchar_t)ROUND((pNVar4->sub).val.fltnum);" (assignment_expression "aVar6.ll = (wchar_t)ROUND((pNVar4->sub).val.fltnum)" (field_expression "aVar6.ll" identifier . field_identifier) = (cast_expression "(wchar_t)ROUND((pNVar4->sub).val.fltnum)" ( (type_descriptor "wchar_t" type_identifier) ) (call_expression "ROUND((pNVar4->sub).val.fltnum)" identifier (argument_list "((pNVar4->sub).val.fltnum)" ( (field_expression "(pNVar4->sub).val.fltnum" (field_expression "(pNVar4->sub).val" (parenthesized_expression "(pNVar4->sub)" ( (field_expression "pNVar4->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))))) ;) (expression_statement "ppcVar1 = &(pNVar4->sub).nodep.name;" (assignment_expression "ppcVar1 = &(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 "*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(pNVar4);\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }\n    else {\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\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(pNVar4);\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }" { (expression_statement "r_unref(pNVar4);" (call_expression "r_unref(pNVar4)" identifier (argument_list "(pNVar4)" ( identifier ))) ;) (expression_statement "pNVar4 = stack_ptr->rptr;" (assignment_expression "pNVar4 = 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)) ;) (expression_statement "NVar3 = pNVar4->type;" (assignment_expression "NVar3 = pNVar4->type" identifier = (field_expression "pNVar4->type" identifier -> field_identifier)) ;) }) (else_clause "else {\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }" else (compound_statement "{\n      pNVar4 = stack_ptr->rptr;\n      stack_ptr = stack_ptr + -1;\n      NVar3 = pNVar4->type;\n    }" { (expression_statement "pNVar4 = stack_ptr->rptr;" (assignment_expression "pNVar4 = 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)) ;) (expression_statement "NVar3 = pNVar4->type;" (assignment_expression "NVar3 = pNVar4->type" identifier = (field_expression "pNVar4->type" identifier -> field_identifier)) ;) }))) })) (if_statement "if (NVar3 != Node_var_array) {\n    if (NVar3 == Node_param_list) {\n      pNVar4 = *(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4);\n      NVar3 = pNVar4->type;\n      if (NVar3 == Node_array_ref) {\n        pNVar4 = *(NODE **)&pNVar4->sub;\n        NVar3 = pNVar4->type;\n      }\n      if (NVar3 != Node_var_new) {\n        if (NVar3 != Node_var_array) goto LAB_0001c28b;\n        goto LAB_0001c210;\n      }\n    }\n    else if (NVar3 != Node_var_new) {\nLAB_0001c28b:\n      set_loc("array.c",0x30f);\n      pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(pcVar5,"adump");\n    }\n    (pNVar4->sub).nodep.rn = (exp_node *)0x0;\n    pNVar4->type = Node_var_array;\n    *(undefined4 *)((int)&pNVar4->sub + 4) = 0;\n    (pNVar4->sub).nodep.cnt = 0;\n    (pNVar4->sub).nodep.l.lp = &null_array_func;\n    (pNVar4->sub).nodep.reflags = 0;\n    (pNVar4->sub).nodep.reserved = 0;\n    pNVar4->flags = 0;\n    (pNVar4->sub).val.slen = 0;\n  }" if (parenthesized_expression "(NVar3 != Node_var_array)" ( (binary_expression "NVar3 != Node_var_array" identifier != identifier) )) (compound_statement "{\n    if (NVar3 == Node_param_list) {\n      pNVar4 = *(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4);\n      NVar3 = pNVar4->type;\n      if (NVar3 == Node_array_ref) {\n        pNVar4 = *(NODE **)&pNVar4->sub;\n        NVar3 = pNVar4->type;\n      }\n      if (NVar3 != Node_var_new) {\n        if (NVar3 != Node_var_array) goto LAB_0001c28b;\n        goto LAB_0001c210;\n      }\n    }\n    else if (NVar3 != Node_var_new) {\nLAB_0001c28b:\n      set_loc("array.c",0x30f);\n      pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(pcVar5,"adump");\n    }\n    (pNVar4->sub).nodep.rn = (exp_node *)0x0;\n    pNVar4->type = Node_var_array;\n    *(undefined4 *)((int)&pNVar4->sub + 4) = 0;\n    (pNVar4->sub).nodep.cnt = 0;\n    (pNVar4->sub).nodep.l.lp = &null_array_func;\n    (pNVar4->sub).nodep.reflags = 0;\n    (pNVar4->sub).nodep.reserved = 0;\n    pNVar4->flags = 0;\n    (pNVar4->sub).val.slen = 0;\n  }" { (if_statement "if (NVar3 == Node_param_list) {\n      pNVar4 = *(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4);\n      NVar3 = pNVar4->type;\n      if (NVar3 == Node_array_ref) {\n        pNVar4 = *(NODE **)&pNVar4->sub;\n        NVar3 = pNVar4->type;\n      }\n      if (NVar3 != Node_var_new) {\n        if (NVar3 != Node_var_array) goto LAB_0001c28b;\n        goto LAB_0001c210;\n      }\n    }\n    else if (NVar3 != Node_var_new) {\nLAB_0001c28b:\n      set_loc("array.c",0x30f);\n      pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(pcVar5,"adump");\n    }" if (parenthesized_expression "(NVar3 == Node_param_list)" ( (binary_expression "NVar3 == Node_param_list" identifier == identifier) )) (compound_statement "{\n      pNVar4 = *(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4);\n      NVar3 = pNVar4->type;\n      if (NVar3 == Node_array_ref) {\n        pNVar4 = *(NODE **)&pNVar4->sub;\n        NVar3 = pNVar4->type;\n      }\n      if (NVar3 != Node_var_new) {\n        if (NVar3 != Node_var_array) goto LAB_0001c28b;\n        goto LAB_0001c210;\n      }\n    }" { (expression_statement "pNVar4 = *(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4);" (assignment_expression "pNVar4 = *(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4)" identifier = (pointer_expression "*(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4)" * (cast_expression "(NODE **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4)" ( (type_descriptor "NODE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4)" ( (binary_expression "*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4" (pointer_expression "*(int *)((int)&frame_ptr->sub + 4)" * (cast_expression "(int *)((int)&frame_ptr->sub + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&frame_ptr->sub + 4)" ( (binary_expression "(int)&frame_ptr->sub + 4" (cast_expression "(int)&frame_ptr->sub" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&frame_ptr->sub" & (field_expression "frame_ptr->sub" identifier -> field_identifier))) + number_literal) )))) + (binary_expression "*(int *)&pNVar4->sub * 4" (pointer_expression "*(int *)&pNVar4->sub" * (cast_expression "(int *)&pNVar4->sub" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pNVar4->sub" & (field_expression "pNVar4->sub" identifier -> field_identifier)))) * number_literal)) ))))) ;) (expression_statement "NVar3 = pNVar4->type;" (assignment_expression "NVar3 = pNVar4->type" identifier = (field_expression "pNVar4->type" identifier -> field_identifier)) ;) (if_statement "if (NVar3 == Node_array_ref) {\n        pNVar4 = *(NODE **)&pNVar4->sub;\n        NVar3 = pNVar4->type;\n      }" if (parenthesized_expression "(NVar3 == Node_array_ref)" ( (binary_expression "NVar3 == Node_array_ref" identifier == identifier) )) (compound_statement "{\n        pNVar4 = *(NODE **)&pNVar4->sub;\n        NVar3 = pNVar4->type;\n      }" { (expression_statement "pNVar4 = *(NODE **)&pNVar4->sub;" (assignment_expression "pNVar4 = *(NODE **)&pNVar4->sub" identifier = (pointer_expression "*(NODE **)&pNVar4->sub" * (cast_expression "(NODE **)&pNVar4->sub" ( (type_descriptor "NODE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pNVar4->sub" & (field_expression "pNVar4->sub" identifier -> field_identifier))))) ;) (expression_statement "NVar3 = pNVar4->type;" (assignment_expression "NVar3 = pNVar4->type" identifier = (field_expression "pNVar4->type" identifier -> field_identifier)) ;) })) (if_statement "if (NVar3 != Node_var_new) {\n        if (NVar3 != Node_var_array) goto LAB_0001c28b;\n        goto LAB_0001c210;\n      }" if (parenthesized_expression "(NVar3 != Node_var_new)" ( (binary_expression "NVar3 != Node_var_new" identifier != identifier) )) (compound_statement "{\n        if (NVar3 != Node_var_array) goto LAB_0001c28b;\n        goto LAB_0001c210;\n      }" { (if_statement "if (NVar3 != Node_var_array) goto LAB_0001c28b;" if (parenthesized_expression "(NVar3 != Node_var_array)" ( (binary_expression "NVar3 != Node_var_array" identifier != identifier) )) (goto_statement "goto LAB_0001c28b;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c210;" goto statement_identifier ;) })) }) (else_clause "else if (NVar3 != Node_var_new) {\nLAB_0001c28b:\n      set_loc("array.c",0x30f);\n      pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(pcVar5,"adump");\n    }" else (if_statement "if (NVar3 != Node_var_new) {\nLAB_0001c28b:\n      set_loc("array.c",0x30f);\n      pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(pcVar5,"adump");\n    }" if (parenthesized_expression "(NVar3 != Node_var_new)" ( (binary_expression "NVar3 != Node_var_new" identifier != identifier) )) (compound_statement "{\nLAB_0001c28b:\n      set_loc("array.c",0x30f);\n      pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5);\n                    /* WARNING: Subroutine does not return */\n      r_fatal(pcVar5,"adump");\n    }" { (labeled_statement "LAB_0001c28b:\n      set_loc("array.c",0x30f);" statement_identifier : (expression_statement "set_loc("array.c",0x30f);" (call_expression "set_loc("array.c",0x30f)" identifier (argument_list "("array.c",0x30f)" ( (string_literal ""array.c"" " string_content ") , number_literal ))) ;)) (expression_statement "pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"%s: first argument is not an array",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s: first argument is not an array",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s: first argument is not an array",5)" identifier (argument_list "(0,"%s: first argument is not an array",5)" ( number_literal , (string_literal ""%s: first argument is not an array"" " string_content ") , number_literal ))))) ;) comment (expression_statement "r_fatal(pcVar5,"adump");" (call_expression "r_fatal(pcVar5,"adump")" identifier (argument_list "(pcVar5,"adump")" ( identifier , (string_literal ""adump"" " string_content ") ))) ;) })))) (expression_statement "(pNVar4->sub).nodep.rn = (exp_node *)0x0;" (assignment_expression "(pNVar4->sub).nodep.rn = (exp_node *)0x0" (field_expression "(pNVar4->sub).nodep.rn" (field_expression "(pNVar4->sub).nodep" (parenthesized_expression "(pNVar4->sub)" ( (field_expression "pNVar4->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = (cast_expression "(exp_node *)0x0" ( (type_descriptor "exp_node *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pNVar4->type = Node_var_array;" (assignment_expression "pNVar4->type = Node_var_array" (field_expression "pNVar4->type" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)((int)&pNVar4->sub + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&pNVar4->sub + 4) = 0" (pointer_expression "*(undefined4 *)((int)&pNVar4->sub + 4)" * (cast_expression "(undefined4 *)((int)&pNVar4->sub + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pNVar4->sub + 4)" ( (binary_expression "(int)&pNVar4->sub + 4" (cast_expression "(int)&pNVar4->sub" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pNVar4->sub" & (field_expression "pNVar4->sub" identifier -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "(pNVar4->sub).nodep.cnt = 0;" (assignment_expression "(pNVar4->sub).nodep.cnt = 0" (field_expression "(pNVar4->sub).nodep.cnt" (field_expression "(pNVar4->sub).nodep" (parenthesized_expression "(pNVar4->sub)" ( (field_expression "pNVar4->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar4->sub).nodep.l.lp = &null_array_func;" (assignment_expression "(pNVar4->sub).nodep.l.lp = &null_array_func" (field_expression "(pNVar4->sub).nodep.l.lp" (field_expression "(pNVar4->sub).nodep.l" (field_expression "(pNVar4->sub).nodep" (parenthesized_expression "(pNVar4->sub)" ( (field_expression "pNVar4->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&null_array_func" & identifier)) ;) (expression_statement "(pNVar4->sub).nodep.reflags = 0;" (assignment_expression "(pNVar4->sub).nodep.reflags = 0" (field_expression "(pNVar4->sub).nodep.reflags" (field_expression "(pNVar4->sub).nodep" (parenthesized_expression "(pNVar4->sub)" ( (field_expression "pNVar4->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "(pNVar4->sub).nodep.reserved = 0;" (assignment_expression "(pNVar4->sub).nodep.reserved = 0" (field_expression "(pNVar4->sub).nodep.reserved" (field_expression "(pNVar4->sub).nodep" (parenthesized_expression "(pNVar4->sub)" ( (field_expression "pNVar4->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) (expression_statement "pNVar4->flags = 0;" (assignment_expression "pNVar4->flags = 0" (field_expression "pNVar4->flags" identifier -> field_identifier) = number_literal) ;) (expression_statement "(pNVar4->sub).val.slen = 0;" (assignment_expression "(pNVar4->sub).val.slen = 0" (field_expression "(pNVar4->sub).val.slen" (field_expression "(pNVar4->sub).val" (parenthesized_expression "(pNVar4->sub)" ( (field_expression "pNVar4->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) = number_literal) ;) })) (labeled_statement "LAB_0001c210:\n  do_adump::ndump.type = Node_dump_array;" statement_identifier : (labeled_statement "do_adump::ndump.type = Node_dump_array;" statement_identifier : (ERROR ":" :) (expression_statement "ndump.type = Node_dump_array;" (assignment_expression "ndump.type = Node_dump_array" (field_expression "ndump.type" identifier . field_identifier) = identifier) ;))) (labeled_statement "do_adump::ndump.sub.val.slen = 0;" statement_identifier : (ERROR ":" :) (expression_statement "ndump.sub.val.slen = 0;" (assignment_expression "ndump.sub.val.slen = 0" (field_expression "ndump.sub.val.slen" (field_expression "ndump.sub.val" (field_expression "ndump.sub" identifier . field_identifier) . field_identifier) . field_identifier) = number_literal) ;)) (expression_statement "p_Var2 = ((pNVar4->sub).nodep.l.lp)->dump;" (assignment_expression "p_Var2 = ((pNVar4->sub).nodep.l.lp)->dump" identifier = (field_expression "((pNVar4->sub).nodep.l.lp)->dump" (parenthesized_expression "((pNVar4->sub).nodep.l.lp)" ( (field_expression "(pNVar4->sub).nodep.l.lp" (field_expression "(pNVar4->sub).nodep.l" (field_expression "(pNVar4->sub).nodep" (parenthesized_expression "(pNVar4->sub)" ( (field_expression "pNVar4->sub" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) )) -> field_identifier)) ;) (labeled_statement "do_adump::ndump.sub.nodep.l = aVar6;" statement_identifier : (ERROR ":" :) (expression_statement "ndump.sub.nodep.l = aVar6;" (assignment_expression "ndump.sub.nodep.l = aVar6" (field_expression "ndump.sub.nodep.l" (field_expression "ndump.sub.nodep" (field_expression "ndump.sub" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;)) (if_statement "if (p_Var2 != (afunc_t)0x0) {\n    (*p_Var2)(pNVar4,&do_adump::ndump);\n  }" if (parenthesized_expression "(p_Var2 != (afunc_t)0x0)" ( (binary_expression "p_Var2 != (afunc_t)0x0" identifier != (cast_expression "(afunc_t)0x0" ( (type_descriptor "afunc_t" type_identifier) ) number_literal)) )) (compound_statement "{\n    (*p_Var2)(pNVar4,&do_adump::ndump);\n  }" { (expression_statement "(*p_Var2)(pNVar4,&do_adump::ndump);" (call_expression "(*p_Var2)(pNVar4,&do_adump::ndump)" (parenthesized_expression "(*p_Var2)" ( (pointer_expression "*p_Var2" * identifier) )) (argument_list "(pNVar4,&do_adump::ndump)" ( identifier , (pointer_expression "&do_adump" & identifier) (ERROR "::ndump" : : identifier) ))) ;) })) (expression_statement "pNVar4 = (*make_number)(0.0);" (assignment_expression "pNVar4 = (*make_number)(0.0)" identifier = (call_expression "(*make_number)(0.0)" (parenthesized_expression "(*make_number)" ( (pointer_expression "*make_number" * identifier) )) (argument_list "(0.0)" ( number_literal )))) ;) (return_statement "return pNVar4;" return identifier ;) })))
(translation_unit "void FUN_0001c180(int param_1)\n\n{\n  double *pdVar1;\n  int iVar2;\n  undefined4 uVar3;\n  double *pdVar4;\n  undefined4 uVar5;\n  int iVar6;\n  \n  iVar6 = 0;\n  pdVar4 = (double *)*DAT_000df3c8;\n  DAT_000df3c8 = DAT_000df3c8 + -1;\n  iVar2 = *(int *)(pdVar4 + 5);\n  if (param_1 == 2) {\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }\n  if (iVar2 == 5) goto LAB_0001c210;\n  if (iVar2 == 7) {\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }\n  else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }\n  *(undefined4 *)(pdVar4 + 3) = 0;\n  *(undefined4 *)(pdVar4 + 5) = 5;\n  *(undefined4 *)((int)pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x1c) = 0;\n  *(undefined **)pdVar4 = &DAT_000db4e0;\n  *(undefined4 *)(pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x14) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x2c) = 0;\n  *(undefined4 *)((int)pdVar4 + 0xc) = 0;\nLAB_0001c210:\n  DAT_000ddb68 = 0xe;\n  DAT_000ddb4c = 0;\n  DAT_000ddb40 = iVar6;\n  if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }\n  (*(code *)PTR_FUN_000dd94c)(0,0);\n  return;\n}\n\n" (function_definition "void FUN_0001c180(int param_1)\n\n{\n  double *pdVar1;\n  int iVar2;\n  undefined4 uVar3;\n  double *pdVar4;\n  undefined4 uVar5;\n  int iVar6;\n  \n  iVar6 = 0;\n  pdVar4 = (double *)*DAT_000df3c8;\n  DAT_000df3c8 = DAT_000df3c8 + -1;\n  iVar2 = *(int *)(pdVar4 + 5);\n  if (param_1 == 2) {\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }\n  if (iVar2 == 5) goto LAB_0001c210;\n  if (iVar2 == 7) {\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }\n  else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }\n  *(undefined4 *)(pdVar4 + 3) = 0;\n  *(undefined4 *)(pdVar4 + 5) = 5;\n  *(undefined4 *)((int)pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x1c) = 0;\n  *(undefined **)pdVar4 = &DAT_000db4e0;\n  *(undefined4 *)(pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x14) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x2c) = 0;\n  *(undefined4 *)((int)pdVar4 + 0xc) = 0;\nLAB_0001c210:\n  DAT_000ddb68 = 0xe;\n  DAT_000ddb4c = 0;\n  DAT_000ddb40 = iVar6;\n  if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }\n  (*(code *)PTR_FUN_000dd94c)(0,0);\n  return;\n}" primitive_type (function_declarator "FUN_0001c180(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  double *pdVar1;\n  int iVar2;\n  undefined4 uVar3;\n  double *pdVar4;\n  undefined4 uVar5;\n  int iVar6;\n  \n  iVar6 = 0;\n  pdVar4 = (double *)*DAT_000df3c8;\n  DAT_000df3c8 = DAT_000df3c8 + -1;\n  iVar2 = *(int *)(pdVar4 + 5);\n  if (param_1 == 2) {\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }\n  if (iVar2 == 5) goto LAB_0001c210;\n  if (iVar2 == 7) {\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }\n  else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }\n  *(undefined4 *)(pdVar4 + 3) = 0;\n  *(undefined4 *)(pdVar4 + 5) = 5;\n  *(undefined4 *)((int)pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x1c) = 0;\n  *(undefined **)pdVar4 = &DAT_000db4e0;\n  *(undefined4 *)(pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x14) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x2c) = 0;\n  *(undefined4 *)((int)pdVar4 + 0xc) = 0;\nLAB_0001c210:\n  DAT_000ddb68 = 0xe;\n  DAT_000ddb4c = 0;\n  DAT_000ddb40 = iVar6;\n  if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }\n  (*(code *)PTR_FUN_000dd94c)(0,0);\n  return;\n}" { (declaration "double *pdVar1;" primitive_type (pointer_declarator "*pdVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "double *pdVar4;" primitive_type (pointer_declarator "*pdVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "pdVar4 = (double *)*DAT_000df3c8;" (assignment_expression "pdVar4 = (double *)*DAT_000df3c8" identifier = (cast_expression "(double *)*DAT_000df3c8" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000df3c8" * identifier))) ;) (expression_statement "DAT_000df3c8 = DAT_000df3c8 + -1;" (assignment_expression "DAT_000df3c8 = DAT_000df3c8 + -1" identifier = (binary_expression "DAT_000df3c8 + -1" identifier + number_literal)) ;) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" identifier = (pointer_expression "*(int *)(pdVar4 + 5)" * (cast_expression "(int *)(pdVar4 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) ))))) ;) (if_statement "if (param_1 == 2) {\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }" if (parenthesized_expression "(param_1 == 2)" ( (binary_expression "param_1 == 2" identifier == number_literal) )) (compound_statement "{\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }" { (if_statement "if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }" if (parenthesized_expression "(iVar2 == 5)" ( (binary_expression "iVar2 == 5" identifier == number_literal) )) (compound_statement "{\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }" { (expression_statement "FUN_00074330("awk.h",0x72b);" (call_expression "FUN_00074330("awk.h",0x72b)" identifier (argument_list "("awk.h",0x72b)" ( (string_literal ""awk.h"" " string_content ") , number_literal ))) ;) (expression_statement "uVar3 = FUN_0001a590(pdVar4);" (assignment_expression "uVar3 = FUN_0001a590(pdVar4)" identifier = (call_expression "FUN_0001a590(pdVar4)" identifier (argument_list "(pdVar4)" ( identifier )))) ;) (expression_statement "uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "uVar5 = 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_00074d10(uVar5,uVar3);" (call_expression "FUN_00074d10(uVar5,uVar3)" identifier (argument_list "(uVar5,uVar3)" ( identifier , identifier ))) ;) })) (if_statement "if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }" if (parenthesized_expression "((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0)" ( (binary_expression "(*(byte *)((int)pdVar4 + 0x2c) & 8) == 0" (parenthesized_expression "(*(byte *)((int)pdVar4 + 0x2c) & 8)" ( (binary_expression "*(byte *)((int)pdVar4 + 0x2c) & 8" (pointer_expression "*(byte *)((int)pdVar4 + 0x2c)" * (cast_expression "(byte *)((int)pdVar4 + 0x2c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 0x2c)" ( (binary_expression "(int)pdVar4 + 0x2c" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }" { (expression_statement "pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);" (assignment_expression "pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4)" identifier = (cast_expression "(double *)(*(code *)PTR_FUN_000dd948)(pdVar4)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_FUN_000dd948)(pdVar4)" (parenthesized_expression "(*(code *)PTR_FUN_000dd948)" ( (pointer_expression "*(code *)PTR_FUN_000dd948" * (cast_expression "(code *)PTR_FUN_000dd948" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pdVar4)" ( identifier ))))) ;) })) (expression_statement "iVar6 = (int)ROUND(*pdVar4);" (assignment_expression "iVar6 = (int)ROUND(*pdVar4)" identifier = (cast_expression "(int)ROUND(*pdVar4)" ( (type_descriptor "int" primitive_type) ) (call_expression "ROUND(*pdVar4)" identifier (argument_list "(*pdVar4)" ( (pointer_expression "*pdVar4" * identifier) ))))) ;) (expression_statement "pdVar1 = pdVar4 + 2;" (assignment_expression "pdVar1 = pdVar4 + 2" identifier = (binary_expression "pdVar4 + 2" identifier + number_literal)) ;) (expression_statement "*(int *)pdVar1 = *(int *)pdVar1 + -1;" (assignment_expression "*(int *)pdVar1 = *(int *)pdVar1 + -1" (pointer_expression "*(int *)pdVar1" * (cast_expression "(int *)pdVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (binary_expression "*(int *)pdVar1 + -1" (pointer_expression "*(int *)pdVar1" * (cast_expression "(int *)pdVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal)) ;) (if_statement "if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" if (parenthesized_expression "(*(int *)pdVar1 == 0)" ( (binary_expression "*(int *)pdVar1 == 0" (pointer_expression "*(int *)pdVar1" * (cast_expression "(int *)pdVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" { (expression_statement "FUN_00075360(pdVar4);" (call_expression "FUN_00075360(pdVar4)" identifier (argument_list "(pdVar4)" ( identifier ))) ;) (expression_statement "pdVar4 = (double *)*DAT_000df3c8;" (assignment_expression "pdVar4 = (double *)*DAT_000df3c8" identifier = (cast_expression "(double *)*DAT_000df3c8" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000df3c8" * identifier))) ;) (expression_statement "DAT_000df3c8 = DAT_000df3c8 + -1;" (assignment_expression "DAT_000df3c8 = DAT_000df3c8 + -1" identifier = (binary_expression "DAT_000df3c8 + -1" identifier + number_literal)) ;) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" identifier = (pointer_expression "*(int *)(pdVar4 + 5)" * (cast_expression "(int *)(pdVar4 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) ))))) ;) }) (else_clause "else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" else (compound_statement "{\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" { (expression_statement "pdVar4 = (double *)*DAT_000df3c8;" (assignment_expression "pdVar4 = (double *)*DAT_000df3c8" identifier = (cast_expression "(double *)*DAT_000df3c8" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*DAT_000df3c8" * identifier))) ;) (expression_statement "DAT_000df3c8 = DAT_000df3c8 + -1;" (assignment_expression "DAT_000df3c8 = DAT_000df3c8 + -1" identifier = (binary_expression "DAT_000df3c8 + -1" identifier + number_literal)) ;) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" identifier = (pointer_expression "*(int *)(pdVar4 + 5)" * (cast_expression "(int *)(pdVar4 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) ))))) ;) }))) })) (if_statement "if (iVar2 == 5) goto LAB_0001c210;" if (parenthesized_expression "(iVar2 == 5)" ( (binary_expression "iVar2 == 5" identifier == number_literal) )) (goto_statement "goto LAB_0001c210;" goto statement_identifier ;)) (if_statement "if (iVar2 == 7) {\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }\n  else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" if (parenthesized_expression "(iVar2 == 7)" ( (binary_expression "iVar2 == 7" identifier == number_literal) )) (compound_statement "{\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }" { (expression_statement "pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);" (assignment_expression "pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" identifier = (pointer_expression "*(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" * (cast_expression "(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" ( (binary_expression "*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4" (pointer_expression "*(int *)(DAT_000e298c + 4)" * (cast_expression "(int *)(DAT_000e298c + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_000e298c + 4)" ( (binary_expression "DAT_000e298c + 4" identifier + number_literal) )))) + (binary_expression "*(int *)pdVar4 * 4" (pointer_expression "*(int *)pdVar4" * (cast_expression "(int *)pdVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal)) ))))) ;) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" identifier = (pointer_expression "*(int *)(pdVar4 + 5)" * (cast_expression "(int *)(pdVar4 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) ))))) ;) (if_statement "if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" if (parenthesized_expression "(iVar2 == 0xb)" ( (binary_expression "iVar2 == 0xb" identifier == number_literal) )) (compound_statement "{\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" { (expression_statement "pdVar4 = *(double **)pdVar4;" (assignment_expression "pdVar4 = *(double **)pdVar4" identifier = (pointer_expression "*(double **)pdVar4" * (cast_expression "(double **)pdVar4" ( (type_descriptor "double **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" identifier = (pointer_expression "*(int *)(pdVar4 + 5)" * (cast_expression "(int *)(pdVar4 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) ))))) ;) })) (if_statement "if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }" if (parenthesized_expression "(iVar2 != 6)" ( (binary_expression "iVar2 != 6" identifier != number_literal) )) (compound_statement "{\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }" { (if_statement "if (iVar2 == 5) goto LAB_0001c210;" if (parenthesized_expression "(iVar2 == 5)" ( (binary_expression "iVar2 == 5" identifier == number_literal) )) (goto_statement "goto LAB_0001c210;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c28b;" goto statement_identifier ;) })) }) (else_clause "else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" else (if_statement "if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" if (parenthesized_expression "(iVar2 != 6)" ( (binary_expression "iVar2 != 6" identifier != number_literal) )) (compound_statement "{\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" { (labeled_statement "LAB_0001c28b:\n    FUN_00074330("array.c",0x30f);" statement_identifier : (expression_statement "FUN_00074330("array.c",0x30f);" (call_expression "FUN_00074330("array.c",0x30f)" identifier (argument_list "("array.c",0x30f)" ( (string_literal ""array.c"" " string_content ") , number_literal ))) ;)) (expression_statement "uVar3 = dcgettext(0,"%s: first argument is not an array",5);" (assignment_expression "uVar3 = dcgettext(0,"%s: first argument is not an array",5)" identifier = (call_expression "dcgettext(0,"%s: first argument is not an array",5)" identifier (argument_list "(0,"%s: first argument is not an array",5)" ( number_literal , (string_literal ""%s: first argument is not an array"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00074d10(uVar3,"adump");" (call_expression "FUN_00074d10(uVar3,"adump")" identifier (argument_list "(uVar3,"adump")" ( identifier , (string_literal ""adump"" " string_content ") ))) ;) (goto_statement "goto LAB_0001c210;" goto statement_identifier ;) })))) (expression_statement "*(undefined4 *)(pdVar4 + 3) = 0;" (assignment_expression "*(undefined4 *)(pdVar4 + 3) = 0" (pointer_expression "*(undefined4 *)(pdVar4 + 3)" * (cast_expression "(undefined4 *)(pdVar4 + 3)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 3)" ( (binary_expression "pdVar4 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(pdVar4 + 5) = 5;" (assignment_expression "*(undefined4 *)(pdVar4 + 5) = 5" (pointer_expression "*(undefined4 *)(pdVar4 + 5)" * (cast_expression "(undefined4 *)(pdVar4 + 5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 5)" ( (binary_expression "pdVar4 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pdVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 4) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 4)" * (cast_expression "(undefined4 *)((int)pdVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 4)" ( (binary_expression "(int)pdVar4 + 4" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pdVar4 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0x1c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0x1c)" * (cast_expression "(undefined4 *)((int)pdVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 0x1c)" ( (binary_expression "(int)pdVar4 + 0x1c" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined **)pdVar4 = &DAT_000db4e0;" (assignment_expression "*(undefined **)pdVar4 = &DAT_000db4e0" (pointer_expression "*(undefined **)pdVar4" * (cast_expression "(undefined **)pdVar4" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (pointer_expression "&DAT_000db4e0" & identifier)) ;) (expression_statement "*(undefined4 *)(pdVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)(pdVar4 + 4) = 0" (pointer_expression "*(undefined4 *)(pdVar4 + 4)" * (cast_expression "(undefined4 *)(pdVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pdVar4 + 4)" ( (binary_expression "pdVar4 + 4" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pdVar4 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0x14)" * (cast_expression "(undefined4 *)((int)pdVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 0x14)" ( (binary_expression "(int)pdVar4 + 0x14" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pdVar4 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0x2c)" * (cast_expression "(undefined4 *)((int)pdVar4 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 0x2c)" ( (binary_expression "(int)pdVar4 + 0x2c" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)((int)pdVar4 + 0xc) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0xc) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0xc)" * (cast_expression "(undefined4 *)((int)pdVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + 0xc)" ( (binary_expression "(int)pdVar4 + 0xc" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0001c210:\n  DAT_000ddb68 = 0xe;" statement_identifier : (expression_statement "DAT_000ddb68 = 0xe;" (assignment_expression "DAT_000ddb68 = 0xe" identifier = number_literal) ;)) (expression_statement "DAT_000ddb4c = 0;" (assignment_expression "DAT_000ddb4c = 0" identifier = number_literal) ;) (expression_statement "DAT_000ddb40 = iVar6;" (assignment_expression "DAT_000ddb40 = iVar6" identifier = identifier) ;) (if_statement "if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }" if (parenthesized_expression "(*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0)" ( (binary_expression "*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0" (pointer_expression "*(code **)(*(int *)pdVar4 + 0x24)" * (cast_expression "(code **)(*(int *)pdVar4 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pdVar4 + 0x24)" ( (binary_expression "*(int *)pdVar4 + 0x24" (pointer_expression "*(int *)pdVar4" * (cast_expression "(int *)pdVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }" { (expression_statement "(**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);" (call_expression "(**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40)" (parenthesized_expression "(**(code **)(*(int *)pdVar4 + 0x24))" ( (pointer_expression "**(code **)(*(int *)pdVar4 + 0x24)" * (pointer_expression "*(code **)(*(int *)pdVar4 + 0x24)" * (cast_expression "(code **)(*(int *)pdVar4 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pdVar4 + 0x24)" ( (binary_expression "*(int *)pdVar4 + 0x24" (pointer_expression "*(int *)pdVar4" * (cast_expression "(int *)pdVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pdVar4,&DAT_000ddb40)" ( identifier , (pointer_expression "&DAT_000ddb40" & identifier) ))) ;) })) (expression_statement "(*(code *)PTR_FUN_000dd94c)(0,0);" (call_expression "(*(code *)PTR_FUN_000dd94c)(0,0)" (parenthesized_expression "(*(code *)PTR_FUN_000dd94c)" ( (pointer_expression "*(code *)PTR_FUN_000dd94c" * (cast_expression "(code *)PTR_FUN_000dd94c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0)" ( number_literal , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 ))) ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 *)) ) IDENT)) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT ))) ;)) (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 ") ))) ;) (goto_statement goto statement_identifier ;) })))) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) = (pointer_expression & IDENT)) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0001c180(int param_1)\n\n{\n  double *pdVar1;\n  int iVar2;\n  undefined4 uVar3;\n  double *pdVar4;\n  undefined4 uVar5;\n  int iVar6;\n  \n  iVar6 = 0;\n  pdVar4 = (double *)*DAT_000df3c8;\n  DAT_000df3c8 = DAT_000df3c8 + -1;\n  iVar2 = *(int *)(pdVar4 + 5);\n  if (param_1 == 2) {\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }\n  if (iVar2 == 5) goto LAB_0001c210;\n  if (iVar2 == 7) {\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }\n  else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }\n  *(undefined4 *)(pdVar4 + 3) = 0;\n  *(undefined4 *)(pdVar4 + 5) = 5;\n  *(undefined4 *)((int)pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x1c) = 0;\n  *(undefined **)pdVar4 = &DAT_000db4e0;\n  *(undefined4 *)(pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x14) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x2c) = 0;\n  *(undefined4 *)((int)pdVar4 + 0xc) = 0;\nLAB_0001c210:\n  DAT_000ddb68 = 0xe;\n  DAT_000ddb4c = 0;\n  DAT_000ddb40 = iVar6;\n  if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }\n  (*(code *)PTR_FUN_000dd94c)(0,0);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0001c180(int param_1)" (identifier "FUN_0001c180") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  double *pdVar1;\n  int iVar2;\n  undefined4 uVar3;\n  double *pdVar4;\n  undefined4 uVar5;\n  int iVar6;\n  \n  iVar6 = 0;\n  pdVar4 = (double *)*DAT_000df3c8;\n  DAT_000df3c8 = DAT_000df3c8 + -1;\n  iVar2 = *(int *)(pdVar4 + 5);\n  if (param_1 == 2) {\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }\n  if (iVar2 == 5) goto LAB_0001c210;\n  if (iVar2 == 7) {\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }\n  else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }\n  *(undefined4 *)(pdVar4 + 3) = 0;\n  *(undefined4 *)(pdVar4 + 5) = 5;\n  *(undefined4 *)((int)pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x1c) = 0;\n  *(undefined **)pdVar4 = &DAT_000db4e0;\n  *(undefined4 *)(pdVar4 + 4) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x14) = 0;\n  *(undefined4 *)((int)pdVar4 + 0x2c) = 0;\n  *(undefined4 *)((int)pdVar4 + 0xc) = 0;\nLAB_0001c210:\n  DAT_000ddb68 = 0xe;\n  DAT_000ddb4c = 0;\n  DAT_000ddb40 = iVar6;\n  if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }\n  (*(code *)PTR_FUN_000dd94c)(0,0);\n  return;\n}" ({ "{") (declaration "double *pdVar1;" (primitive_type "double") (pointer_declarator "*pdVar1" (* "*") (identifier "pdVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "double *pdVar4;" (primitive_type "double") (pointer_declarator "*pdVar4" (* "*") (identifier "pdVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "pdVar4 = (double *)*DAT_000df3c8;" (assignment_expression "pdVar4 = (double *)*DAT_000df3c8" (identifier "pdVar4") (= "=") (cast_expression "(double *)*DAT_000df3c8" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_000df3c8" (* "*") (identifier "DAT_000df3c8")))) (; ";")) (expression_statement "DAT_000df3c8 = DAT_000df3c8 + -1;" (assignment_expression "DAT_000df3c8 = DAT_000df3c8 + -1" (identifier "DAT_000df3c8") (= "=") (binary_expression "DAT_000df3c8 + -1" (identifier "DAT_000df3c8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pdVar4 + 5)" (* "*") (cast_expression "(int *)(pdVar4 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar4 + 5)" (( "(") (binary_expression "pdVar4 + 5" (identifier "pdVar4") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (if_statement "if (param_1 == 2) {\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }" (if "if") (parenthesized_expression "(param_1 == 2)" (( "(") (binary_expression "param_1 == 2" (identifier "param_1") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n    if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }\n    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }\n    iVar6 = (int)ROUND(*pdVar4);\n    pdVar1 = pdVar4 + 2;\n    *(int *)pdVar1 = *(int *)pdVar1 + -1;\n    if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n  }" ({ "{") (if_statement "if (iVar2 == 5) {\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }" (if "if") (parenthesized_expression "(iVar2 == 5)" (( "(") (binary_expression "iVar2 == 5" (identifier "iVar2") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n      FUN_00074330("awk.h",0x72b);\n      uVar3 = FUN_0001a590(pdVar4);\n      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);\n      FUN_00074d10(uVar5,uVar3);\n    }" ({ "{") (expression_statement "FUN_00074330("awk.h",0x72b);" (call_expression "FUN_00074330("awk.h",0x72b)" (identifier "FUN_00074330") (argument_list "("awk.h",0x72b)" (( "(") (string_literal ""awk.h"" (" """) (string_content "awk.h") (" """)) (, ",") (number_literal "0x72b") () ")"))) (; ";")) (expression_statement "uVar3 = FUN_0001a590(pdVar4);" (assignment_expression "uVar3 = FUN_0001a590(pdVar4)" (identifier "uVar3") (= "=") (call_expression "FUN_0001a590(pdVar4)" (identifier "FUN_0001a590") (argument_list "(pdVar4)" (( "(") (identifier "pdVar4") () ")")))) (; ";")) (expression_statement "uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);" (assignment_expression "uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5)" (identifier "uVar5") (= "=") (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_00074d10(uVar5,uVar3);" (call_expression "FUN_00074d10(uVar5,uVar3)" (identifier "FUN_00074d10") (argument_list "(uVar5,uVar3)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }" (if "if") (parenthesized_expression "((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0)" (( "(") (binary_expression "(*(byte *)((int)pdVar4 + 0x2c) & 8) == 0" (parenthesized_expression "(*(byte *)((int)pdVar4 + 0x2c) & 8)" (( "(") (binary_expression "*(byte *)((int)pdVar4 + 0x2c) & 8" (pointer_expression "*(byte *)((int)pdVar4 + 0x2c)" (* "*") (cast_expression "(byte *)((int)pdVar4 + 0x2c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar4 + 0x2c)" (( "(") (binary_expression "(int)pdVar4 + 0x2c" (cast_expression "(int)pdVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar4")) (+ "+") (number_literal "0x2c")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);\n    }" ({ "{") (expression_statement "pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);" (assignment_expression "pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4)" (identifier "pdVar4") (= "=") (cast_expression "(double *)(*(code *)PTR_FUN_000dd948)(pdVar4)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_FUN_000dd948)(pdVar4)" (parenthesized_expression "(*(code *)PTR_FUN_000dd948)" (( "(") (pointer_expression "*(code *)PTR_FUN_000dd948" (* "*") (cast_expression "(code *)PTR_FUN_000dd948" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000dd948"))) () ")")) (argument_list "(pdVar4)" (( "(") (identifier "pdVar4") () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar6 = (int)ROUND(*pdVar4);" (assignment_expression "iVar6 = (int)ROUND(*pdVar4)" (identifier "iVar6") (= "=") (cast_expression "(int)ROUND(*pdVar4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "ROUND(*pdVar4)" (identifier "ROUND") (argument_list "(*pdVar4)" (( "(") (pointer_expression "*pdVar4" (* "*") (identifier "pdVar4")) () ")"))))) (; ";")) (expression_statement "pdVar1 = pdVar4 + 2;" (assignment_expression "pdVar1 = pdVar4 + 2" (identifier "pdVar1") (= "=") (binary_expression "pdVar4 + 2" (identifier "pdVar4") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*(int *)pdVar1 = *(int *)pdVar1 + -1;" (assignment_expression "*(int *)pdVar1 = *(int *)pdVar1 + -1" (pointer_expression "*(int *)pdVar1" (* "*") (cast_expression "(int *)pdVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar1"))) (= "=") (binary_expression "*(int *)pdVar1 + -1" (pointer_expression "*(int *)pdVar1" (* "*") (cast_expression "(int *)pdVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar1"))) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*(int *)pdVar1 == 0) {\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" (if "if") (parenthesized_expression "(*(int *)pdVar1 == 0)" (( "(") (binary_expression "*(int *)pdVar1 == 0" (pointer_expression "*(int *)pdVar1" (* "*") (cast_expression "(int *)pdVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar1"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00075360(pdVar4);\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" ({ "{") (expression_statement "FUN_00075360(pdVar4);" (call_expression "FUN_00075360(pdVar4)" (identifier "FUN_00075360") (argument_list "(pdVar4)" (( "(") (identifier "pdVar4") () ")"))) (; ";")) (expression_statement "pdVar4 = (double *)*DAT_000df3c8;" (assignment_expression "pdVar4 = (double *)*DAT_000df3c8" (identifier "pdVar4") (= "=") (cast_expression "(double *)*DAT_000df3c8" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_000df3c8" (* "*") (identifier "DAT_000df3c8")))) (; ";")) (expression_statement "DAT_000df3c8 = DAT_000df3c8 + -1;" (assignment_expression "DAT_000df3c8 = DAT_000df3c8 + -1" (identifier "DAT_000df3c8") (= "=") (binary_expression "DAT_000df3c8 + -1" (identifier "DAT_000df3c8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pdVar4 + 5)" (* "*") (cast_expression "(int *)(pdVar4 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar4 + 5)" (( "(") (binary_expression "pdVar4 + 5" (identifier "pdVar4") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" (else "else") (compound_statement "{\n      pdVar4 = (double *)*DAT_000df3c8;\n      DAT_000df3c8 = DAT_000df3c8 + -1;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" ({ "{") (expression_statement "pdVar4 = (double *)*DAT_000df3c8;" (assignment_expression "pdVar4 = (double *)*DAT_000df3c8" (identifier "pdVar4") (= "=") (cast_expression "(double *)*DAT_000df3c8" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*DAT_000df3c8" (* "*") (identifier "DAT_000df3c8")))) (; ";")) (expression_statement "DAT_000df3c8 = DAT_000df3c8 + -1;" (assignment_expression "DAT_000df3c8 = DAT_000df3c8 + -1" (identifier "DAT_000df3c8") (= "=") (binary_expression "DAT_000df3c8 + -1" (identifier "DAT_000df3c8") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pdVar4 + 5)" (* "*") (cast_expression "(int *)(pdVar4 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar4 + 5)" (( "(") (binary_expression "pdVar4 + 5" (identifier "pdVar4") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (iVar2 == 5) goto LAB_0001c210;" (if "if") (parenthesized_expression "(iVar2 == 5)" (( "(") (binary_expression "iVar2 == 5" (identifier "iVar2") (== "==") (number_literal "5")) () ")")) (goto_statement "goto LAB_0001c210;" (goto "goto") (statement_identifier "LAB_0001c210") (; ";"))) (if_statement "if (iVar2 == 7) {\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }\n  else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" (if "if") (parenthesized_expression "(iVar2 == 7)" (( "(") (binary_expression "iVar2 == 7" (identifier "iVar2") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);\n    iVar2 = *(int *)(pdVar4 + 5);\n    if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }\n    if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }\n  }" ({ "{") (expression_statement "pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);" (assignment_expression "pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" (identifier "pdVar4") (= "=") (pointer_expression "*(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" (* "*") (cast_expression "(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4)" (( "(") (binary_expression "*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4" (pointer_expression "*(int *)(DAT_000e298c + 4)" (* "*") (cast_expression "(int *)(DAT_000e298c + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_000e298c + 4)" (( "(") (binary_expression "DAT_000e298c + 4" (identifier "DAT_000e298c") (+ "+") (number_literal "4")) () ")")))) (+ "+") (binary_expression "*(int *)pdVar4 * 4" (pointer_expression "*(int *)pdVar4" (* "*") (cast_expression "(int *)pdVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar4"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pdVar4 + 5)" (* "*") (cast_expression "(int *)(pdVar4 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar4 + 5)" (( "(") (binary_expression "pdVar4 + 5" (identifier "pdVar4") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (if_statement "if (iVar2 == 0xb) {\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" (if "if") (parenthesized_expression "(iVar2 == 0xb)" (( "(") (binary_expression "iVar2 == 0xb" (identifier "iVar2") (== "==") (number_literal "0xb")) () ")")) (compound_statement "{\n      pdVar4 = *(double **)pdVar4;\n      iVar2 = *(int *)(pdVar4 + 5);\n    }" ({ "{") (expression_statement "pdVar4 = *(double **)pdVar4;" (assignment_expression "pdVar4 = *(double **)pdVar4" (identifier "pdVar4") (= "=") (pointer_expression "*(double **)pdVar4" (* "*") (cast_expression "(double **)pdVar4" (( "(") (type_descriptor "double **" (primitive_type "double") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pdVar4")))) (; ";")) (expression_statement "iVar2 = *(int *)(pdVar4 + 5);" (assignment_expression "iVar2 = *(int *)(pdVar4 + 5)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pdVar4 + 5)" (* "*") (cast_expression "(int *)(pdVar4 + 5)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar4 + 5)" (( "(") (binary_expression "pdVar4 + 5" (identifier "pdVar4") (+ "+") (number_literal "5")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (iVar2 != 6) {\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }" (if "if") (parenthesized_expression "(iVar2 != 6)" (( "(") (binary_expression "iVar2 != 6" (identifier "iVar2") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n      if (iVar2 == 5) goto LAB_0001c210;\n      goto LAB_0001c28b;\n    }" ({ "{") (if_statement "if (iVar2 == 5) goto LAB_0001c210;" (if "if") (parenthesized_expression "(iVar2 == 5)" (( "(") (binary_expression "iVar2 == 5" (identifier "iVar2") (== "==") (number_literal "5")) () ")")) (goto_statement "goto LAB_0001c210;" (goto "goto") (statement_identifier "LAB_0001c210") (; ";"))) (goto_statement "goto LAB_0001c28b;" (goto "goto") (statement_identifier "LAB_0001c28b") (; ";")) (} "}"))) (} "}")) (else_clause "else if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" (else "else") (if_statement "if (iVar2 != 6) {\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" (if "if") (parenthesized_expression "(iVar2 != 6)" (( "(") (binary_expression "iVar2 != 6" (identifier "iVar2") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\nLAB_0001c28b:\n    FUN_00074330("array.c",0x30f);\n    uVar3 = dcgettext(0,"%s: first argument is not an array",5);\n    FUN_00074d10(uVar3,"adump");\n    goto LAB_0001c210;\n  }" ({ "{") (labeled_statement "LAB_0001c28b:\n    FUN_00074330("array.c",0x30f);" (statement_identifier "LAB_0001c28b") (: ":") (expression_statement "FUN_00074330("array.c",0x30f);" (call_expression "FUN_00074330("array.c",0x30f)" (identifier "FUN_00074330") (argument_list "("array.c",0x30f)" (( "(") (string_literal ""array.c"" (" """) (string_content "array.c") (" """)) (, ",") (number_literal "0x30f") () ")"))) (; ";"))) (expression_statement "uVar3 = dcgettext(0,"%s: first argument is not an array",5);" (assignment_expression "uVar3 = dcgettext(0,"%s: first argument is not an array",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"%s: first argument is not an array",5)" (identifier "dcgettext") (argument_list "(0,"%s: first argument is not an array",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s: first argument is not an array"" (" """) (string_content "%s: first argument is not an array") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00074d10(uVar3,"adump");" (call_expression "FUN_00074d10(uVar3,"adump")" (identifier "FUN_00074d10") (argument_list "(uVar3,"adump")" (( "(") (identifier "uVar3") (, ",") (string_literal ""adump"" (" """) (string_content "adump") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_0001c210;" (goto "goto") (statement_identifier "LAB_0001c210") (; ";")) (} "}"))))) (expression_statement "*(undefined4 *)(pdVar4 + 3) = 0;" (assignment_expression "*(undefined4 *)(pdVar4 + 3) = 0" (pointer_expression "*(undefined4 *)(pdVar4 + 3)" (* "*") (cast_expression "(undefined4 *)(pdVar4 + 3)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar4 + 3)" (( "(") (binary_expression "pdVar4 + 3" (identifier "pdVar4") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(pdVar4 + 5) = 5;" (assignment_expression "*(undefined4 *)(pdVar4 + 5) = 5" (pointer_expression "*(undefined4 *)(pdVar4 + 5)" (* "*") (cast_expression "(undefined4 *)(pdVar4 + 5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar4 + 5)" (( "(") (binary_expression "pdVar4 + 5" (identifier "pdVar4") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 4) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 4)" (* "*") (cast_expression "(undefined4 *)((int)pdVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar4 + 4)" (( "(") (binary_expression "(int)pdVar4 + 4" (cast_expression "(int)pdVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar4")) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar4 + 0x1c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0x1c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)((int)pdVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar4 + 0x1c)" (( "(") (binary_expression "(int)pdVar4 + 0x1c" (cast_expression "(int)pdVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar4")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined **)pdVar4 = &DAT_000db4e0;" (assignment_expression "*(undefined **)pdVar4 = &DAT_000db4e0" (pointer_expression "*(undefined **)pdVar4" (* "*") (cast_expression "(undefined **)pdVar4" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "pdVar4"))) (= "=") (pointer_expression "&DAT_000db4e0" (& "&") (identifier "DAT_000db4e0"))) (; ";")) (expression_statement "*(undefined4 *)(pdVar4 + 4) = 0;" (assignment_expression "*(undefined4 *)(pdVar4 + 4) = 0" (pointer_expression "*(undefined4 *)(pdVar4 + 4)" (* "*") (cast_expression "(undefined4 *)(pdVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pdVar4 + 4)" (( "(") (binary_expression "pdVar4 + 4" (identifier "pdVar4") (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar4 + 0x14) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0x14) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0x14)" (* "*") (cast_expression "(undefined4 *)((int)pdVar4 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar4 + 0x14)" (( "(") (binary_expression "(int)pdVar4 + 0x14" (cast_expression "(int)pdVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar4")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar4 + 0x2c) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0x2c) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0x2c)" (* "*") (cast_expression "(undefined4 *)((int)pdVar4 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar4 + 0x2c)" (( "(") (binary_expression "(int)pdVar4 + 0x2c" (cast_expression "(int)pdVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar4")) (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)((int)pdVar4 + 0xc) = 0;" (assignment_expression "*(undefined4 *)((int)pdVar4 + 0xc) = 0" (pointer_expression "*(undefined4 *)((int)pdVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)((int)pdVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)pdVar4 + 0xc)" (( "(") (binary_expression "(int)pdVar4 + 0xc" (cast_expression "(int)pdVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pdVar4")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0001c210:\n  DAT_000ddb68 = 0xe;" (statement_identifier "LAB_0001c210") (: ":") (expression_statement "DAT_000ddb68 = 0xe;" (assignment_expression "DAT_000ddb68 = 0xe" (identifier "DAT_000ddb68") (= "=") (number_literal "0xe")) (; ";"))) (expression_statement "DAT_000ddb4c = 0;" (assignment_expression "DAT_000ddb4c = 0" (identifier "DAT_000ddb4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_000ddb40 = iVar6;" (assignment_expression "DAT_000ddb40 = iVar6" (identifier "DAT_000ddb40") (= "=") (identifier "iVar6")) (; ";")) (if_statement "if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }" (if "if") (parenthesized_expression "(*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0)" (( "(") (binary_expression "*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0" (pointer_expression "*(code **)(*(int *)pdVar4 + 0x24)" (* "*") (cast_expression "(code **)(*(int *)pdVar4 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pdVar4 + 0x24)" (( "(") (binary_expression "*(int *)pdVar4 + 0x24" (pointer_expression "*(int *)pdVar4" (* "*") (cast_expression "(int *)pdVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar4"))) (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);\n  }" ({ "{") (expression_statement "(**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);" (call_expression "(**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40)" (parenthesized_expression "(**(code **)(*(int *)pdVar4 + 0x24))" (( "(") (pointer_expression "**(code **)(*(int *)pdVar4 + 0x24)" (* "*") (pointer_expression "*(code **)(*(int *)pdVar4 + 0x24)" (* "*") (cast_expression "(code **)(*(int *)pdVar4 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pdVar4 + 0x24)" (( "(") (binary_expression "*(int *)pdVar4 + 0x24" (pointer_expression "*(int *)pdVar4" (* "*") (cast_expression "(int *)pdVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pdVar4"))) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(pdVar4,&DAT_000ddb40)" (( "(") (identifier "pdVar4") (, ",") (pointer_expression "&DAT_000ddb40" (& "&") (identifier "DAT_000ddb40")) () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_FUN_000dd94c)(0,0);" (call_expression "(*(code *)PTR_FUN_000dd94c)(0,0)" (parenthesized_expression "(*(code *)PTR_FUN_000dd94c)" (( "(") (pointer_expression "*(code *)PTR_FUN_000dd94c" (* "*") (cast_expression "(code *)PTR_FUN_000dd94c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_000dd94c"))) () ")")) (argument_list "(0,0)" (( "(") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

type_1 * function_1(int var_2)

{
  char **ppcVar1;
  type_2 var_14;
  type_3 var_3;
  type_1 *pNVar4;
  char *pcVar5;
  char *mesg;
  type_4 aVar6;
  
  aVar6.lptr = (type_5 *)0x0;
  pNVar4 = var_1->rptr;
  var_1 = var_1 + -1;
  var_3 = pNVar4->type;
  if (var_2 == 2) {
    if (var_3 == var_4) {
      var_5("awk.h",0x72b);
      pcVar5 = var_6(pNVar4);
      mesg = (char *)var_7(0,"attempt to use array `%s\' in a scalar context",5);
                    /* WARNING: Subroutine does not return */
      var_8(mesg,pcVar5);
    }
    if ((pNVar4->flags & 8) == 0) {
      pNVar4 = (*str2number)(pNVar4);
    }
    aVar6.ll = (type_6)var_9((pNVar4->sub).val.fltnum);
    ppcVar1 = &(pNVar4->sub).nodep.name;
    *ppcVar1 = *ppcVar1 + -1;
    if (*ppcVar1 == (char *)0x0) {
      var_10(pNVar4);
      pNVar4 = var_1->rptr;
      var_1 = var_1 + -1;
      var_3 = pNVar4->type;
    }
    else {
      pNVar4 = var_1->rptr;
      var_1 = var_1 + -1;
      var_3 = pNVar4->type;
    }
  }
  if (var_3 != var_4) {
    if (var_3 == var_11) {
      pNVar4 = *(type_1 **)(*(int *)((int)&frame_ptr->sub + 4) + *(int *)&pNVar4->sub * 4);
      var_3 = pNVar4->type;
      if (var_3 == var_12) {
        pNVar4 = *(type_1 **)&pNVar4->sub;
        var_3 = pNVar4->type;
      }
      if (var_3 != var_13) {
        if (var_3 != var_4) goto LAB_0001c28b;
        goto LAB_0001c210;
      }
    }
    else if (var_3 != var_13) {
LAB_0001c28b:
      var_5("array.c",0x30f);
      pcVar5 = (char *)var_7(0,"%s: first argument is not an array",5);
                    /* WARNING: Subroutine does not return */
      var_8(pcVar5,"adump");
    }
    (pNVar4->sub).nodep.rn = (type_5 *)0x0;
    pNVar4->type = var_4;
    *(type_7 *)((int)&pNVar4->sub + 4) = 0;
    (pNVar4->sub).nodep.cnt = 0;
    (pNVar4->sub).nodep.l.lp = &null_array_func;
    (pNVar4->sub).nodep.reflags = 0;
    (pNVar4->sub).nodep.reserved = 0;
    pNVar4->flags = 0;
    (pNVar4->sub).val.slen = 0;
  }
LAB_0001c210:
  do_adump::ndump.type = Node_dump_array;
  do_adump::ndump.sub.val.slen = 0;
  var_14 = ((pNVar4->sub).nodep.l.lp)->dump;
  do_adump::ndump.sub.nodep.l = aVar6;
  if (var_14 != (type_2)0x0) {
    (*var_14)(pNVar4,&function_1::ndump);
  }
  pNVar4 = (*make_number)(0.0);
  return pNVar4;
}


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

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

void MASKED(int param_1)

{
  double *pdVar1;
  int iVar2;
  undefined4 uVar3;
  double *pdVar4;
  undefined4 uVar5;
  int iVar6;
  
  iVar6 = 0;
  pdVar4 = (double *)*DAT_000df3c8;
  DAT_000df3c8 = DAT_000df3c8 + -1;
  iVar2 = *(int *)(pdVar4 + 5);
  if (param_1 == 2) {
    if (iVar2 == 5) {
      FUN_00074330("awk.h",0x72b);
      uVar3 = FUN_0001a590(pdVar4);
      uVar5 = dcgettext(0,"attempt to use array `%s\' in a scalar context",5);
      FUN_00074d10(uVar5,uVar3);
    }
    if ((*(byte *)((int)pdVar4 + 0x2c) & 8) == 0) {
      pdVar4 = (double *)(*(code *)PTR_FUN_000dd948)(pdVar4);
    }
    iVar6 = (int)ROUND(*pdVar4);
    pdVar1 = pdVar4 + 2;
    *(int *)pdVar1 = *(int *)pdVar1 + -1;
    if (*(int *)pdVar1 == 0) {
      FUN_00075360(pdVar4);
      pdVar4 = (double *)*DAT_000df3c8;
      DAT_000df3c8 = DAT_000df3c8 + -1;
      iVar2 = *(int *)(pdVar4 + 5);
    }
    else {
      pdVar4 = (double *)*DAT_000df3c8;
      DAT_000df3c8 = DAT_000df3c8 + -1;
      iVar2 = *(int *)(pdVar4 + 5);
    }
  }
  if (iVar2 == 5) goto LAB_0001c210;
  if (iVar2 == 7) {
    pdVar4 = *(double **)(*(int *)(DAT_000e298c + 4) + *(int *)pdVar4 * 4);
    iVar2 = *(int *)(pdVar4 + 5);
    if (iVar2 == 0xb) {
      pdVar4 = *(double **)pdVar4;
      iVar2 = *(int *)(pdVar4 + 5);
    }
    if (iVar2 != 6) {
      if (iVar2 == 5) goto LAB_0001c210;
      goto LAB_0001c28b;
    }
  }
  else if (iVar2 != 6) {
LAB_0001c28b:
    FUN_00074330("array.c",0x30f);
    uVar3 = dcgettext(0,"%s: first argument is not an array",5);
    FUN_00074d10(uVar3,"adump");
    goto LAB_0001c210;
  }
  *(undefined4 *)(pdVar4 + 3) = 0;
  *(undefined4 *)(pdVar4 + 5) = 5;
  *(undefined4 *)((int)pdVar4 + 4) = 0;
  *(undefined4 *)((int)pdVar4 + 0x1c) = 0;
  *(undefined **)pdVar4 = &DAT_000db4e0;
  *(undefined4 *)(pdVar4 + 4) = 0;
  *(undefined4 *)((int)pdVar4 + 0x14) = 0;
  *(undefined4 *)((int)pdVar4 + 0x2c) = 0;
  *(undefined4 *)((int)pdVar4 + 0xc) = 0;
LAB_0001c210:
  DAT_000ddb68 = 0xe;
  DAT_000ddb4c = 0;
  DAT_000ddb40 = iVar6;
  if (*(code **)(*(int *)pdVar4 + 0x24) != (code *)0x0) {
    (**(code **)(*(int *)pdVar4 + 0x24))(pdVar4,&DAT_000ddb40);
  }
  (*(code *)PTR_FUN_000dd94c)(0,0);
  return;
}

