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

int __regparm3 frame_need_space(Frame_Chunk *fc,uint reg)

{
  uint uVar1;
  short *psVar2;
  int *piVar3;
  char *message;
  void *pvVar4;
  int iVar5;
  size_t size;
  uint uVar6;
  
  uVar6 = fc->ncols;
  if (reg < uVar6) {
    return 0;
  }
  if ((dwarf_regnames_count == 0) || (reg <= dwarf_regnames_count)) {
    uVar1 = reg + 1;
    fc->ncols = uVar1;
    if (uVar1 != 0) {
      if (uVar1 < 0x401) {
        psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2);
        fc->col_type = psVar2;
        pvVar4 = (void *)fc->ncols;
        if ((void *)0x3ffffffe < pvVar4) {
          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);
          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);
          iVar5 = printf("%*s ",8,buf_11646);
          return iVar5;
        }
        piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2);
        psVar2 = fc->col_type;
        fc->col_offset = piVar3;
        if (psVar2 != (short *)0x0) {
          if (uVar6 < fc->ncols) {
            do {
              psVar2[uVar6] = -1;
              piVar3[uVar6] = 0;
              uVar6 = uVar6 + 1;
            } while (uVar6 < fc->ncols);
          }
          return 1;
        }
        reg = fc->ncols;
        message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",
                                    5);
      }
      else {
        message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);
      }
      error(message,reg);
      fc->ncols = 0;
    }
  }
  return -1;
}



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

int __regparm3 FUN_0001e9c0(int param_1,uint param_2)

{
  uint uVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  
  uVar5 = *(uint *)(param_1 + 8);
  if (param_2 < uVar5) {
    return 0;
  }
  if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {
    uVar1 = param_2 + 1;
    *(uint *)(param_1 + 8) = uVar1;
    if (uVar1 != 0) {
      if (uVar1 < 0x401) {
        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);
        *(undefined4 *)(param_1 + 0xc) = uVar2;
        if (0x3ffffffe < *(uint *)(param_1 + 8)) {
          uVar2 = FUN_0001e980();
          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);
          iVar4 = printf("%*s ",8,&DAT_00074228);
          return iVar4;
        }
        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);
        iVar4 = *(int *)(param_1 + 0xc);
        *(int *)(param_1 + 0x10) = iVar3;
        if (iVar4 != 0) {
          if (uVar5 < *(uint *)(param_1 + 8)) {
            do {
              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;
              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;
              uVar5 = uVar5 + 1;
            } while (uVar5 < *(uint *)(param_1 + 8));
          }
          return 1;
        }
        param_2 = *(uint *)(param_1 + 8);
        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);
      }
      else {
        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);
      }
      error(uVar2,param_2);
      *(undefined4 *)(param_1 + 8) = 0;
    }
  }
  return -1;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000153d0
ADD EBX,0x54637
SUB ESP,0xc
MOV ESI,dword ptr [EAX + 0x8]
CMP ESI,EDX
JA 0x0001eab0
MOV ECX,dword ptr [EBX + 0x38b0]
TEST ECX,ECX
JZ 0x0001e9ef
CMP ECX,EDX
JC 0x0001ea9e
LEA ECX,[EDX + 0x1]
MOV dword ptr [EAX + 0x8],ECX
TEST ECX,ECX
JZ 0x0001ea9e
MOV EBP,EDX
MOV EDI,EAX
CMP ECX,0x400
JA 0x0001ea78
SUB ESP,0x8
ADD ECX,ECX
PUSH ECX
PUSH dword ptr [EAX + 0xc]
CALL 0x00014220
MOV EDX,dword ptr [EDI + 0x10]
ADD ESP,0x10
MOV dword ptr [EDI + 0xc],EAX
MOV EAX,dword ptr [EDI + 0x8]
CMP EAX,0x3ffffffe
JA 0x0001eadb
SUB ESP,0x8
SHL EAX,0x2
PUSH EAX
PUSH EDX
CALL 0x00014220
MOV EDX,dword ptr [EDI + 0xc]
ADD ESP,0x10
MOV dword ptr [EDI + 0x10],EAX
TEST EDX,EDX
JZ 0x0001eac0
CMP ESI,dword ptr [EDI + 0x8]
JNC 0x0001ea68
LEA ESI,[ESI]
MOV ECX,0xffffffff
MOV word ptr [EDX + ESI*0x2],CX
MOV dword ptr [EAX + ESI*0x4],0x0
ADD ESI,0x1
CMP dword ptr [EDI + 0x8],ESI
JA 0x0001ea50
ADD ESP,0xc
MOV EAX,0x1
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd4c0]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
POP ECX
POP ESI
PUSH EBP
PUSH EAX
CALL 0x00048830
MOV dword ptr [EDI + 0x8],0x0
ADD ESP,0x10
ADD ESP,0xc
MOV EAX,0xffffffff
POP EBX
POP ESI
POP EDI
POP EBP
RET
ADD ESP,0xc
XOR EAX,EAX
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdd4e8]
MOV ESI,dword ptr [EDI + 0x8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141f0
POP EBP
POP EDX
PUSH ESI
JMP 0x0001ea8e
CALL 0x0001e980
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_0001e9c0(int param_1,uint param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar5 = *(uint *)(param_1 + 8);\n  if (param_2 < uVar5) {\n    return 0;\n  }\n  if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }\n  return -1;\n}\n\n" comment (function_definition "int __regparm3 FUN_0001e9c0(int param_1,uint param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar5 = *(uint *)(param_1 + 8);\n  if (param_2 < uVar5) {\n    return 0;\n  }\n  if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }\n  return -1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001e9c0(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar5 = *(uint *)(param_1 + 8);\n  if (param_2 < uVar5) {\n    return 0;\n  }\n  if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }\n  return -1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "uVar5 = *(uint *)(param_1 + 8);" (assignment_expression "uVar5 = *(uint *)(param_1 + 8)" identifier = (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (param_2 < uVar5) {\n    return 0;\n  }" if (parenthesized_expression "(param_2 < uVar5)" ( (binary_expression "param_2 < uVar5" identifier < identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }" if (parenthesized_expression "((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0))" ( (binary_expression "(DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)" (parenthesized_expression "(DAT_000768b0 == 0)" ( (binary_expression "DAT_000768b0 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 <= DAT_000768b0)" ( (binary_expression "param_2 <= DAT_000768b0" identifier <= identifier) ))) )) (compound_statement "{\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }" { (expression_statement "uVar1 = param_2 + 1;" (assignment_expression "uVar1 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(param_1 + 8) = uVar1;" (assignment_expression "*(uint *)(param_1 + 8) = uVar1" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }" { (if_statement "if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" if (parenthesized_expression "(uVar1 < 0x401)" ( (binary_expression "uVar1 < 0x401" identifier < number_literal) )) (compound_statement "{\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }" { (expression_statement "uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);" (assignment_expression "uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2)" identifier = (call_expression "xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2)" identifier (argument_list "(*(undefined4 *)(param_1 + 0xc),uVar1 * 2)" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "uVar1 * 2" identifier * number_literal) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0xc) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0xc) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }" if (parenthesized_expression "(0x3ffffffe < *(uint *)(param_1 + 8))" ( (binary_expression "0x3ffffffe < *(uint *)(param_1 + 8)" number_literal < (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }" { (expression_statement "uVar2 = FUN_0001e980();" (assignment_expression "uVar2 = FUN_0001e980()" identifier = (call_expression "FUN_0001e980()" identifier (argument_list "()" ( )))) ;) (expression_statement "snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);" (call_expression "snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5)" identifier (argument_list "(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5)" ( (pointer_expression "&DAT_00074228" & identifier) , number_literal , (string_literal ""[%d]"" " string_content ") , identifier , number_literal , (pointer_expression "&__DT_PLTGOT" & identifier) , identifier ))) ;) (expression_statement "iVar4 = printf("%*s ",8,&DAT_00074228);" (assignment_expression "iVar4 = printf("%*s ",8,&DAT_00074228)" identifier = (call_expression "printf("%*s ",8,&DAT_00074228)" identifier (argument_list "("%*s ",8,&DAT_00074228)" ( (string_literal ""%*s "" " string_content ") , number_literal , (pointer_expression "&DAT_00074228" & identifier) )))) ;) (return_statement "return iVar4;" return identifier ;) })) (expression_statement "iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);" (assignment_expression "iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2)" identifier = (call_expression "xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (binary_expression "*(uint *)(param_1 + 8) << 2" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) << number_literal) )))) ;) (expression_statement "iVar4 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar4 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x10) = iVar3;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar3" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }" { (if_statement "if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }" if (parenthesized_expression "(uVar5 < *(uint *)(param_1 + 8))" ( (binary_expression "uVar5 < *(uint *)(param_1 + 8)" identifier < (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }" { (do_statement "do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));" do (compound_statement "{\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            }" { (expression_statement "*(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;" (assignment_expression "*(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff" (pointer_expression "*(undefined2 *)(iVar4 + uVar5 * 2)" * (cast_expression "(undefined2 *)(iVar4 + uVar5 * 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + uVar5 * 2)" ( (binary_expression "iVar4 + uVar5 * 2" identifier + (binary_expression "uVar5 * 2" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + uVar5 * 4) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + uVar5 * 4) = 0" (pointer_expression "*(undefined4 *)(iVar3 + uVar5 * 4)" * (cast_expression "(undefined4 *)(iVar3 + uVar5 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + uVar5 * 4)" ( (binary_expression "iVar3 + uVar5 * 4" identifier + (binary_expression "uVar5 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < *(uint *)(param_1 + 8))" ( (binary_expression "uVar5 < *(uint *)(param_1 + 8)" identifier < (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "param_2 = *(uint *)(param_1 + 8);" (assignment_expression "param_2 = *(uint *)(param_1 + 8)" identifier = (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);" (assignment_expression "uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5)" identifier = (call_expression "dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5)" identifier (argument_list "(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5)" ( number_literal , (string_literal ""Out of memory allocating %u columns in dwarf frame arrays\n"" " string_content escape_sequence ") , number_literal )))) ;) }) (else_clause "else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" else (compound_statement "{\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" { (expression_statement "uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);" (assignment_expression "uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5)" identifier = (call_expression "dcgettext(0,"Unfeasibly large register number: %u\n",5)" identifier (argument_list "(0,"Unfeasibly large register number: %u\n",5)" ( number_literal , (string_literal ""Unfeasibly large register number: %u\n"" " string_content escape_sequence ") , number_literal )))) ;) }))) (expression_statement "error(uVar2,param_2);" (call_expression "error(uVar2,param_2)" identifier (argument_list "(uVar2,param_2)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = number_literal) ;) })) })) (return_statement "return -1;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 frame_need_space(Frame_Chunk *fc,uint reg)\n\n{\n  uint uVar1;\n  short *psVar2;\n  int *piVar3;\n  char *message;\n  void *pvVar4;\n  int iVar5;\n  size_t size;\n  uint uVar6;\n  \n  uVar6 = fc->ncols;\n  if (reg < uVar6) {\n    return 0;\n  }\n  if ((dwarf_regnames_count == 0) || (reg <= dwarf_regnames_count)) {\n    uVar1 = reg + 1;\n    fc->ncols = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2);\n        fc->col_type = psVar2;\n        pvVar4 = (void *)fc->ncols;\n        if ((void *)0x3ffffffe < pvVar4) {\n          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);\n          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);\n          iVar5 = printf("%*s ",8,buf_11646);\n          return iVar5;\n        }\n        piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2);\n        psVar2 = fc->col_type;\n        fc->col_offset = piVar3;\n        if (psVar2 != (short *)0x0) {\n          if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }\n          return 1;\n        }\n        reg = fc->ncols;\n        message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5);\n      }\n      else {\n        message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(message,reg);\n      fc->ncols = 0;\n    }\n  }\n  return -1;\n}\n\n" comment (function_definition "int __regparm3 frame_need_space(Frame_Chunk *fc,uint reg)\n\n{\n  uint uVar1;\n  short *psVar2;\n  int *piVar3;\n  char *message;\n  void *pvVar4;\n  int iVar5;\n  size_t size;\n  uint uVar6;\n  \n  uVar6 = fc->ncols;\n  if (reg < uVar6) {\n    return 0;\n  }\n  if ((dwarf_regnames_count == 0) || (reg <= dwarf_regnames_count)) {\n    uVar1 = reg + 1;\n    fc->ncols = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2);\n        fc->col_type = psVar2;\n        pvVar4 = (void *)fc->ncols;\n        if ((void *)0x3ffffffe < pvVar4) {\n          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);\n          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);\n          iVar5 = printf("%*s ",8,buf_11646);\n          return iVar5;\n        }\n        piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2);\n        psVar2 = fc->col_type;\n        fc->col_offset = piVar3;\n        if (psVar2 != (short *)0x0) {\n          if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }\n          return 1;\n        }\n        reg = fc->ncols;\n        message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5);\n      }\n      else {\n        message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(message,reg);\n      fc->ncols = 0;\n    }\n  }\n  return -1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "frame_need_space(Frame_Chunk *fc,uint reg)" identifier (parameter_list "(Frame_Chunk *fc,uint reg)" ( (parameter_declaration "Frame_Chunk *fc" type_identifier (pointer_declarator "*fc" * identifier)) , (parameter_declaration "uint reg" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  short *psVar2;\n  int *piVar3;\n  char *message;\n  void *pvVar4;\n  int iVar5;\n  size_t size;\n  uint uVar6;\n  \n  uVar6 = fc->ncols;\n  if (reg < uVar6) {\n    return 0;\n  }\n  if ((dwarf_regnames_count == 0) || (reg <= dwarf_regnames_count)) {\n    uVar1 = reg + 1;\n    fc->ncols = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2);\n        fc->col_type = psVar2;\n        pvVar4 = (void *)fc->ncols;\n        if ((void *)0x3ffffffe < pvVar4) {\n          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);\n          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);\n          iVar5 = printf("%*s ",8,buf_11646);\n          return iVar5;\n        }\n        piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2);\n        psVar2 = fc->col_type;\n        fc->col_offset = piVar3;\n        if (psVar2 != (short *)0x0) {\n          if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }\n          return 1;\n        }\n        reg = fc->ncols;\n        message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5);\n      }\n      else {\n        message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(message,reg);\n      fc->ncols = 0;\n    }\n  }\n  return -1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "short *psVar2;" (sized_type_specifier "short" short) (pointer_declarator "*psVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "char *message;" primitive_type (pointer_declarator "*message" * identifier) ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "size_t size;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (expression_statement "uVar6 = fc->ncols;" (assignment_expression "uVar6 = fc->ncols" identifier = (field_expression "fc->ncols" identifier -> field_identifier)) ;) (if_statement "if (reg < uVar6) {\n    return 0;\n  }" if (parenthesized_expression "(reg < uVar6)" ( (binary_expression "reg < uVar6" identifier < identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((dwarf_regnames_count == 0) || (reg <= dwarf_regnames_count)) {\n    uVar1 = reg + 1;\n    fc->ncols = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2);\n        fc->col_type = psVar2;\n        pvVar4 = (void *)fc->ncols;\n        if ((void *)0x3ffffffe < pvVar4) {\n          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);\n          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);\n          iVar5 = printf("%*s ",8,buf_11646);\n          return iVar5;\n        }\n        piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2);\n        psVar2 = fc->col_type;\n        fc->col_offset = piVar3;\n        if (psVar2 != (short *)0x0) {\n          if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }\n          return 1;\n        }\n        reg = fc->ncols;\n        message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5);\n      }\n      else {\n        message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(message,reg);\n      fc->ncols = 0;\n    }\n  }" if (parenthesized_expression "((dwarf_regnames_count == 0) || (reg <= dwarf_regnames_count))" ( (binary_expression "(dwarf_regnames_count == 0) || (reg <= dwarf_regnames_count)" (parenthesized_expression "(dwarf_regnames_count == 0)" ( (binary_expression "dwarf_regnames_count == 0" identifier == number_literal) )) || (parenthesized_expression "(reg <= dwarf_regnames_count)" ( (binary_expression "reg <= dwarf_regnames_count" identifier <= identifier) ))) )) (compound_statement "{\n    uVar1 = reg + 1;\n    fc->ncols = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2);\n        fc->col_type = psVar2;\n        pvVar4 = (void *)fc->ncols;\n        if ((void *)0x3ffffffe < pvVar4) {\n          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);\n          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);\n          iVar5 = printf("%*s ",8,buf_11646);\n          return iVar5;\n        }\n        piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2);\n        psVar2 = fc->col_type;\n        fc->col_offset = piVar3;\n        if (psVar2 != (short *)0x0) {\n          if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }\n          return 1;\n        }\n        reg = fc->ncols;\n        message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5);\n      }\n      else {\n        message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(message,reg);\n      fc->ncols = 0;\n    }\n  }" { (expression_statement "uVar1 = reg + 1;" (assignment_expression "uVar1 = reg + 1" identifier = (binary_expression "reg + 1" identifier + number_literal)) ;) (expression_statement "fc->ncols = uVar1;" (assignment_expression "fc->ncols = uVar1" (field_expression "fc->ncols" identifier -> field_identifier) = identifier) ;) (if_statement "if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2);\n        fc->col_type = psVar2;\n        pvVar4 = (void *)fc->ncols;\n        if ((void *)0x3ffffffe < pvVar4) {\n          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);\n          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);\n          iVar5 = printf("%*s ",8,buf_11646);\n          return iVar5;\n        }\n        piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2);\n        psVar2 = fc->col_type;\n        fc->col_offset = piVar3;\n        if (psVar2 != (short *)0x0) {\n          if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }\n          return 1;\n        }\n        reg = fc->ncols;\n        message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5);\n      }\n      else {\n        message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(message,reg);\n      fc->ncols = 0;\n    }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar1 < 0x401) {\n        psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2);\n        fc->col_type = psVar2;\n        pvVar4 = (void *)fc->ncols;\n        if ((void *)0x3ffffffe < pvVar4) {\n          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);\n          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);\n          iVar5 = printf("%*s ",8,buf_11646);\n          return iVar5;\n        }\n        piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2);\n        psVar2 = fc->col_type;\n        fc->col_offset = piVar3;\n        if (psVar2 != (short *)0x0) {\n          if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }\n          return 1;\n        }\n        reg = fc->ncols;\n        message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5);\n      }\n      else {\n        message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(message,reg);\n      fc->ncols = 0;\n    }" { (if_statement "if (uVar1 < 0x401) {\n        psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2);\n        fc->col_type = psVar2;\n        pvVar4 = (void *)fc->ncols;\n        if ((void *)0x3ffffffe < pvVar4) {\n          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);\n          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);\n          iVar5 = printf("%*s ",8,buf_11646);\n          return iVar5;\n        }\n        piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2);\n        psVar2 = fc->col_type;\n        fc->col_offset = piVar3;\n        if (psVar2 != (short *)0x0) {\n          if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }\n          return 1;\n        }\n        reg = fc->ncols;\n        message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5);\n      }\n      else {\n        message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" if (parenthesized_expression "(uVar1 < 0x401)" ( (binary_expression "uVar1 < 0x401" identifier < number_literal) )) (compound_statement "{\n        psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2);\n        fc->col_type = psVar2;\n        pvVar4 = (void *)fc->ncols;\n        if ((void *)0x3ffffffe < pvVar4) {\n          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);\n          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);\n          iVar5 = printf("%*s ",8,buf_11646);\n          return iVar5;\n        }\n        piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2);\n        psVar2 = fc->col_type;\n        fc->col_offset = piVar3;\n        if (psVar2 != (short *)0x0) {\n          if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }\n          return 1;\n        }\n        reg = fc->ncols;\n        message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5);\n      }" { (expression_statement "psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2);" (assignment_expression "psVar2 = (short *)xrealloc(fc->col_type,uVar1 * 2)" identifier = (cast_expression "(short *)xrealloc(fc->col_type,uVar1 * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(fc->col_type,uVar1 * 2)" identifier (argument_list "(fc->col_type,uVar1 * 2)" ( (field_expression "fc->col_type" identifier -> field_identifier) , (binary_expression "uVar1 * 2" identifier * number_literal) ))))) ;) (expression_statement "fc->col_type = psVar2;" (assignment_expression "fc->col_type = psVar2" (field_expression "fc->col_type" identifier -> field_identifier) = identifier) ;) (expression_statement "pvVar4 = (void *)fc->ncols;" (assignment_expression "pvVar4 = (void *)fc->ncols" identifier = (cast_expression "(void *)fc->ncols" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "fc->ncols" identifier -> field_identifier))) ;) (if_statement "if ((void *)0x3ffffffe < pvVar4) {\n          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);\n          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);\n          iVar5 = printf("%*s ",8,buf_11646);\n          return iVar5;\n        }" if (parenthesized_expression "((void *)0x3ffffffe < pvVar4)" ( (binary_expression "(void *)0x3ffffffe < pvVar4" (cast_expression "(void *)0x3ffffffe" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n          pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);\n          snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);\n          iVar5 = printf("%*s ",8,buf_11646);\n          return iVar5;\n        }" { (expression_statement "pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size);" (assignment_expression "pvVar4 = xcrealloc(pvVar4,(size_t)fc->col_offset,size)" identifier = (call_expression "xcrealloc(pvVar4,(size_t)fc->col_offset,size)" identifier (argument_list "(pvVar4,(size_t)fc->col_offset,size)" ( identifier , (cast_expression "(size_t)fc->col_offset" ( (type_descriptor "size_t" primitive_type) ) (field_expression "fc->col_offset" identifier -> field_identifier)) , identifier )))) ;) (expression_statement "snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6);" (call_expression "snprintf(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6)" identifier (argument_list "(buf_11646,0xf,"[%d]",pvVar4,0x1eae7,&_GLOBAL_OFFSET_TABLE_,uVar6)" ( identifier , number_literal , (string_literal ""[%d]"" " string_content ") , identifier , number_literal , (pointer_expression "&_GLOBAL_OFFSET_TABLE_" & identifier) , identifier ))) ;) (expression_statement "iVar5 = printf("%*s ",8,buf_11646);" (assignment_expression "iVar5 = printf("%*s ",8,buf_11646)" identifier = (call_expression "printf("%*s ",8,buf_11646)" identifier (argument_list "("%*s ",8,buf_11646)" ( (string_literal ""%*s "" " string_content ") , number_literal , identifier )))) ;) (return_statement "return iVar5;" return identifier ;) })) (expression_statement "piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2);" (assignment_expression "piVar3 = (int *)xrealloc(fc->col_offset,(int)pvVar4 << 2)" identifier = (cast_expression "(int *)xrealloc(fc->col_offset,(int)pvVar4 << 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(fc->col_offset,(int)pvVar4 << 2)" identifier (argument_list "(fc->col_offset,(int)pvVar4 << 2)" ( (field_expression "fc->col_offset" identifier -> field_identifier) , (binary_expression "(int)pvVar4 << 2" (cast_expression "(int)pvVar4" ( (type_descriptor "int" primitive_type) ) identifier) << number_literal) ))))) ;) (expression_statement "psVar2 = fc->col_type;" (assignment_expression "psVar2 = fc->col_type" identifier = (field_expression "fc->col_type" identifier -> field_identifier)) ;) (expression_statement "fc->col_offset = piVar3;" (assignment_expression "fc->col_offset = piVar3" (field_expression "fc->col_offset" identifier -> field_identifier) = identifier) ;) (if_statement "if (psVar2 != (short *)0x0) {\n          if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }\n          return 1;\n        }" if (parenthesized_expression "(psVar2 != (short *)0x0)" ( (binary_expression "psVar2 != (short *)0x0" identifier != (cast_expression "(short *)0x0" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }\n          return 1;\n        }" { (if_statement "if (uVar6 < fc->ncols) {\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }" if (parenthesized_expression "(uVar6 < fc->ncols)" ( (binary_expression "uVar6 < fc->ncols" identifier < (field_expression "fc->ncols" identifier -> field_identifier)) )) (compound_statement "{\n            do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);\n          }" { (do_statement "do {\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            } while (uVar6 < fc->ncols);" do (compound_statement "{\n              psVar2[uVar6] = -1;\n              piVar3[uVar6] = 0;\n              uVar6 = uVar6 + 1;\n            }" { (expression_statement "psVar2[uVar6] = -1;" (assignment_expression "psVar2[uVar6] = -1" (subscript_expression "psVar2[uVar6]" identifier [ identifier ]) = number_literal) ;) (expression_statement "piVar3[uVar6] = 0;" (assignment_expression "piVar3[uVar6] = 0" (subscript_expression "piVar3[uVar6]" identifier [ identifier ]) = number_literal) ;) (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar6 < fc->ncols)" ( (binary_expression "uVar6 < fc->ncols" identifier < (field_expression "fc->ncols" identifier -> field_identifier)) )) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "reg = fc->ncols;" (assignment_expression "reg = fc->ncols" identifier = (field_expression "fc->ncols" identifier -> field_identifier)) ;) (expression_statement "message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5);" (assignment_expression "message = (char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5)" identifier = (cast_expression "(char *)dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5)" identifier (argument_list "(0,"Out of memory allocating %u columns in dwarf frame arrays\n",\n                                    5)" ( number_literal , (string_literal ""Out of memory allocating %u columns in dwarf frame arrays\n"" " string_content escape_sequence ") , number_literal ))))) ;) }) (else_clause "else {\n        message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" else (compound_statement "{\n        message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" { (expression_statement "message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5);" (assignment_expression "message = (char *)dcgettext(0,"Unfeasibly large register number: %u\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Unfeasibly large register number: %u\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Unfeasibly large register number: %u\n",5)" identifier (argument_list "(0,"Unfeasibly large register number: %u\n",5)" ( number_literal , (string_literal ""Unfeasibly large register number: %u\n"" " string_content escape_sequence ") , number_literal ))))) ;) }))) (expression_statement "error(message,reg);" (call_expression "error(message,reg)" identifier (argument_list "(message,reg)" ( identifier , identifier ))) ;) (expression_statement "fc->ncols = 0;" (assignment_expression "fc->ncols = 0" (field_expression "fc->ncols" identifier -> field_identifier) = number_literal) ;) })) })) (return_statement "return -1;" return number_literal ;) })))
(translation_unit "int __regparm3 FUN_0001e9c0(int param_1,uint param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar5 = *(uint *)(param_1 + 8);\n  if (param_2 < uVar5) {\n    return 0;\n  }\n  if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }\n  return -1;\n}\n\n" (function_definition "int __regparm3 FUN_0001e9c0(int param_1,uint param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar5 = *(uint *)(param_1 + 8);\n  if (param_2 < uVar5) {\n    return 0;\n  }\n  if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }\n  return -1;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0001e9c0(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar5 = *(uint *)(param_1 + 8);\n  if (param_2 < uVar5) {\n    return 0;\n  }\n  if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }\n  return -1;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (expression_statement "uVar5 = *(uint *)(param_1 + 8);" (assignment_expression "uVar5 = *(uint *)(param_1 + 8)" identifier = (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (if_statement "if (param_2 < uVar5) {\n    return 0;\n  }" if (parenthesized_expression "(param_2 < uVar5)" ( (binary_expression "param_2 < uVar5" identifier < identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }" if (parenthesized_expression "((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0))" ( (binary_expression "(DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)" (parenthesized_expression "(DAT_000768b0 == 0)" ( (binary_expression "DAT_000768b0 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 <= DAT_000768b0)" ( (binary_expression "param_2 <= DAT_000768b0" identifier <= identifier) ))) )) (compound_statement "{\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }" { (expression_statement "uVar1 = param_2 + 1;" (assignment_expression "uVar1 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)(param_1 + 8) = uVar1;" (assignment_expression "*(uint *)(param_1 + 8) = uVar1" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }" if (parenthesized_expression "(uVar1 != 0)" ( (binary_expression "uVar1 != 0" identifier != number_literal) )) (compound_statement "{\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }" { (if_statement "if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" if (parenthesized_expression "(uVar1 < 0x401)" ( (binary_expression "uVar1 < 0x401" identifier < number_literal) )) (compound_statement "{\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }" { (expression_statement "uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);" (assignment_expression "uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2)" identifier = (call_expression "xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2)" identifier (argument_list "(*(undefined4 *)(param_1 + 0xc),uVar1 * 2)" ( (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) , (binary_expression "uVar1 * 2" identifier * number_literal) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0xc) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0xc) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0xc)" * (cast_expression "(undefined4 *)(param_1 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }" if (parenthesized_expression "(0x3ffffffe < *(uint *)(param_1 + 8))" ( (binary_expression "0x3ffffffe < *(uint *)(param_1 + 8)" number_literal < (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }" { (expression_statement "uVar2 = FUN_0001e980();" (assignment_expression "uVar2 = FUN_0001e980()" identifier = (call_expression "FUN_0001e980()" identifier (argument_list "()" ( )))) ;) (expression_statement "snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);" (call_expression "snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5)" identifier (argument_list "(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5)" ( (pointer_expression "&DAT_00074228" & identifier) , number_literal , (string_literal ""[%d]"" " string_content ") , identifier , number_literal , (pointer_expression "&__DT_PLTGOT" & identifier) , identifier ))) ;) (expression_statement "iVar4 = printf("%*s ",8,&DAT_00074228);" (assignment_expression "iVar4 = printf("%*s ",8,&DAT_00074228)" identifier = (call_expression "printf("%*s ",8,&DAT_00074228)" identifier (argument_list "("%*s ",8,&DAT_00074228)" ( (string_literal ""%*s "" " string_content ") , number_literal , (pointer_expression "&DAT_00074228" & identifier) )))) ;) (return_statement "return iVar4;" return identifier ;) })) (expression_statement "iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);" (assignment_expression "iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2)" identifier = (call_expression "xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x10)" * (cast_expression "(undefined4 *)(param_1 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , (binary_expression "*(uint *)(param_1 + 8) << 2" (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) << number_literal) )))) ;) (expression_statement "iVar4 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar4 = *(int *)(param_1 + 0xc)" identifier = (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(param_1 + 0x10) = iVar3;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar3" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }" { (if_statement "if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }" if (parenthesized_expression "(uVar5 < *(uint *)(param_1 + 8))" ( (binary_expression "uVar5 < *(uint *)(param_1 + 8)" identifier < (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }" { (do_statement "do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));" do (compound_statement "{\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            }" { (expression_statement "*(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;" (assignment_expression "*(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff" (pointer_expression "*(undefined2 *)(iVar4 + uVar5 * 2)" * (cast_expression "(undefined2 *)(iVar4 + uVar5 * 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + uVar5 * 2)" ( (binary_expression "iVar4 + uVar5 * 2" identifier + (binary_expression "uVar5 * 2" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar3 + uVar5 * 4) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + uVar5 * 4) = 0" (pointer_expression "*(undefined4 *)(iVar3 + uVar5 * 4)" * (cast_expression "(undefined4 *)(iVar3 + uVar5 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + uVar5 * 4)" ( (binary_expression "iVar3 + uVar5 * 4" identifier + (binary_expression "uVar5 * 4" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 < *(uint *)(param_1 + 8))" ( (binary_expression "uVar5 < *(uint *)(param_1 + 8)" identifier < (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) )) ;) })) (return_statement "return 1;" return number_literal ;) })) (expression_statement "param_2 = *(uint *)(param_1 + 8);" (assignment_expression "param_2 = *(uint *)(param_1 + 8)" identifier = (pointer_expression "*(uint *)(param_1 + 8)" * (cast_expression "(uint *)(param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);" (assignment_expression "uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5)" identifier = (call_expression "dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5)" identifier (argument_list "(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5)" ( number_literal , (string_literal ""Out of memory allocating %u columns in dwarf frame arrays\n"" " string_content escape_sequence ") , number_literal )))) ;) }) (else_clause "else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" else (compound_statement "{\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" { (expression_statement "uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);" (assignment_expression "uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5)" identifier = (call_expression "dcgettext(0,"Unfeasibly large register number: %u\n",5)" identifier (argument_list "(0,"Unfeasibly large register number: %u\n",5)" ( number_literal , (string_literal ""Unfeasibly large register number: %u\n"" " string_content escape_sequence ") , number_literal )))) ;) }))) (expression_statement "error(uVar2,param_2);" (call_expression "error(uVar2,param_2)" identifier (argument_list "(uVar2,param_2)" ( identifier , identifier ))) ;) (expression_statement "*(undefined4 *)(param_1 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) = number_literal) ;) })) })) (return_statement "return -1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE 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 < IDENT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , (string_literal " string_content ") , IDENT , LIT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (pointer_expression & IDENT) )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) })) (return_statement return LIT ;) })))
(function_definition "int __regparm3 FUN_0001e9c0(int param_1,uint param_2)\n\n{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar5 = *(uint *)(param_1 + 8);\n  if (param_2 < uVar5) {\n    return 0;\n  }\n  if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }\n  return -1;\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0001e9c0(int param_1,uint param_2)" (identifier "FUN_0001e9c0") (parameter_list "(int param_1,uint param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  uint uVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  uint uVar5;\n  \n  uVar5 = *(uint *)(param_1 + 8);\n  if (param_2 < uVar5) {\n    return 0;\n  }\n  if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }\n  return -1;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (expression_statement "uVar5 = *(uint *)(param_1 + 8);" (assignment_expression "uVar5 = *(uint *)(param_1 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (param_2 < uVar5) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_2 < uVar5)" (( "(") (binary_expression "param_2 < uVar5" (identifier "param_2") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }" (if "if") (parenthesized_expression "((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0))" (( "(") (binary_expression "(DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)" (parenthesized_expression "(DAT_000768b0 == 0)" (( "(") (binary_expression "DAT_000768b0 == 0" (identifier "DAT_000768b0") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_2 <= DAT_000768b0)" (( "(") (binary_expression "param_2 <= DAT_000768b0" (identifier "param_2") (<= "<=") (identifier "DAT_000768b0")) () ")"))) () ")")) (compound_statement "{\n    uVar1 = param_2 + 1;\n    *(uint *)(param_1 + 8) = uVar1;\n    if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }\n  }" ({ "{") (expression_statement "uVar1 = param_2 + 1;" (assignment_expression "uVar1 = param_2 + 1" (identifier "uVar1") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)(param_1 + 8) = uVar1;" (assignment_expression "*(uint *)(param_1 + 8) = uVar1" (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (if_statement "if (uVar1 != 0) {\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }" (if "if") (parenthesized_expression "(uVar1 != 0)" (( "(") (binary_expression "uVar1 != 0" (identifier "uVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }\n      error(uVar2,param_2);\n      *(undefined4 *)(param_1 + 8) = 0;\n    }" ({ "{") (if_statement "if (uVar1 < 0x401) {\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }\n      else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" (if "if") (parenthesized_expression "(uVar1 < 0x401)" (( "(") (binary_expression "uVar1 < 0x401" (identifier "uVar1") (< "<") (number_literal "0x401")) () ")")) (compound_statement "{\n        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);\n        *(undefined4 *)(param_1 + 0xc) = uVar2;\n        if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }\n        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);\n        iVar4 = *(int *)(param_1 + 0xc);\n        *(int *)(param_1 + 0x10) = iVar3;\n        if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }\n        param_2 = *(uint *)(param_1 + 8);\n        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);\n      }" ({ "{") (expression_statement "uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);" (assignment_expression "uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2)" (identifier "uVar2") (= "=") (call_expression "xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2)" (identifier "xrealloc") (argument_list "(*(undefined4 *)(param_1 + 0xc),uVar1 * 2)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (binary_expression "uVar1 * 2" (identifier "uVar1") (* "*") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0xc) = uVar2;" (assignment_expression "*(undefined4 *)(param_1 + 0xc) = uVar2" (pointer_expression "*(undefined4 *)(param_1 + 0xc)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (if_statement "if (0x3ffffffe < *(uint *)(param_1 + 8)) {\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }" (if "if") (parenthesized_expression "(0x3ffffffe < *(uint *)(param_1 + 8))" (( "(") (binary_expression "0x3ffffffe < *(uint *)(param_1 + 8)" (number_literal "0x3ffffffe") (< "<") (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n          uVar2 = FUN_0001e980();\n          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);\n          iVar4 = printf("%*s ",8,&DAT_00074228);\n          return iVar4;\n        }" ({ "{") (expression_statement "uVar2 = FUN_0001e980();" (assignment_expression "uVar2 = FUN_0001e980()" (identifier "uVar2") (= "=") (call_expression "FUN_0001e980()" (identifier "FUN_0001e980") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);" (call_expression "snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5)" (identifier "snprintf") (argument_list "(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5)" (( "(") (pointer_expression "&DAT_00074228" (& "&") (identifier "DAT_00074228")) (, ",") (number_literal "0xf") (, ",") (string_literal ""[%d]"" (" """) (string_content "[%d]") (" """)) (, ",") (identifier "uVar2") (, ",") (number_literal "0x1eae7") (, ",") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT")) (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "iVar4 = printf("%*s ",8,&DAT_00074228);" (assignment_expression "iVar4 = printf("%*s ",8,&DAT_00074228)" (identifier "iVar4") (= "=") (call_expression "printf("%*s ",8,&DAT_00074228)" (identifier "printf") (argument_list "("%*s ",8,&DAT_00074228)" (( "(") (string_literal ""%*s "" (" """) (string_content "%*s ") (" """)) (, ",") (number_literal "8") (, ",") (pointer_expression "&DAT_00074228" (& "&") (identifier "DAT_00074228")) () ")")))) (; ";")) (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}"))) (expression_statement "iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);" (assignment_expression "iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2)" (identifier "iVar3") (= "=") (call_expression "xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2)" (identifier "xrealloc") (argument_list "(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (binary_expression "*(uint *)(param_1 + 8) << 2" (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (<< "<<") (number_literal "2")) () ")")))) (; ";")) (expression_statement "iVar4 = *(int *)(param_1 + 0xc);" (assignment_expression "iVar4 = *(int *)(param_1 + 0xc)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(int *)(param_1 + 0x10) = iVar3;" (assignment_expression "*(int *)(param_1 + 0x10) = iVar3" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar4 != 0) {\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }" (if "if") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }\n          return 1;\n        }" ({ "{") (if_statement "if (uVar5 < *(uint *)(param_1 + 8)) {\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }" (if "if") (parenthesized_expression "(uVar5 < *(uint *)(param_1 + 8))" (( "(") (binary_expression "uVar5 < *(uint *)(param_1 + 8)" (identifier "uVar5") (< "<") (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n            do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));\n          }" ({ "{") (do_statement "do {\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            } while (uVar5 < *(uint *)(param_1 + 8));" (do "do") (compound_statement "{\n              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;\n              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;\n              uVar5 = uVar5 + 1;\n            }" ({ "{") (expression_statement "*(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;" (assignment_expression "*(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff" (pointer_expression "*(undefined2 *)(iVar4 + uVar5 * 2)" (* "*") (cast_expression "(undefined2 *)(iVar4 + uVar5 * 2)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + uVar5 * 2)" (( "(") (binary_expression "iVar4 + uVar5 * 2" (identifier "iVar4") (+ "+") (binary_expression "uVar5 * 2" (identifier "uVar5") (* "*") (number_literal "2"))) () ")")))) (= "=") (number_literal "0xffff")) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + uVar5 * 4) = 0;" (assignment_expression "*(undefined4 *)(iVar3 + uVar5 * 4) = 0" (pointer_expression "*(undefined4 *)(iVar3 + uVar5 * 4)" (* "*") (cast_expression "(undefined4 *)(iVar3 + uVar5 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + uVar5 * 4)" (( "(") (binary_expression "iVar3 + uVar5 * 4" (identifier "iVar3") (+ "+") (binary_expression "uVar5 * 4" (identifier "uVar5") (* "*") (number_literal "4"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 < *(uint *)(param_1 + 8))" (( "(") (binary_expression "uVar5 < *(uint *)(param_1 + 8)" (identifier "uVar5") (< "<") (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) () ")")) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "param_2 = *(uint *)(param_1 + 8);" (assignment_expression "param_2 = *(uint *)(param_1 + 8)" (identifier "param_2") (= "=") (pointer_expression "*(uint *)(param_1 + 8)" (* "*") (cast_expression "(uint *)(param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);" (assignment_expression "uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5)" (identifier "dcgettext") (argument_list "(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Out of memory allocating %u columns in dwarf frame arrays\n"" (" """) (string_content "Out of memory allocating %u columns in dwarf frame arrays") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" (else "else") (compound_statement "{\n        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);\n      }" ({ "{") (expression_statement "uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);" (assignment_expression "uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"Unfeasibly large register number: %u\n",5)" (identifier "dcgettext") (argument_list "(0,"Unfeasibly large register number: %u\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Unfeasibly large register number: %u\n"" (" """) (string_content "Unfeasibly large register number: %u") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")))) (expression_statement "error(uVar2,param_2);" (call_expression "error(uVar2,param_2)" (identifier "error") (argument_list "(uVar2,param_2)" (( "(") (identifier "uVar2") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 8) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 8) = 0" (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (return_statement "return -1;" (return "return") (number_literal "-1") (; ";")) (} "}")))

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

int __regparm3 function_1(type_1 *fc,type_2 var_1)

{
  type_2 var_4;
  short *var_10;
  int *piVar3;
  char *message;
  void *var_6;
  int iVar5;
  size_t size;
  type_2 var_2;
  
  var_2 = fc->ncols;
  if (var_1 < var_2) {
    return 0;
  }
  if ((var_3 == 0) || (var_1 <= var_3)) {
    var_4 = var_1 + 1;
    fc->ncols = var_4;
    if (var_4 != 0) {
      if (var_4 < 0x401) {
        var_10 = (short *)var_5(fc->col_type,var_4 * 2);
        fc->col_type = var_10;
        var_6 = (void *)fc->ncols;
        if ((void *)0x3ffffffe < var_6) {
          var_6 = var_7(var_6,(size_t)fc->col_offset,size);
          var_8(buf_11646,0xf,"[%d]",var_6,0x1eae7,&_GLOBAL_OFFSET_TABLE_,var_2);
          iVar5 = var_9("%*s ",8,buf_11646);
          return iVar5;
        }
        piVar3 = (int *)var_5(fc->col_offset,(int)var_6 << 2);
        var_10 = fc->col_type;
        fc->col_offset = piVar3;
        if (var_10 != (short *)0x0) {
          if (var_2 < fc->ncols) {
            do {
              var_10[var_2] = -1;
              piVar3[var_2] = 0;
              var_2 = var_2 + 1;
            } while (var_2 < fc->ncols);
          }
          return 1;
        }
        var_1 = fc->ncols;
        message = (char *)var_11(0,"Out of memory allocating %u columns in dwarf frame arrays\n",
                                    5);
      }
      else {
        message = (char *)var_11(0,"Unfeasibly large register number: %u\n",5);
      }
      var_12(message,var_1);
      fc->ncols = 0;
    }
  }
  return -1;
}


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

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

int __regparm3 MASKED(int param_1,uint param_2)

{
  uint uVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  
  uVar5 = *(uint *)(param_1 + 8);
  if (param_2 < uVar5) {
    return 0;
  }
  if ((DAT_000768b0 == 0) || (param_2 <= DAT_000768b0)) {
    uVar1 = param_2 + 1;
    *(uint *)(param_1 + 8) = uVar1;
    if (uVar1 != 0) {
      if (uVar1 < 0x401) {
        uVar2 = xrealloc(*(undefined4 *)(param_1 + 0xc),uVar1 * 2);
        *(undefined4 *)(param_1 + 0xc) = uVar2;
        if (0x3ffffffe < *(uint *)(param_1 + 8)) {
          uVar2 = FUN_0001e980();
          snprintf(&DAT_00074228,0xf,"[%d]",uVar2,0x1eae7,&__DT_PLTGOT,uVar5);
          iVar4 = printf("%*s ",8,&DAT_00074228);
          return iVar4;
        }
        iVar3 = xrealloc(*(undefined4 *)(param_1 + 0x10),*(uint *)(param_1 + 8) << 2);
        iVar4 = *(int *)(param_1 + 0xc);
        *(int *)(param_1 + 0x10) = iVar3;
        if (iVar4 != 0) {
          if (uVar5 < *(uint *)(param_1 + 8)) {
            do {
              *(undefined2 *)(iVar4 + uVar5 * 2) = 0xffff;
              *(undefined4 *)(iVar3 + uVar5 * 4) = 0;
              uVar5 = uVar5 + 1;
            } while (uVar5 < *(uint *)(param_1 + 8));
          }
          return 1;
        }
        param_2 = *(uint *)(param_1 + 8);
        uVar2 = dcgettext(0,"Out of memory allocating %u columns in dwarf frame arrays\n",5);
      }
      else {
        uVar2 = dcgettext(0,"Unfeasibly large register number: %u\n",5);
      }
      error(uVar2,param_2);
      *(undefined4 *)(param_1 + 8) = 0;
    }
  }
  return -1;
}

