
/* std::ostream& std::ostream::_M_insert<long long>(long long) */

ostream * std::ostream::_M_insert<long_long>(longlong param_1)

{
  int iVar1;
  ostream *in_a0;
  ostream *poVar2;
  int iVar3;
  int *piVar4;
  int *piVar5;
  undefined4 local_3c;
  undefined1 auStack_38 [4];
  char local_34;
  sentry local_30 [8];
  
  sentry::sentry(local_30,in_a0);
  if (local_30[0] != (sentry)0x0) {
    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);
    piVar4 = *(int **)(poVar2 + 0x80);
    if (piVar4 == (int *)0x0) {
      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();
      return poVar2;
    }
    iVar3 = *(int *)(poVar2 + 0x78);
    if (poVar2[0x75] == (ostream)0x0) {
      piVar5 = *(int **)(poVar2 + 0x7c);
      if (piVar5 == (int *)0x0) {
        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();
        return poVar2;
      }
      if (*(char *)(piVar5 + 7) == '\0') {
                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */
        (*(code *)PTR__M_widen_init_00433054)(piVar5);
        iVar1 = 0x20;
        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {
          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);
        }
      }
      else {
        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);
      }
      poVar2[0x74] = SUB41(iVar1,0);
      poVar2[0x75] = (ostream)0x1;
    }
    else {
      iVar1 = (int)(char)poVar2[0x74];
    }
    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);
                    /* try { // try from 002c7cc4 to 002c7ccb has its CatchHandler @ 002c7dac */
    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);
    if (local_34 != '\0') {
                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */
      (*(code *)PTR_clear_0043304c)
                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),
                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);
    }
  }
  sentry::~sentry(local_30);
  return in_a0;
}



/* std::ostream& std::ostream::_M_insert<long long>(long long) */

ostream * std::ostream::_M_insert<long_long>(longlong param_1)

{
  int iVar1;
  ostream *in_a0;
  ostream *poVar2;
  int iVar3;
  int *piVar4;
  int *piVar5;
  undefined4 local_3c;
  undefined1 auStack_38 [4];
  char local_34;
  sentry local_30 [8];
  
  sentry::sentry(local_30,in_a0);
  if (local_30[0] != (sentry)0x0) {
    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);
    piVar4 = *(int **)(poVar2 + 0x80);
    if (piVar4 == (int *)0x0) {
      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();
      return poVar2;
    }
    iVar3 = *(int *)(poVar2 + 0x78);
    if (poVar2[0x75] == (ostream)0x0) {
      piVar5 = *(int **)(poVar2 + 0x7c);
      if (piVar5 == (int *)0x0) {
        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();
        return poVar2;
      }
      if (*(char *)(piVar5 + 7) == '\0') {
                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */
        (*(code *)PTR__M_widen_init_00433054)(piVar5);
        iVar1 = 0x20;
        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {
          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);
        }
      }
      else {
        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);
      }
      poVar2[0x74] = SUB41(iVar1,0);
      poVar2[0x75] = (ostream)0x1;
    }
    else {
      iVar1 = (int)(char)poVar2[0x74];
    }
    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);
                    /* try { // try from 002c7cc4 to 002c7ccb has its CatchHandler @ 002c7dac */
    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);
    if (local_34 != '\0') {
                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */
      (*(code *)PTR_clear_0043304c)
                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),
                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);
    }
  }
  sentry::~sentry(local_30);
  return in_a0;
}


lui gp,0x17
addiu gp,gp,0x25cc
addu gp,gp,t9
addiu sp,sp,-0x68
lw t9,-0x42b4(gp)
or a1,a0,zero
sw s2,0x48(sp)
addiu s2,sp,0x38
sw gp,0x20(sp)
sw s5,0x54(sp)
or s5,a3,zero
sw s4,0x50(sp)
or s4,a2,zero
sw s1,0x44(sp)
or s1,a0,zero
sw ra,0x64(sp)
or a0,s2,zero
sw s8,0x60(sp)
sw s7,0x5c(sp)
sw s6,0x58(sp)
sw s3,0x4c(sp)
bal 0x002c6240
_sw s0,0x40(sp)
lbu v0,0x38(sp)
beq v0,zero,0x002c7cfc
_lw gp,0x20(sp)
lw v0,0x0(s1)
lw s0,-0xc(v0)
addu s0,s1,s0
lw s6,0x80(s0)
beq s6,zero,0x002c7d9c
_lw t9,-0x7180(gp)
lw s3,0x78(s0)
lbu v0,0x75(s0)
beq v0,zero,0x002c7d3c
_sltiu s7,s3,0x1
lb v0,0x74(s0)
lw v1,0x0(s6)
addiu a0,sp,0x30
sb s7,0x2c(sp)
or a2,s3,zero
sw s5,0x1c(sp)
or a1,s6,zero
sw s4,0x18(sp)
sw v0,0x14(sp)
sw s0,0x10(sp)
sw s3,0x28(sp)
lw t9,0x14(v1)
jalr t9
_lw a3,0x2c(sp)
lbu v0,0x34(sp)
beq v0,zero,0x002c7cfc
_lw gp,0x20(sp)
lw v0,0x0(s1)
lw t9,-0x7184(gp)
lw v0,-0xc(v0)
addu v0,s1,v0
or a0,v0,zero
lw a1,0x14(v0)
jalr t9
_ori a1,a1,0x1
lw gp,0x20(sp)
lw t9,-0x42b0(gp)
bal 0x002c62e0
_or a0,s2,zero
or v0,s1,zero
lw ra,0x64(sp)
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
lw s8,0x7c(s0)
beq s8,zero,0x002c7da4
_lw t9,-0x7180(gp)
lb v0,0x1c(s8)
beq v0,zero,0x002c7d68
_lw t9,-0x717c(gp)
lb v0,0x3d(s8)
li v1,0x1
sb v0,0x74(s0)
b 0x002c7c98
_sb v1,0x75(s0)
jalr t9
_or a0,s8,zero
lw gp,0x20(sp)
lw v1,0x0(s8)
lw v0,-0x7168(gp)
lw t9,0x18(v1)
beq t9,v0,0x002c7d58
_li v0,0x20
li a1,0x20
jalr t9
_or a0,s8,zero
b 0x002c7d5c
_li v1,0x1
jalr t9
_nop
jalr t9
_nop
(translation_unit "/* std::ostream& std::ostream::_M_insert<long long>(long long) */\n\nostream * std::ostream::_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 local_3c;\n  undefined1 auStack_38 [4];\n  char local_34;\n  sentry local_30 [8];\n  \n  sentry::sentry(local_30,in_a0);\n  if (local_30[0] != (sentry)0x0) {\n    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);\n    piVar4 = *(int **)(poVar2 + 0x80);\n    if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }\n    iVar3 = *(int *)(poVar2 + 0x78);\n    if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }\n    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);\n                    /* try { // try from 002c7cc4 to 002c7ccb has its CatchHandler @ 002c7dac */\n    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);\n    if (local_34 != '\0') {\n                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */\n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }\n  }\n  sentry::~sentry(local_30);\n  return in_a0;\n}\n\n" comment (ERROR "ostream * std::" (binary_expression "ostream * std" identifier * identifier) : :) (labeled_statement "ostream::_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2;" statement_identifier : (ERROR ":" :) (expression_statement "_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2;" (binary_expression "_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" (binary_expression "_M_insert<long_long" identifier < identifier) > (compound_literal_expression "(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" ( (type_descriptor "longlong" type_identifier) (ERROR "param_1" identifier) ) (initializer_list "{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" { (ERROR "int iVar1;\n  ostream *in_a0;" identifier identifier ; (binary_expression "ostream *in_a0" identifier * identifier) ;) (binary_expression "ostream *poVar2" identifier * identifier) }))) ;)) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined1 auStack_38 [4];" type_identifier (array_declarator "auStack_38 [4]" identifier [ number_literal ]) ;) (declaration "char local_34;" primitive_type identifier ;) (declaration "sentry local_30 [8];" type_identifier (array_declarator "local_30 [8]" identifier [ number_literal ]) ;) (labeled_statement "sentry::sentry(local_30,in_a0);" statement_identifier : (ERROR ":" :) (expression_statement "sentry(local_30,in_a0);" (call_expression "sentry(local_30,in_a0)" identifier (argument_list "(local_30,in_a0)" ( identifier , identifier ))) ;)) (if_statement "if (local_30[0] != (sentry)0x0) {\n    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);\n    piVar4 = *(int **)(poVar2 + 0x80);\n    if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }\n    iVar3 = *(int *)(poVar2 + 0x78);\n    if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }\n    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);\n                    /* try { // try from 002c7cc4 to 002c7ccb has its CatchHandler @ 002c7dac */\n    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);\n    if (local_34 != '\0') {\n                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */\n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }\n  }" if (parenthesized_expression "(local_30[0] != (sentry)0x0)" ( (binary_expression "local_30[0] != (sentry)0x0" (subscript_expression "local_30[0]" identifier [ number_literal ]) != (cast_expression "(sentry)0x0" ( (type_descriptor "sentry" type_identifier) ) number_literal)) )) (compound_statement "{\n    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);\n    piVar4 = *(int **)(poVar2 + 0x80);\n    if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }\n    iVar3 = *(int *)(poVar2 + 0x78);\n    if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }\n    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);\n                    /* try { // try from 002c7cc4 to 002c7ccb has its CatchHandler @ 002c7dac */\n    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);\n    if (local_34 != '\0') {\n                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */\n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }\n  }" { (expression_statement "poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);" (assignment_expression "poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier = (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" * (cast_expression "(int *)(*(int *)in_a0 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)in_a0 + -0xc)" ( (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" * (cast_expression "(int *)in_a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))))) ;) (expression_statement "piVar4 = *(int **)(poVar2 + 0x80);" (assignment_expression "piVar4 = *(int **)(poVar2 + 0x80)" identifier = (pointer_expression "*(int **)(poVar2 + 0x80)" * (cast_expression "(int **)(poVar2 + 0x80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(poVar2 + 0x80)" ( (binary_expression "poVar2 + 0x80" identifier + number_literal) ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }" { (expression_statement "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();" (assignment_expression "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" identifier = (cast_expression "(ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" ( (type_descriptor "ostream *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___throw_bad_cast_00433050)()" (parenthesized_expression "(*(code *)PTR___throw_bad_cast_00433050)" ( (pointer_expression "*(code *)PTR___throw_bad_cast_00433050" * (cast_expression "(code *)PTR___throw_bad_cast_00433050" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return poVar2;" return identifier ;) })) (expression_statement "iVar3 = *(int *)(poVar2 + 0x78);" (assignment_expression "iVar3 = *(int *)(poVar2 + 0x78)" identifier = (pointer_expression "*(int *)(poVar2 + 0x78)" * (cast_expression "(int *)(poVar2 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(poVar2 + 0x78)" ( (binary_expression "poVar2 + 0x78" identifier + number_literal) ))))) ;) (if_statement "if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }" if (parenthesized_expression "(poVar2[0x75] == (ostream)0x0)" ( (binary_expression "poVar2[0x75] == (ostream)0x0" (subscript_expression "poVar2[0x75]" identifier [ number_literal ]) == (cast_expression "(ostream)0x0" ( (type_descriptor "ostream" type_identifier) ) number_literal)) )) (compound_statement "{\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }" { (expression_statement "piVar5 = *(int **)(poVar2 + 0x7c);" (assignment_expression "piVar5 = *(int **)(poVar2 + 0x7c)" identifier = (pointer_expression "*(int **)(poVar2 + 0x7c)" * (cast_expression "(int **)(poVar2 + 0x7c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(poVar2 + 0x7c)" ( (binary_expression "poVar2 + 0x7c" identifier + number_literal) ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }" { (expression_statement "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();" (assignment_expression "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" identifier = (cast_expression "(ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" ( (type_descriptor "ostream *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___throw_bad_cast_00433050)()" (parenthesized_expression "(*(code *)PTR___throw_bad_cast_00433050)" ( (pointer_expression "*(code *)PTR___throw_bad_cast_00433050" * (cast_expression "(code *)PTR___throw_bad_cast_00433050" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return poVar2;" return identifier ;) })) (if_statement "if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" if (parenthesized_expression "(*(char *)(piVar5 + 7) == '\0')" ( (binary_expression "*(char *)(piVar5 + 7) == '\0'" (pointer_expression "*(char *)(piVar5 + 7)" * (cast_expression "(char *)(piVar5 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }" { comment (expression_statement "(*(code *)PTR__M_widen_init_00433054)(piVar5);" (call_expression "(*(code *)PTR__M_widen_init_00433054)(piVar5)" (parenthesized_expression "(*(code *)PTR__M_widen_init_00433054)" ( (pointer_expression "*(code *)PTR__M_widen_init_00433054" * (cast_expression "(code *)PTR__M_widen_init_00433054" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "iVar1 = 0x20;" (assignment_expression "iVar1 = 0x20" identifier = number_literal) ;) (if_statement "if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }" if (parenthesized_expression "(*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068)" ( (binary_expression "*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068" (pointer_expression "*(code **)(*piVar5 + 0x18)" * (cast_expression "(code **)(*piVar5 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x18)" ( (binary_expression "*piVar5 + 0x18" (pointer_expression "*piVar5" * identifier) + number_literal) )))) != (cast_expression "(code *)PTR_do_widen_00433068" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }" { (expression_statement "iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);" (assignment_expression "iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20)" identifier = (call_expression "(**(code **)(*piVar5 + 0x18))(piVar5,0x20)" (parenthesized_expression "(**(code **)(*piVar5 + 0x18))" ( (pointer_expression "**(code **)(*piVar5 + 0x18)" * (pointer_expression "*(code **)(*piVar5 + 0x18)" * (cast_expression "(code **)(*piVar5 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x18)" ( (binary_expression "*piVar5 + 0x18" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5,0x20)" ( identifier , number_literal )))) ;) })) }) (else_clause "else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" else (compound_statement "{\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" { (expression_statement "iVar1 = (int)*(char *)((int)piVar5 + 0x3d);" (assignment_expression "iVar1 = (int)*(char *)((int)piVar5 + 0x3d)" identifier = (cast_expression "(int)*(char *)((int)piVar5 + 0x3d)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((int)piVar5 + 0x3d)" * (cast_expression "(char *)((int)piVar5 + 0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 0x3d)" ( (binary_expression "(int)piVar5 + 0x3d" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }))) (expression_statement "poVar2[0x74] = SUB41(iVar1,0);" (assignment_expression "poVar2[0x74] = SUB41(iVar1,0)" (subscript_expression "poVar2[0x74]" identifier [ number_literal ]) = (call_expression "SUB41(iVar1,0)" identifier (argument_list "(iVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "poVar2[0x75] = (ostream)0x1;" (assignment_expression "poVar2[0x75] = (ostream)0x1" (subscript_expression "poVar2[0x75]" identifier [ number_literal ]) = (cast_expression "(ostream)0x1" ( (type_descriptor "ostream" type_identifier) ) number_literal)) ;) }) (else_clause "else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }" else (compound_statement "{\n      iVar1 = (int)(char)poVar2[0x74];\n    }" { (expression_statement "iVar1 = (int)(char)poVar2[0x74];" (assignment_expression "iVar1 = (int)(char)poVar2[0x74]" identifier = (cast_expression "(int)(char)poVar2[0x74]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)poVar2[0x74]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "poVar2[0x74]" identifier [ number_literal ])))) ;) }))) (expression_statement "local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);" (assignment_expression "local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_)" identifier = (call_expression "CONCAT13(iVar3 == 0,local_3c._1_3_)" identifier (argument_list "(iVar3 == 0,local_3c._1_3_)" ( (binary_expression "iVar3 == 0" identifier == number_literal) , (field_expression "local_3c._1_3_" identifier . field_identifier) )))) ;) comment (expression_statement "(**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);" (call_expression "(**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1)" (parenthesized_expression "(**(code **)(*piVar4 + 0x14))" ( (pointer_expression "**(code **)(*piVar4 + 0x14)" * (pointer_expression "*(code **)(*piVar4 + 0x14)" * (cast_expression "(code **)(*piVar4 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x14)" ( (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (local_34 != '\0') {\n                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */\n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }" if (parenthesized_expression "(local_34 != '\0')" ( (binary_expression "local_34 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */\n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }" { comment (expression_statement "(*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);" (call_expression "(*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1)" (parenthesized_expression "(*(code *)PTR_clear_0043304c)" ( (pointer_expression "*(code *)PTR_clear_0043304c" * (cast_expression "(code *)PTR_clear_0043304c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1)" ( (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" * (cast_expression "(int *)(*(int *)in_a0 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)in_a0 + -0xc)" ( (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" * (cast_expression "(int *)in_a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) , (binary_expression "*(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1" (pointer_expression "*(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" * (cast_expression "(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" ( (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14" (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" * (cast_expression "(int *)(*(int *)in_a0 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)in_a0 + -0xc)" ( (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" * (cast_expression "(int *)in_a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) + number_literal) )))) | number_literal) ))) ;) })) })) (labeled_statement "sentry::~sentry(local_30);" statement_identifier : (ERROR ":" :) (expression_statement "~sentry(local_30);" (unary_expression "~sentry(local_30)" ~ (call_expression "sentry(local_30)" identifier (argument_list "(local_30)" ( identifier )))) ;)) (return_statement "return in_a0;" return identifier ;) (ERROR "}" }))
(translation_unit "/* std::ostream& std::ostream::_M_insert<long long>(long long) */\n\nostream * std::ostream::_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 local_3c;\n  undefined1 auStack_38 [4];\n  char local_34;\n  sentry local_30 [8];\n  \n  sentry::sentry(local_30,in_a0);\n  if (local_30[0] != (sentry)0x0) {\n    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);\n    piVar4 = *(int **)(poVar2 + 0x80);\n    if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }\n    iVar3 = *(int *)(poVar2 + 0x78);\n    if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }\n    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);\n                    /* try { // try from 002c7cc4 to 002c7ccb has its CatchHandler @ 002c7dac */\n    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);\n    if (local_34 != '\0') {\n                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */\n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }\n  }\n  sentry::~sentry(local_30);\n  return in_a0;\n}\n\n" comment (ERROR "ostream * std::" (binary_expression "ostream * std" identifier * identifier) : :) (labeled_statement "ostream::_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2;" statement_identifier : (ERROR ":" :) (expression_statement "_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2;" (binary_expression "_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" (binary_expression "_M_insert<long_long" identifier < identifier) > (compound_literal_expression "(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" ( (type_descriptor "longlong" type_identifier) (ERROR "param_1" identifier) ) (initializer_list "{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" { (ERROR "int iVar1;\n  ostream *in_a0;" identifier identifier ; (binary_expression "ostream *in_a0" identifier * identifier) ;) (binary_expression "ostream *poVar2" identifier * identifier) }))) ;)) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined1 auStack_38 [4];" type_identifier (array_declarator "auStack_38 [4]" identifier [ number_literal ]) ;) (declaration "char local_34;" primitive_type identifier ;) (declaration "sentry local_30 [8];" type_identifier (array_declarator "local_30 [8]" identifier [ number_literal ]) ;) (labeled_statement "sentry::sentry(local_30,in_a0);" statement_identifier : (ERROR ":" :) (expression_statement "sentry(local_30,in_a0);" (call_expression "sentry(local_30,in_a0)" identifier (argument_list "(local_30,in_a0)" ( identifier , identifier ))) ;)) (if_statement "if (local_30[0] != (sentry)0x0) {\n    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);\n    piVar4 = *(int **)(poVar2 + 0x80);\n    if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }\n    iVar3 = *(int *)(poVar2 + 0x78);\n    if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }\n    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);\n                    /* try { // try from 002c7cc4 to 002c7ccb has its CatchHandler @ 002c7dac */\n    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);\n    if (local_34 != '\0') {\n                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */\n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }\n  }" if (parenthesized_expression "(local_30[0] != (sentry)0x0)" ( (binary_expression "local_30[0] != (sentry)0x0" (subscript_expression "local_30[0]" identifier [ number_literal ]) != (cast_expression "(sentry)0x0" ( (type_descriptor "sentry" type_identifier) ) number_literal)) )) (compound_statement "{\n    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);\n    piVar4 = *(int **)(poVar2 + 0x80);\n    if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }\n    iVar3 = *(int *)(poVar2 + 0x78);\n    if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }\n    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);\n                    /* try { // try from 002c7cc4 to 002c7ccb has its CatchHandler @ 002c7dac */\n    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);\n    if (local_34 != '\0') {\n                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */\n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }\n  }" { (expression_statement "poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);" (assignment_expression "poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier = (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" * (cast_expression "(int *)(*(int *)in_a0 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)in_a0 + -0xc)" ( (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" * (cast_expression "(int *)in_a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))))) ;) (expression_statement "piVar4 = *(int **)(poVar2 + 0x80);" (assignment_expression "piVar4 = *(int **)(poVar2 + 0x80)" identifier = (pointer_expression "*(int **)(poVar2 + 0x80)" * (cast_expression "(int **)(poVar2 + 0x80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(poVar2 + 0x80)" ( (binary_expression "poVar2 + 0x80" identifier + number_literal) ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }" { (expression_statement "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();" (assignment_expression "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" identifier = (cast_expression "(ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" ( (type_descriptor "ostream *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___throw_bad_cast_00433050)()" (parenthesized_expression "(*(code *)PTR___throw_bad_cast_00433050)" ( (pointer_expression "*(code *)PTR___throw_bad_cast_00433050" * (cast_expression "(code *)PTR___throw_bad_cast_00433050" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return poVar2;" return identifier ;) })) (expression_statement "iVar3 = *(int *)(poVar2 + 0x78);" (assignment_expression "iVar3 = *(int *)(poVar2 + 0x78)" identifier = (pointer_expression "*(int *)(poVar2 + 0x78)" * (cast_expression "(int *)(poVar2 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(poVar2 + 0x78)" ( (binary_expression "poVar2 + 0x78" identifier + number_literal) ))))) ;) (if_statement "if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }" if (parenthesized_expression "(poVar2[0x75] == (ostream)0x0)" ( (binary_expression "poVar2[0x75] == (ostream)0x0" (subscript_expression "poVar2[0x75]" identifier [ number_literal ]) == (cast_expression "(ostream)0x0" ( (type_descriptor "ostream" type_identifier) ) number_literal)) )) (compound_statement "{\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }" { (expression_statement "piVar5 = *(int **)(poVar2 + 0x7c);" (assignment_expression "piVar5 = *(int **)(poVar2 + 0x7c)" identifier = (pointer_expression "*(int **)(poVar2 + 0x7c)" * (cast_expression "(int **)(poVar2 + 0x7c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(poVar2 + 0x7c)" ( (binary_expression "poVar2 + 0x7c" identifier + number_literal) ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }" { (expression_statement "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();" (assignment_expression "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" identifier = (cast_expression "(ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" ( (type_descriptor "ostream *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___throw_bad_cast_00433050)()" (parenthesized_expression "(*(code *)PTR___throw_bad_cast_00433050)" ( (pointer_expression "*(code *)PTR___throw_bad_cast_00433050" * (cast_expression "(code *)PTR___throw_bad_cast_00433050" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return poVar2;" return identifier ;) })) (if_statement "if (*(char *)(piVar5 + 7) == '\0') {\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" if (parenthesized_expression "(*(char *)(piVar5 + 7) == '\0')" ( (binary_expression "*(char *)(piVar5 + 7) == '\0'" (pointer_expression "*(char *)(piVar5 + 7)" * (cast_expression "(char *)(piVar5 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */\n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }" { comment (expression_statement "(*(code *)PTR__M_widen_init_00433054)(piVar5);" (call_expression "(*(code *)PTR__M_widen_init_00433054)(piVar5)" (parenthesized_expression "(*(code *)PTR__M_widen_init_00433054)" ( (pointer_expression "*(code *)PTR__M_widen_init_00433054" * (cast_expression "(code *)PTR__M_widen_init_00433054" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "iVar1 = 0x20;" (assignment_expression "iVar1 = 0x20" identifier = number_literal) ;) (if_statement "if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }" if (parenthesized_expression "(*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068)" ( (binary_expression "*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068" (pointer_expression "*(code **)(*piVar5 + 0x18)" * (cast_expression "(code **)(*piVar5 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x18)" ( (binary_expression "*piVar5 + 0x18" (pointer_expression "*piVar5" * identifier) + number_literal) )))) != (cast_expression "(code *)PTR_do_widen_00433068" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }" { (expression_statement "iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);" (assignment_expression "iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20)" identifier = (call_expression "(**(code **)(*piVar5 + 0x18))(piVar5,0x20)" (parenthesized_expression "(**(code **)(*piVar5 + 0x18))" ( (pointer_expression "**(code **)(*piVar5 + 0x18)" * (pointer_expression "*(code **)(*piVar5 + 0x18)" * (cast_expression "(code **)(*piVar5 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x18)" ( (binary_expression "*piVar5 + 0x18" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5,0x20)" ( identifier , number_literal )))) ;) })) }) (else_clause "else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" else (compound_statement "{\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" { (expression_statement "iVar1 = (int)*(char *)((int)piVar5 + 0x3d);" (assignment_expression "iVar1 = (int)*(char *)((int)piVar5 + 0x3d)" identifier = (cast_expression "(int)*(char *)((int)piVar5 + 0x3d)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((int)piVar5 + 0x3d)" * (cast_expression "(char *)((int)piVar5 + 0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 0x3d)" ( (binary_expression "(int)piVar5 + 0x3d" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }))) (expression_statement "poVar2[0x74] = SUB41(iVar1,0);" (assignment_expression "poVar2[0x74] = SUB41(iVar1,0)" (subscript_expression "poVar2[0x74]" identifier [ number_literal ]) = (call_expression "SUB41(iVar1,0)" identifier (argument_list "(iVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "poVar2[0x75] = (ostream)0x1;" (assignment_expression "poVar2[0x75] = (ostream)0x1" (subscript_expression "poVar2[0x75]" identifier [ number_literal ]) = (cast_expression "(ostream)0x1" ( (type_descriptor "ostream" type_identifier) ) number_literal)) ;) }) (else_clause "else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }" else (compound_statement "{\n      iVar1 = (int)(char)poVar2[0x74];\n    }" { (expression_statement "iVar1 = (int)(char)poVar2[0x74];" (assignment_expression "iVar1 = (int)(char)poVar2[0x74]" identifier = (cast_expression "(int)(char)poVar2[0x74]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)poVar2[0x74]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "poVar2[0x74]" identifier [ number_literal ])))) ;) }))) (expression_statement "local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);" (assignment_expression "local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_)" identifier = (call_expression "CONCAT13(iVar3 == 0,local_3c._1_3_)" identifier (argument_list "(iVar3 == 0,local_3c._1_3_)" ( (binary_expression "iVar3 == 0" identifier == number_literal) , (field_expression "local_3c._1_3_" identifier . field_identifier) )))) ;) comment (expression_statement "(**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);" (call_expression "(**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1)" (parenthesized_expression "(**(code **)(*piVar4 + 0x14))" ( (pointer_expression "**(code **)(*piVar4 + 0x14)" * (pointer_expression "*(code **)(*piVar4 + 0x14)" * (cast_expression "(code **)(*piVar4 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x14)" ( (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (local_34 != '\0') {\n                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */\n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }" if (parenthesized_expression "(local_34 != '\0')" ( (binary_expression "local_34 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */\n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }" { comment (expression_statement "(*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);" (call_expression "(*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1)" (parenthesized_expression "(*(code *)PTR_clear_0043304c)" ( (pointer_expression "*(code *)PTR_clear_0043304c" * (cast_expression "(code *)PTR_clear_0043304c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1)" ( (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" * (cast_expression "(int *)(*(int *)in_a0 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)in_a0 + -0xc)" ( (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" * (cast_expression "(int *)in_a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) , (binary_expression "*(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1" (pointer_expression "*(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" * (cast_expression "(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" ( (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14" (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" * (cast_expression "(int *)(*(int *)in_a0 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)in_a0 + -0xc)" ( (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" * (cast_expression "(int *)in_a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) + number_literal) )))) | number_literal) ))) ;) })) })) (labeled_statement "sentry::~sentry(local_30);" statement_identifier : (ERROR ":" :) (expression_statement "~sentry(local_30);" (unary_expression "~sentry(local_30)" ~ (call_expression "sentry(local_30)" identifier (argument_list "(local_30)" ( identifier )))) ;)) (return_statement "return in_a0;" return identifier ;) (ERROR "}" }))
(translation_unit "ostream * std::ostream::_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 local_3c;\n  undefined1 auStack_38 [4];\n  char local_34;\n  sentry local_30 [8];\n  \n  sentry::sentry(local_30,in_a0);\n  if (local_30[0] != (sentry)0x0) {\n    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);\n    piVar4 = *(int **)(poVar2 + 0x80);\n    if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }\n    iVar3 = *(int *)(poVar2 + 0x78);\n    if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }\n    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);\n                    \n    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);\n    if (local_34 != '\0') {\n                    \n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }\n  }\n  sentry::~sentry(local_30);\n  return in_a0;\n}\n\n" (ERROR "ostream * std::" (binary_expression "ostream * std" identifier * identifier) : :) (labeled_statement "ostream::_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2;" statement_identifier : (ERROR ":" :) (expression_statement "_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2;" (binary_expression "_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" (binary_expression "_M_insert<long_long" identifier < identifier) > (compound_literal_expression "(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" ( (type_descriptor "longlong" type_identifier) (ERROR "param_1" identifier) ) (initializer_list "{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" { (ERROR "int iVar1;\n  ostream *in_a0;" identifier identifier ; (binary_expression "ostream *in_a0" identifier * identifier) ;) (binary_expression "ostream *poVar2" identifier * identifier) }))) ;)) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined1 auStack_38 [4];" type_identifier (array_declarator "auStack_38 [4]" identifier [ number_literal ]) ;) (declaration "char local_34;" primitive_type identifier ;) (declaration "sentry local_30 [8];" type_identifier (array_declarator "local_30 [8]" identifier [ number_literal ]) ;) (labeled_statement "sentry::sentry(local_30,in_a0);" statement_identifier : (ERROR ":" :) (expression_statement "sentry(local_30,in_a0);" (call_expression "sentry(local_30,in_a0)" identifier (argument_list "(local_30,in_a0)" ( identifier , identifier ))) ;)) (if_statement "if (local_30[0] != (sentry)0x0) {\n    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);\n    piVar4 = *(int **)(poVar2 + 0x80);\n    if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }\n    iVar3 = *(int *)(poVar2 + 0x78);\n    if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }\n    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);\n                    \n    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);\n    if (local_34 != '\0') {\n                    \n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }\n  }" if (parenthesized_expression "(local_30[0] != (sentry)0x0)" ( (binary_expression "local_30[0] != (sentry)0x0" (subscript_expression "local_30[0]" identifier [ number_literal ]) != (cast_expression "(sentry)0x0" ( (type_descriptor "sentry" type_identifier) ) number_literal)) )) (compound_statement "{\n    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);\n    piVar4 = *(int **)(poVar2 + 0x80);\n    if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }\n    iVar3 = *(int *)(poVar2 + 0x78);\n    if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }\n    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);\n                    \n    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);\n    if (local_34 != '\0') {\n                    \n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }\n  }" { (expression_statement "poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);" (assignment_expression "poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier = (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" * (cast_expression "(int *)(*(int *)in_a0 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)in_a0 + -0xc)" ( (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" * (cast_expression "(int *)in_a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))))) ;) (expression_statement "piVar4 = *(int **)(poVar2 + 0x80);" (assignment_expression "piVar4 = *(int **)(poVar2 + 0x80)" identifier = (pointer_expression "*(int **)(poVar2 + 0x80)" * (cast_expression "(int **)(poVar2 + 0x80)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(poVar2 + 0x80)" ( (binary_expression "poVar2 + 0x80" identifier + number_literal) ))))) ;) (if_statement "if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }" if (parenthesized_expression "(piVar4 == (int *)0x0)" ( (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }" { (expression_statement "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();" (assignment_expression "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" identifier = (cast_expression "(ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" ( (type_descriptor "ostream *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___throw_bad_cast_00433050)()" (parenthesized_expression "(*(code *)PTR___throw_bad_cast_00433050)" ( (pointer_expression "*(code *)PTR___throw_bad_cast_00433050" * (cast_expression "(code *)PTR___throw_bad_cast_00433050" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return poVar2;" return identifier ;) })) (expression_statement "iVar3 = *(int *)(poVar2 + 0x78);" (assignment_expression "iVar3 = *(int *)(poVar2 + 0x78)" identifier = (pointer_expression "*(int *)(poVar2 + 0x78)" * (cast_expression "(int *)(poVar2 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(poVar2 + 0x78)" ( (binary_expression "poVar2 + 0x78" identifier + number_literal) ))))) ;) (if_statement "if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }" if (parenthesized_expression "(poVar2[0x75] == (ostream)0x0)" ( (binary_expression "poVar2[0x75] == (ostream)0x0" (subscript_expression "poVar2[0x75]" identifier [ number_literal ]) == (cast_expression "(ostream)0x0" ( (type_descriptor "ostream" type_identifier) ) number_literal)) )) (compound_statement "{\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }" { (expression_statement "piVar5 = *(int **)(poVar2 + 0x7c);" (assignment_expression "piVar5 = *(int **)(poVar2 + 0x7c)" identifier = (pointer_expression "*(int **)(poVar2 + 0x7c)" * (cast_expression "(int **)(poVar2 + 0x7c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(poVar2 + 0x7c)" ( (binary_expression "poVar2 + 0x7c" identifier + number_literal) ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }" { (expression_statement "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();" (assignment_expression "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" identifier = (cast_expression "(ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" ( (type_descriptor "ostream *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___throw_bad_cast_00433050)()" (parenthesized_expression "(*(code *)PTR___throw_bad_cast_00433050)" ( (pointer_expression "*(code *)PTR___throw_bad_cast_00433050" * (cast_expression "(code *)PTR___throw_bad_cast_00433050" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (return_statement "return poVar2;" return identifier ;) })) (if_statement "if (*(char *)(piVar5 + 7) == '\0') {\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" if (parenthesized_expression "(*(char *)(piVar5 + 7) == '\0')" ( (binary_expression "*(char *)(piVar5 + 7) == '\0'" (pointer_expression "*(char *)(piVar5 + 7)" * (cast_expression "(char *)(piVar5 + 7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }" { (expression_statement "(*(code *)PTR__M_widen_init_00433054)(piVar5);" (call_expression "(*(code *)PTR__M_widen_init_00433054)(piVar5)" (parenthesized_expression "(*(code *)PTR__M_widen_init_00433054)" ( (pointer_expression "*(code *)PTR__M_widen_init_00433054" * (cast_expression "(code *)PTR__M_widen_init_00433054" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar5)" ( identifier ))) ;) (expression_statement "iVar1 = 0x20;" (assignment_expression "iVar1 = 0x20" identifier = number_literal) ;) (if_statement "if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }" if (parenthesized_expression "(*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068)" ( (binary_expression "*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068" (pointer_expression "*(code **)(*piVar5 + 0x18)" * (cast_expression "(code **)(*piVar5 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x18)" ( (binary_expression "*piVar5 + 0x18" (pointer_expression "*piVar5" * identifier) + number_literal) )))) != (cast_expression "(code *)PTR_do_widen_00433068" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }" { (expression_statement "iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);" (assignment_expression "iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20)" identifier = (call_expression "(**(code **)(*piVar5 + 0x18))(piVar5,0x20)" (parenthesized_expression "(**(code **)(*piVar5 + 0x18))" ( (pointer_expression "**(code **)(*piVar5 + 0x18)" * (pointer_expression "*(code **)(*piVar5 + 0x18)" * (cast_expression "(code **)(*piVar5 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x18)" ( (binary_expression "*piVar5 + 0x18" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5,0x20)" ( identifier , number_literal )))) ;) })) }) (else_clause "else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" else (compound_statement "{\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" { (expression_statement "iVar1 = (int)*(char *)((int)piVar5 + 0x3d);" (assignment_expression "iVar1 = (int)*(char *)((int)piVar5 + 0x3d)" identifier = (cast_expression "(int)*(char *)((int)piVar5 + 0x3d)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)((int)piVar5 + 0x3d)" * (cast_expression "(char *)((int)piVar5 + 0x3d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar5 + 0x3d)" ( (binary_expression "(int)piVar5 + 0x3d" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }))) (expression_statement "poVar2[0x74] = SUB41(iVar1,0);" (assignment_expression "poVar2[0x74] = SUB41(iVar1,0)" (subscript_expression "poVar2[0x74]" identifier [ number_literal ]) = (call_expression "SUB41(iVar1,0)" identifier (argument_list "(iVar1,0)" ( identifier , number_literal )))) ;) (expression_statement "poVar2[0x75] = (ostream)0x1;" (assignment_expression "poVar2[0x75] = (ostream)0x1" (subscript_expression "poVar2[0x75]" identifier [ number_literal ]) = (cast_expression "(ostream)0x1" ( (type_descriptor "ostream" type_identifier) ) number_literal)) ;) }) (else_clause "else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }" else (compound_statement "{\n      iVar1 = (int)(char)poVar2[0x74];\n    }" { (expression_statement "iVar1 = (int)(char)poVar2[0x74];" (assignment_expression "iVar1 = (int)(char)poVar2[0x74]" identifier = (cast_expression "(int)(char)poVar2[0x74]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)poVar2[0x74]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "poVar2[0x74]" identifier [ number_literal ])))) ;) }))) (expression_statement "local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);" (assignment_expression "local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_)" identifier = (call_expression "CONCAT13(iVar3 == 0,local_3c._1_3_)" identifier (argument_list "(iVar3 == 0,local_3c._1_3_)" ( (binary_expression "iVar3 == 0" identifier == number_literal) , (field_expression "local_3c._1_3_" identifier . field_identifier) )))) ;) (expression_statement "(**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);" (call_expression "(**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1)" (parenthesized_expression "(**(code **)(*piVar4 + 0x14))" ( (pointer_expression "**(code **)(*piVar4 + 0x14)" * (pointer_expression "*(code **)(*piVar4 + 0x14)" * (cast_expression "(code **)(*piVar4 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar4 + 0x14)" ( (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" * identifier) + number_literal) ))))) )) (argument_list "(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (local_34 != '\0') {\n                    \n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }" if (parenthesized_expression "(local_34 != '\0')" ( (binary_expression "local_34 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    \n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }" { (expression_statement "(*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);" (call_expression "(*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1)" (parenthesized_expression "(*(code *)PTR_clear_0043304c)" ( (pointer_expression "*(code *)PTR_clear_0043304c" * (cast_expression "(code *)PTR_clear_0043304c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1)" ( (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" * (cast_expression "(int *)(*(int *)in_a0 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)in_a0 + -0xc)" ( (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" * (cast_expression "(int *)in_a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) , (binary_expression "*(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1" (pointer_expression "*(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" * (cast_expression "(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" ( (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14" (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" * (cast_expression "(int *)(*(int *)in_a0 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)in_a0 + -0xc)" ( (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" * (cast_expression "(int *)in_a0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) + number_literal) )))) | number_literal) ))) ;) })) })) (labeled_statement "sentry::~sentry(local_30);" statement_identifier : (ERROR ":" :) (expression_statement "~sentry(local_30);" (unary_expression "~sentry(local_30)" ~ (call_expression "sentry(local_30)" identifier (argument_list "(local_30)" ( identifier )))) ;)) (return_statement "return in_a0;" return identifier ;) (ERROR "}" }))
(translation_unit (ERROR (binary_expression IDENT * IDENT) : :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (binary_expression (binary_expression IDENT < IDENT) > (compound_literal_expression ( (type_descriptor TYPE) (ERROR IDENT) ) (initializer_list { (ERROR IDENT IDENT ; (binary_expression IDENT * IDENT) ;) (binary_expression IDENT * IDENT) }))) ;)) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (return_statement return 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 (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT == LIT) , (field_expression IDENT . field_identifier) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) + LIT) )))) | LIT) ))) ;) })) })) (labeled_statement statement_identifier : (ERROR :) (expression_statement (unary_expression ~ (call_expression IDENT (argument_list ( IDENT )))) ;)) (return_statement return IDENT ;) (ERROR }))
(ERROR "ostream * std::" (binary_expression "ostream * std" (identifier "ostream") (* "*") (identifier "std")) (: ":") (: ":")) (labeled_statement "ostream::_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2;" (statement_identifier "ostream") (: ":") (ERROR ":" (: ":")) (expression_statement "_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2;" (binary_expression "_M_insert<long_long>(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" (binary_expression "_M_insert<long_long" (identifier "_M_insert") (< "<") (identifier "long_long")) (> ">") (compound_literal_expression "(longlong param_1)\n\n{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) (ERROR "param_1" (identifier "param_1")) () ")") (initializer_list "{\n  int iVar1;\n  ostream *in_a0;\n  ostream *poVar2" ({ "{") (ERROR "int iVar1;\n  ostream *in_a0;" (identifier "int") (identifier "iVar1") (; ";") (binary_expression "ostream *in_a0" (identifier "ostream") (* "*") (identifier "in_a0")) (; ";")) (binary_expression "ostream *poVar2" (identifier "ostream") (* "*") (identifier "poVar2")) (} "")))) (; ";"))) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined1 auStack_38 [4];" (type_identifier "undefined1") (array_declarator "auStack_38 [4]" (identifier "auStack_38") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "char local_34;" (primitive_type "char") (identifier "local_34") (; ";")) (declaration "sentry local_30 [8];" (type_identifier "sentry") (array_declarator "local_30 [8]" (identifier "local_30") ([ "[") (number_literal "8") (] "]")) (; ";")) (labeled_statement "sentry::sentry(local_30,in_a0);" (statement_identifier "sentry") (: ":") (ERROR ":" (: ":")) (expression_statement "sentry(local_30,in_a0);" (call_expression "sentry(local_30,in_a0)" (identifier "sentry") (argument_list "(local_30,in_a0)" (( "(") (identifier "local_30") (, ",") (identifier "in_a0") () ")"))) (; ";"))) (if_statement "if (local_30[0] != (sentry)0x0) {\n    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);\n    piVar4 = *(int **)(poVar2 + 0x80);\n    if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }\n    iVar3 = *(int *)(poVar2 + 0x78);\n    if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }\n    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);\n                    \n    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);\n    if (local_34 != '\0') {\n                    \n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }\n  }" (if "if") (parenthesized_expression "(local_30[0] != (sentry)0x0)" (( "(") (binary_expression "local_30[0] != (sentry)0x0" (subscript_expression "local_30[0]" (identifier "local_30") ([ "[") (number_literal "0") (] "]")) (!= "!=") (cast_expression "(sentry)0x0" (( "(") (type_descriptor "sentry" (type_identifier "sentry")) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);\n    piVar4 = *(int **)(poVar2 + 0x80);\n    if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }\n    iVar3 = *(int *)(poVar2 + 0x78);\n    if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }\n    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);\n                    \n    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);\n    if (local_34 != '\0') {\n                    \n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }\n  }" ({ "{") (expression_statement "poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);" (assignment_expression "poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc)" (identifier "poVar2") (= "=") (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" (identifier "in_a0") (+ "+") (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" (* "*") (cast_expression "(int *)(*(int *)in_a0 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)in_a0 + -0xc)" (( "(") (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" (* "*") (cast_expression "(int *)in_a0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "in_a0"))) (+ "+") (number_literal "-0xc")) () ")")))))) (; ";")) (expression_statement "piVar4 = *(int **)(poVar2 + 0x80);" (assignment_expression "piVar4 = *(int **)(poVar2 + 0x80)" (identifier "piVar4") (= "=") (pointer_expression "*(int **)(poVar2 + 0x80)" (* "*") (cast_expression "(int **)(poVar2 + 0x80)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(poVar2 + 0x80)" (( "(") (binary_expression "poVar2 + 0x80" (identifier "poVar2") (+ "+") (number_literal "0x80")) () ")"))))) (; ";")) (if_statement "if (piVar4 == (int *)0x0) {\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }" (if "if") (parenthesized_expression "(piVar4 == (int *)0x0)" (( "(") (binary_expression "piVar4 == (int *)0x0" (identifier "piVar4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n      return poVar2;\n    }" ({ "{") (expression_statement "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();" (assignment_expression "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" (identifier "poVar2") (= "=") (cast_expression "(ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" (( "(") (type_descriptor "ostream *" (type_identifier "ostream") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___throw_bad_cast_00433050)()" (parenthesized_expression "(*(code *)PTR___throw_bad_cast_00433050)" (( "(") (pointer_expression "*(code *)PTR___throw_bad_cast_00433050" (* "*") (cast_expression "(code *)PTR___throw_bad_cast_00433050" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___throw_bad_cast_00433050"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return poVar2;" (return "return") (identifier "poVar2") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)(poVar2 + 0x78);" (assignment_expression "iVar3 = *(int *)(poVar2 + 0x78)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(poVar2 + 0x78)" (* "*") (cast_expression "(int *)(poVar2 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(poVar2 + 0x78)" (( "(") (binary_expression "poVar2 + 0x78" (identifier "poVar2") (+ "+") (number_literal "0x78")) () ")"))))) (; ";")) (if_statement "if (poVar2[0x75] == (ostream)0x0) {\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }\n    else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }" (if "if") (parenthesized_expression "(poVar2[0x75] == (ostream)0x0)" (( "(") (binary_expression "poVar2[0x75] == (ostream)0x0" (subscript_expression "poVar2[0x75]" (identifier "poVar2") ([ "[") (number_literal "0x75") (] "]")) (== "==") (cast_expression "(ostream)0x0" (( "(") (type_descriptor "ostream" (type_identifier "ostream")) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      piVar5 = *(int **)(poVar2 + 0x7c);\n      if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }\n      if (*(char *)(piVar5 + 7) == '\0') {\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }\n      poVar2[0x74] = SUB41(iVar1,0);\n      poVar2[0x75] = (ostream)0x1;\n    }" ({ "{") (expression_statement "piVar5 = *(int **)(poVar2 + 0x7c);" (assignment_expression "piVar5 = *(int **)(poVar2 + 0x7c)" (identifier "piVar5") (= "=") (pointer_expression "*(int **)(poVar2 + 0x7c)" (* "*") (cast_expression "(int **)(poVar2 + 0x7c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(poVar2 + 0x7c)" (( "(") (binary_expression "poVar2 + 0x7c" (identifier "poVar2") (+ "+") (number_literal "0x7c")) () ")"))))) (; ";")) (if_statement "if (piVar5 == (int *)0x0) {\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();\n        return poVar2;\n      }" ({ "{") (expression_statement "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();" (assignment_expression "poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" (identifier "poVar2") (= "=") (cast_expression "(ostream *)(*(code *)PTR___throw_bad_cast_00433050)()" (( "(") (type_descriptor "ostream *" (type_identifier "ostream") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___throw_bad_cast_00433050)()" (parenthesized_expression "(*(code *)PTR___throw_bad_cast_00433050)" (( "(") (pointer_expression "*(code *)PTR___throw_bad_cast_00433050" (* "*") (cast_expression "(code *)PTR___throw_bad_cast_00433050" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___throw_bad_cast_00433050"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (return_statement "return poVar2;" (return "return") (identifier "poVar2") (; ";")) (} "}"))) (if_statement "if (*(char *)(piVar5 + 7) == '\0') {\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }\n      else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" (if "if") (parenthesized_expression "(*(char *)(piVar5 + 7) == '\0')" (( "(") (binary_expression "*(char *)(piVar5 + 7) == '\0'" (pointer_expression "*(char *)(piVar5 + 7)" (* "*") (cast_expression "(char *)(piVar5 + 7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n        (*(code *)PTR__M_widen_init_00433054)(piVar5);\n        iVar1 = 0x20;\n        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }\n      }" ({ "{") (expression_statement "(*(code *)PTR__M_widen_init_00433054)(piVar5);" (call_expression "(*(code *)PTR__M_widen_init_00433054)(piVar5)" (parenthesized_expression "(*(code *)PTR__M_widen_init_00433054)" (( "(") (pointer_expression "*(code *)PTR__M_widen_init_00433054" (* "*") (cast_expression "(code *)PTR__M_widen_init_00433054" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_widen_init_00433054"))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")"))) (; ";")) (expression_statement "iVar1 = 0x20;" (assignment_expression "iVar1 = 0x20" (identifier "iVar1") (= "=") (number_literal "0x20")) (; ";")) (if_statement "if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }" (if "if") (parenthesized_expression "(*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068)" (( "(") (binary_expression "*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068" (pointer_expression "*(code **)(*piVar5 + 0x18)" (* "*") (cast_expression "(code **)(*piVar5 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x18)" (( "(") (binary_expression "*piVar5 + 0x18" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (cast_expression "(code *)PTR_do_widen_00433068" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_do_widen_00433068"))) () ")")) (compound_statement "{\n          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);\n        }" ({ "{") (expression_statement "iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);" (assignment_expression "iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(*piVar5 + 0x18))(piVar5,0x20)" (parenthesized_expression "(**(code **)(*piVar5 + 0x18))" (( "(") (pointer_expression "**(code **)(*piVar5 + 0x18)" (* "*") (pointer_expression "*(code **)(*piVar5 + 0x18)" (* "*") (cast_expression "(code **)(*piVar5 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x18)" (( "(") (binary_expression "*piVar5 + 0x18" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(piVar5,0x20)" (( "(") (identifier "piVar5") (, ",") (number_literal "0x20") () ")")))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" (else "else") (compound_statement "{\n        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);\n      }" ({ "{") (expression_statement "iVar1 = (int)*(char *)((int)piVar5 + 0x3d);" (assignment_expression "iVar1 = (int)*(char *)((int)piVar5 + 0x3d)" (identifier "iVar1") (= "=") (cast_expression "(int)*(char *)((int)piVar5 + 0x3d)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)((int)piVar5 + 0x3d)" (* "*") (cast_expression "(char *)((int)piVar5 + 0x3d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar5 + 0x3d)" (( "(") (binary_expression "(int)piVar5 + 0x3d" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (number_literal "0x3d")) () ")")))))) (; ";")) (} "}")))) (expression_statement "poVar2[0x74] = SUB41(iVar1,0);" (assignment_expression "poVar2[0x74] = SUB41(iVar1,0)" (subscript_expression "poVar2[0x74]" (identifier "poVar2") ([ "[") (number_literal "0x74") (] "]")) (= "=") (call_expression "SUB41(iVar1,0)" (identifier "SUB41") (argument_list "(iVar1,0)" (( "(") (identifier "iVar1") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "poVar2[0x75] = (ostream)0x1;" (assignment_expression "poVar2[0x75] = (ostream)0x1" (subscript_expression "poVar2[0x75]" (identifier "poVar2") ([ "[") (number_literal "0x75") (] "]")) (= "=") (cast_expression "(ostream)0x1" (( "(") (type_descriptor "ostream" (type_identifier "ostream")) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n      iVar1 = (int)(char)poVar2[0x74];\n    }" (else "else") (compound_statement "{\n      iVar1 = (int)(char)poVar2[0x74];\n    }" ({ "{") (expression_statement "iVar1 = (int)(char)poVar2[0x74];" (assignment_expression "iVar1 = (int)(char)poVar2[0x74]" (identifier "iVar1") (= "=") (cast_expression "(int)(char)poVar2[0x74]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)poVar2[0x74]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "poVar2[0x74]" (identifier "poVar2") ([ "[") (number_literal "0x74") (] "]"))))) (; ";")) (} "}")))) (expression_statement "local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);" (assignment_expression "local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_)" (identifier "local_3c") (= "=") (call_expression "CONCAT13(iVar3 == 0,local_3c._1_3_)" (identifier "CONCAT13") (argument_list "(iVar3 == 0,local_3c._1_3_)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) (, ",") (field_expression "local_3c._1_3_" (identifier "local_3c") (. ".") (field_identifier "_1_3_")) () ")")))) (; ";")) (expression_statement "(**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);" (call_expression "(**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1)" (parenthesized_expression "(**(code **)(*piVar4 + 0x14))" (( "(") (pointer_expression "**(code **)(*piVar4 + 0x14)" (* "*") (pointer_expression "*(code **)(*piVar4 + 0x14)" (* "*") (cast_expression "(code **)(*piVar4 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar4 + 0x14)" (( "(") (binary_expression "*piVar4 + 0x14" (pointer_expression "*piVar4" (* "*") (identifier "piVar4")) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1)" (( "(") (identifier "auStack_38") (, ",") (identifier "piVar4") (, ",") (identifier "iVar3") (, ",") (identifier "local_3c") (, ",") (identifier "poVar2") (, ",") (identifier "iVar1") () ")"))) (; ";")) (if_statement "if (local_34 != '\0') {\n                    \n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }" (if "if") (parenthesized_expression "(local_34 != '\0')" (( "(") (binary_expression "local_34 != '\0'" (identifier "local_34") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    \n      (*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);\n    }" ({ "{") (expression_statement "(*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);" (call_expression "(*(code *)PTR_clear_0043304c)\n                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1)" (parenthesized_expression "(*(code *)PTR_clear_0043304c)" (( "(") (pointer_expression "*(code *)PTR_clear_0043304c" (* "*") (cast_expression "(code *)PTR_clear_0043304c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_clear_0043304c"))) () ")")) (argument_list "(in_a0 + *(int *)(*(int *)in_a0 + -0xc),\n                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1)" (( "(") (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" (identifier "in_a0") (+ "+") (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" (* "*") (cast_expression "(int *)(*(int *)in_a0 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)in_a0 + -0xc)" (( "(") (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" (* "*") (cast_expression "(int *)in_a0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "in_a0"))) (+ "+") (number_literal "-0xc")) () ")"))))) (, ",") (binary_expression "*(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1" (pointer_expression "*(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" (* "*") (cast_expression "(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14)" (( "(") (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14" (binary_expression "in_a0 + *(int *)(*(int *)in_a0 + -0xc)" (identifier "in_a0") (+ "+") (pointer_expression "*(int *)(*(int *)in_a0 + -0xc)" (* "*") (cast_expression "(int *)(*(int *)in_a0 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)in_a0 + -0xc)" (( "(") (binary_expression "*(int *)in_a0 + -0xc" (pointer_expression "*(int *)in_a0" (* "*") (cast_expression "(int *)in_a0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "in_a0"))) (+ "+") (number_literal "-0xc")) () ")"))))) (+ "+") (number_literal "0x14")) () ")")))) (| "|") (number_literal "1")) () ")"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "sentry::~sentry(local_30);" (statement_identifier "sentry") (: ":") (ERROR ":" (: ":")) (expression_statement "~sentry(local_30);" (unary_expression "~sentry(local_30)" (~ "~") (call_expression "sentry(local_30)" (identifier "sentry") (argument_list "(local_30)" (( "(") (identifier "local_30") () ")")))) (; ";"))) (return_statement "return in_a0;" (return "return") (identifier "in_a0") (; ";")) (ERROR "}" (} "}"))

/* std::ostream& std::ostream::_M_insert<long long>(long long) */

var_3 * std::ostream::var_1<var_2>(type_1 param_1)

{
  int iVar1;
  var_3 *var_5;
  var_3 *var_4;
  int var_10;
  int *var_6;
  int *var_7;
  type_2 local_3c;
  type_3 auStack_38 [4];
  char var_11;
  type_4 local_30 [8];
  
  sentry::type_4(local_30,var_5);
  if (local_30[0] != (type_4)0x0) {
    var_4 = var_5 + *(int *)(*(int *)var_5 + -0xc);
    var_6 = *(int **)(var_4 + 0x80);
    if (var_6 == (int *)0x0) {
      var_4 = (var_3 *)(*(type_5 *)PTR___throw_bad_cast_00433050)();
      return var_4;
    }
    var_10 = *(int *)(var_4 + 0x78);
    if (var_4[0x75] == (var_3)0x0) {
      var_7 = *(int **)(var_4 + 0x7c);
      if (var_7 == (int *)0x0) {
        var_4 = (var_3 *)(*(type_5 *)PTR___throw_bad_cast_00433050)();
        return var_4;
      }
      if (*(char *)(var_7 + 7) == '\0') {
                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */
        (*(type_5 *)PTR__M_widen_init_00433054)(var_7);
        iVar1 = 0x20;
        if (*(type_5 **)(*var_7 + 0x18) != (type_5 *)PTR_do_widen_00433068) {
          iVar1 = (**(type_5 **)(*var_7 + 0x18))(var_7,0x20);
        }
      }
      else {
        iVar1 = (int)*(char *)((int)var_7 + 0x3d);
      }
      var_4[0x74] = var_8(iVar1,0);
      var_4[0x75] = (var_3)0x1;
    }
    else {
      iVar1 = (int)(char)var_4[0x74];
    }
    local_3c = var_9(var_10 == 0,local_3c._1_3_);
                    /* try { // try from 002c7cc4 to 002c7ccb has its CatchHandler @ 002c7dac */
    (**(type_5 **)(*var_6 + 0x14))(auStack_38,var_6,var_10,local_3c,var_4,iVar1);
    if (var_11 != '\0') {
                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */
      (*(type_5 *)PTR_clear_0043304c)
                (var_5 + *(int *)(*(int *)var_5 + -0xc),
                 *(type_6 *)(var_5 + *(int *)(*(int *)var_5 + -0xc) + 0x14) | 1);
    }
  }
  sentry::~type_4(local_30);
  return var_5;
}


(translation_unit (ERROR (binary_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (compound_literal_expression type: (type_descriptor type: (type_identifier)) (ERROR (identifier)) value: (initializer_list (ERROR (identifier) (identifier) (binary_expression left: (identifier) right: (identifier))) (binary_expression left: (identifier) right: (identifier)) (MISSING "}")))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (return_statement (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (field_expression argument: (identifier) field: (field_identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (binary_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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))))) right: (number_literal))))) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (unary_expression argument: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (return_statement (identifier)) (ERROR))

/* std::ostream& std::ostream::_M_insert<long long>(long long) */

ostream * std::ostream::MASKED(longlong param_1)

{
  int iVar1;
  ostream *in_a0;
  ostream *poVar2;
  int iVar3;
  int *piVar4;
  int *piVar5;
  undefined4 local_3c;
  undefined1 auStack_38 [4];
  char local_34;
  sentry local_30 [8];
  
  sentry::sentry(local_30,in_a0);
  if (local_30[0] != (sentry)0x0) {
    poVar2 = in_a0 + *(int *)(*(int *)in_a0 + -0xc);
    piVar4 = *(int **)(poVar2 + 0x80);
    if (piVar4 == (int *)0x0) {
      poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();
      return poVar2;
    }
    iVar3 = *(int *)(poVar2 + 0x78);
    if (poVar2[0x75] == (ostream)0x0) {
      piVar5 = *(int **)(poVar2 + 0x7c);
      if (piVar5 == (int *)0x0) {
        poVar2 = (ostream *)(*(code *)PTR___throw_bad_cast_00433050)();
        return poVar2;
      }
      if (*(char *)(piVar5 + 7) == '\0') {
                    /* try { // try from 002c7d68 to 002c7dab has its CatchHandler @ 002c7dac */
        (*(code *)PTR__M_widen_init_00433054)(piVar5);
        iVar1 = 0x20;
        if (*(code **)(*piVar5 + 0x18) != (code *)PTR_do_widen_00433068) {
          iVar1 = (**(code **)(*piVar5 + 0x18))(piVar5,0x20);
        }
      }
      else {
        iVar1 = (int)*(char *)((int)piVar5 + 0x3d);
      }
      poVar2[0x74] = SUB41(iVar1,0);
      poVar2[0x75] = (ostream)0x1;
    }
    else {
      iVar1 = (int)(char)poVar2[0x74];
    }
    local_3c = CONCAT13(iVar3 == 0,local_3c._1_3_);
                    /* try { // try from 002c7cc4 to 002c7ccb has its CatchHandler @ 002c7dac */
    (**(code **)(*piVar4 + 0x14))(auStack_38,piVar4,iVar3,local_3c,poVar2,iVar1);
    if (local_34 != '\0') {
                    /* try { // try from 002c7cf0 to 002c7cf7 has its CatchHandler @ 002c7df8 */
      (*(code *)PTR_clear_0043304c)
                (in_a0 + *(int *)(*(int *)in_a0 + -0xc),
                 *(uint *)(in_a0 + *(int *)(*(int *)in_a0 + -0xc) + 0x14) | 1);
    }
  }
  sentry::~sentry(local_30);
  return in_a0;
}

