
/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > > const&
   std::use_facet<std::money_get<wchar_t, std::istreambuf_iterator<wchar_t,
   std::char_traits<wchar_t> > > >(std::locale const&) */

money_get *
std::use_facet<std::money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>>
          (locale *param_1)

{
  uint uVar1;
  money_get *pmVar2;
  money_get *pmVar3;
  ctype *pcVar4;
  __timepunct *this;
  int iVar5;
  int iVar6;
  money_get mVar7;
  int *piVar8;
  int *piVar9;
  undefined *puVar10;
  code *pcVar11;
  char cVar12;
  wchar_t awStack_268 [256];
  undefined4 uStack_68;
  int iStack_64;
  int iStack_60;
  undefined4 uStack_5c;
  int *piStack_54;
  char cStack_1d;
  
  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);
  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||
     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {
                    /* WARNING: Subroutine does not return */
    __throw_bad_cast();
  }
  pmVar2 = (money_get *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);
  if (pmVar2 != (money_get *)0x0) {
    return pmVar2;
  }
  cVar12 = -0x5c;
  puVar10 = PTR___cxa_bad_cast_0043380c;
  (*(code *)PTR___cxa_bad_cast_0043380c)();
  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));
  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&
     (pmVar2 = *(money_get **)(*(int *)(*piVar8 + 4) + uVar1 * 4), pmVar2 != (money_get *)0x0)) {
    piVar9 = *(int **)(puVar10 + 0x10fa68);
    mVar7 = (money_get)0x0;
    pmVar3 = (money_get *)__dynamic_cast(pmVar2,*(undefined4 *)(puVar10 + 0x10e254));
    if (pmVar3 != (money_get *)0x0) {
      return pmVar3;
    }
    pcVar11 = *(code **)(puVar10 + 0x10f768);
    (*pcVar11)();
    piStack_54 = piVar8;
    pcVar4 = use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));
    this = use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));
    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);
    if (cStack_1d == 0) {
      iStack_60 = 0;
      iStack_64 = (int)cVar12;
    }
    else {
      uStack_5c = 0;
      iStack_64 = (int)cStack_1d;
      iStack_60 = (int)cVar12;
    }
    __timepunct<wchar_t>::_M_put
              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1);
    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);
    if (mVar7 == (money_get)0x0) {
      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);
      mVar7 = (money_get)(iVar5 != iVar6);
    }
    *(int **)pmVar2 = piVar9;
    pmVar2[4] = mVar7;
    return pmVar2;
  }
                    /* WARNING: Subroutine does not return */
  __throw_bad_cast();
}



undefined4 * FUN_00324008(tm *param_1)

{
  uint uVar1;
  undefined4 *puVar2;
  undefined4 *puVar3;
  ctype *pcVar4;
  __timepunct *this;
  int iVar5;
  int iVar6;
  char cVar7;
  int *piVar8;
  int *piVar9;
  undefined *puVar10;
  code *pcVar11;
  char cVar12;
  wchar_t awStack_268 [256];
  undefined4 uStack_68;
  int iStack_64;
  int iStack_60;
  undefined4 uStack_5c;
  int *piStack_54;
  char cStack_1d;
  
  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);
  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||
     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {
                    /* WARNING: Subroutine does not return */
    std::__throw_bad_cast();
  }
  puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);
  if (puVar2 != (undefined4 *)0x0) {
    return puVar2;
  }
  cVar12 = -0x5c;
  puVar10 = PTR___cxa_bad_cast_0043380c;
  (*(code *)PTR___cxa_bad_cast_0043380c)();
  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));
  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&
     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {
    piVar9 = *(int **)(puVar10 + 0x10fa68);
    cVar7 = '\0';
    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));
    if (puVar3 != (undefined4 *)0x0) {
      return puVar3;
    }
    pcVar11 = *(code **)(puVar10 + 0x10f768);
    (*pcVar11)();
    piStack_54 = piVar8;
    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));
    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));
    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);
    if (cStack_1d == 0) {
      iStack_60 = 0;
      iStack_64 = (int)cVar12;
    }
    else {
      uStack_5c = 0;
      iStack_64 = (int)cStack_1d;
      iStack_60 = (int)cVar12;
    }
    std::__timepunct<wchar_t>::_M_put
              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);
    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);
    if (cVar7 == '\0') {
      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);
      cVar7 = iVar5 != iVar6;
    }
    *puVar2 = piVar9;
    *(char *)(puVar2 + 1) = cVar7;
    return puVar2;
  }
                    /* WARNING: Subroutine does not return */
  std::__throw_bad_cast();
}


lui gp,0x11
addiu gp,gp,0x61c8
addu gp,gp,t9
addiu sp,sp,-0x20
lw t9,-0x69d0(gp)
sw s0,0x18(sp)
or s0,a0,zero
sw gp,0x10(sp)
sw ra,0x1c(sp)
lw a0,-0x7ea8(gp)
jalr t9
_nop
lw a0,0x0(s0)
lw gp,0x10(sp)
lw v1,0x8(a0)
sltu v1,v0,v1
beq v1,zero,0x0032408c
_lw a0,0x4(a0)
sll v0,v0,0x2
addu v0,a0,v0
lw a0,0x0(v0)
beq a0,zero,0x0032408c
_lw t9,-0x7ee0(gp)
lw a2,-0x66cc(gp)
lw a1,-0x7ed8(gp)
bal 0x00311e50
_or a3,zero,zero
beq v0,zero,0x00324098
_lw gp,0x10(sp)
lw ra,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x20
lw t9,-0x7180(gp)
bal 0x0030e490
_nop
lw t9,-0x69c4(gp)
jalr t9
_nop
(translation_unit "undefined4 * FUN_00324008(tm *param_1)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  ctype *pcVar4;\n  __timepunct *this;\n  int iVar5;\n  int iVar6;\n  char cVar7;\n  int *piVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  char cVar12;\n  wchar_t awStack_268 [256];\n  undefined4 uStack_68;\n  int iStack_64;\n  int iStack_60;\n  undefined4 uStack_5c;\n  int *piStack_54;\n  char cStack_1d;\n  \n  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    std::__throw_bad_cast();\n  }\n  puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);\n  if (puVar2 != (undefined4 *)0x0) {\n    return puVar2;\n  }\n  cVar12 = -0x5c;\n  puVar10 = PTR___cxa_bad_cast_0043380c;\n  (*(code *)PTR___cxa_bad_cast_0043380c)();\n  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));\n  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  std::__throw_bad_cast();\n}\n\n" (function_definition "undefined4 * FUN_00324008(tm *param_1)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  ctype *pcVar4;\n  __timepunct *this;\n  int iVar5;\n  int iVar6;\n  char cVar7;\n  int *piVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  char cVar12;\n  wchar_t awStack_268 [256];\n  undefined4 uStack_68;\n  int iStack_64;\n  int iStack_60;\n  undefined4 uStack_5c;\n  int *piStack_54;\n  char cStack_1d;\n  \n  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    std::__throw_bad_cast();\n  }\n  puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);\n  if (puVar2 != (undefined4 *)0x0) {\n    return puVar2;\n  }\n  cVar12 = -0x5c;\n  puVar10 = PTR___cxa_bad_cast_0043380c;\n  (*(code *)PTR___cxa_bad_cast_0043380c)();\n  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));\n  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  std::__throw_bad_cast();\n}" type_identifier (pointer_declarator "* FUN_00324008(tm *param_1)" * (function_declarator "FUN_00324008(tm *param_1)" identifier (parameter_list "(tm *param_1)" ( (parameter_declaration "tm *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  ctype *pcVar4;\n  __timepunct *this;\n  int iVar5;\n  int iVar6;\n  char cVar7;\n  int *piVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  char cVar12;\n  wchar_t awStack_268 [256];\n  undefined4 uStack_68;\n  int iStack_64;\n  int iStack_60;\n  undefined4 uStack_5c;\n  int *piStack_54;\n  char cStack_1d;\n  \n  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    std::__throw_bad_cast();\n  }\n  puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);\n  if (puVar2 != (undefined4 *)0x0) {\n    return puVar2;\n  }\n  cVar12 = -0x5c;\n  puVar10 = PTR___cxa_bad_cast_0043380c;\n  (*(code *)PTR___cxa_bad_cast_0043380c)();\n  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));\n  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  std::__throw_bad_cast();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "ctype *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "__timepunct *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "wchar_t awStack_268 [256];" type_identifier (array_declarator "awStack_268 [256]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "int *piStack_54;" primitive_type (pointer_declarator "*piStack_54" * identifier) ;) (declaration "char cStack_1d;" primitive_type identifier ;) (expression_statement "uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);" (assignment_expression "uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328)" identifier = (call_expression "(*(code *)PTR__M_id_00433800)(PTR_id_00432328)" (parenthesized_expression "(*(code *)PTR__M_id_00433800)" ( (pointer_expression "*(code *)PTR__M_id_00433800" * (cast_expression "(code *)PTR__M_id_00433800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_00432328)" ( identifier )))) ;) (if_statement "if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    std::__throw_bad_cast();\n  }" if (parenthesized_expression "((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0))" ( (binary_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)" (parenthesized_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1)" ( (binary_expression "*(uint *)(*(int *)param_1 + 8) <= uVar1" (pointer_expression "*(uint *)(*(int *)param_1 + 8)" * (cast_expression "(uint *)(*(int *)param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 8)" ( (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) <= identifier) )) || (parenthesized_expression "(piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)" ( (comma_expression "piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0" (assignment_expression "piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" identifier = (pointer_expression "*(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" * (cast_expression "(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (binary_expression "*(int *)(*(int *)param_1 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*(int *)param_1 + 4)" * (cast_expression "(int *)(*(int *)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 4)" ( (binary_expression "*(int *)param_1 + 4" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + (binary_expression "uVar1 * 4" identifier * number_literal)) ))))) , (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    std::__throw_bad_cast();\n  }" { comment (labeled_statement "std::__throw_bad_cast();" statement_identifier : (ERROR ":" :) (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);" (assignment_expression "puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" identifier = (cast_expression "(undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" identifier (argument_list "(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" ( identifier , identifier , identifier , number_literal ))))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n    return puVar2;\n  }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return puVar2;\n  }" { (return_statement "return puVar2;" return identifier ;) })) (expression_statement "cVar12 = -0x5c;" (assignment_expression "cVar12 = -0x5c" identifier = number_literal) ;) (expression_statement "puVar10 = PTR___cxa_bad_cast_0043380c;" (assignment_expression "puVar10 = PTR___cxa_bad_cast_0043380c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___cxa_bad_cast_0043380c)();" (call_expression "(*(code *)PTR___cxa_bad_cast_0043380c)()" (parenthesized_expression "(*(code *)PTR___cxa_bad_cast_0043380c)" ( (pointer_expression "*(code *)PTR___cxa_bad_cast_0043380c" * (cast_expression "(code *)PTR___cxa_bad_cast_0043380c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));" (assignment_expression "uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64))" identifier = (call_expression "(**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64))" (parenthesized_expression "(**(code **)(puVar10 + 0x10f75c))" ( (pointer_expression "**(code **)(puVar10 + 0x10f75c)" * (pointer_expression "*(code **)(puVar10 + 0x10f75c)" * (cast_expression "(code **)(puVar10 + 0x10f75c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10f75c)" ( (binary_expression "puVar10 + 0x10f75c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar10 + 0x10fa64))" ( (pointer_expression "*(undefined4 *)(puVar10 + 0x10fa64)" * (cast_expression "(undefined4 *)(puVar10 + 0x10fa64)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10fa64)" ( (binary_expression "puVar10 + 0x10fa64" identifier + number_literal) )))) )))) ;) (if_statement "if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }" if (parenthesized_expression "((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0))" ( (binary_expression "(uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)" (parenthesized_expression "(uVar1 < *(uint *)(*piVar8 + 8))" ( (binary_expression "uVar1 < *(uint *)(*piVar8 + 8)" identifier < (pointer_expression "*(uint *)(*piVar8 + 8)" * (cast_expression "(uint *)(*piVar8 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 8)" ( (binary_expression "*piVar8 + 8" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) && (parenthesized_expression "(puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)" ( (comma_expression "puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" * (cast_expression "(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar8 + 4) + uVar1 * 4)" ( (binary_expression "*(int *)(*piVar8 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*piVar8 + 4)" * (cast_expression "(int *)(*piVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 4)" ( (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" * identifier) + number_literal) )))) + (binary_expression "uVar1 * 4" identifier * number_literal)) ))))) , (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }" { (expression_statement "piVar9 = *(int **)(puVar10 + 0x10fa68);" (assignment_expression "piVar9 = *(int **)(puVar10 + 0x10fa68)" identifier = (pointer_expression "*(int **)(puVar10 + 0x10fa68)" * (cast_expression "(int **)(puVar10 + 0x10fa68)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10fa68)" ( (binary_expression "puVar10 + 0x10fa68" identifier + number_literal) ))))) ;) (expression_statement "cVar7 = '\0';" (assignment_expression "cVar7 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));" (assignment_expression "puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" identifier = (cast_expression "(undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" identifier (argument_list "(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" ( identifier , (pointer_expression "*(undefined4 *)(puVar10 + 0x10e254)" * (cast_expression "(undefined4 *)(puVar10 + 0x10e254)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10e254)" ( (binary_expression "puVar10 + 0x10e254" identifier + number_literal) )))) ))))) ;) (if_statement "if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }" if (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" ( (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return puVar3;\n    }" { (return_statement "return puVar3;" return identifier ;) })) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x10f768);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x10f768)" identifier = (pointer_expression "*(code **)(puVar10 + 0x10f768)" * (cast_expression "(code **)(puVar10 + 0x10f768)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10f768)" ( (binary_expression "puVar10 + 0x10f768" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_54 = piVar8;" (assignment_expression "piStack_54 = piVar8" identifier = identifier) ;) (expression_statement "pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));" (binary_expression "pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198))" (binary_expression "pcVar4 = std::use_facet<std" (assignment_expression "pcVar4 = std" identifier = identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>((locale *)(puVar10 + 0x116198))" identifier >> (parenthesized_expression "((locale *)(puVar10 + 0x116198))" ( (cast_expression "(locale *)(puVar10 + 0x116198)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x116198)" ( (binary_expression "puVar10 + 0x116198" identifier + number_literal) ))) )))) ;) (expression_statement "this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));" (binary_expression "this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198))" (binary_expression "this = std::use_facet<std" (assignment_expression "this = std" identifier = identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::__timepunct" : : identifier) < (binary_expression "wchar_t>>((locale *)(puVar10 + 0x116198))" identifier >> (parenthesized_expression "((locale *)(puVar10 + 0x116198))" ( (cast_expression "(locale *)(puVar10 + 0x116198)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x116198)" ( (binary_expression "puVar10 + 0x116198" identifier + number_literal) ))) )))) ;) (expression_statement "uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);" (assignment_expression "uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25)" identifier = (call_expression "(**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x28))" ( (pointer_expression "**(code **)(*(int *)pcVar4 + 0x28)" * (pointer_expression "*(code **)(*(int *)pcVar4 + 0x28)" * (cast_expression "(code **)(*(int *)pcVar4 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar4 + 0x28)" ( (binary_expression "*(int *)pcVar4 + 0x28" (pointer_expression "*(int *)pcVar4" * (cast_expression "(int *)pcVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar4,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" if (parenthesized_expression "(cStack_1d == 0)" ( (binary_expression "cStack_1d == 0" identifier == number_literal) )) (compound_statement "{\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }" { (expression_statement "iStack_60 = 0;" (assignment_expression "iStack_60 = 0" identifier = number_literal) ;) (expression_statement "iStack_64 = (int)cVar12;" (assignment_expression "iStack_64 = (int)cVar12" identifier = (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" else (compound_statement "{\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" { (expression_statement "uStack_5c = 0;" (assignment_expression "uStack_5c = 0" identifier = number_literal) ;) (expression_statement "iStack_64 = (int)cStack_1d;" (assignment_expression "iStack_64 = (int)cStack_1d" identifier = (cast_expression "(int)cStack_1d" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iStack_60 = (int)cVar12;" (assignment_expression "iStack_60 = (int)cVar12" identifier = (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (labeled_statement "std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);" statement_identifier (ERROR "::__timepunct<wchar_t>:" : : (binary_expression "__timepunct<wchar_t" identifier < identifier) > :) : (expression_statement "_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);" (call_expression "_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1)" identifier (argument_list "((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1)" ( (parenthesized_expression "(__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1)" ( (comma_expression "__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1" (binary_expression "__timepunct<wchar_t> *)this" (binary_expression "__timepunct<wchar_t" identifier < identifier) > (pointer_expression "*)this" * (ERROR ")" )) identifier)) , (comma_expression "awStack_268,0x80,(wchar_t *)&uStack_68,param_1" identifier , (comma_expression "0x80,(wchar_t *)&uStack_68,param_1" number_literal , (comma_expression "(wchar_t *)&uStack_68,param_1" (cast_expression "(wchar_t *)&uStack_68" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_68" & identifier)) , identifier)))) )) ))) ;)) (expression_statement "iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);" (assignment_expression "iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268)" identifier = (call_expression "(**(code **)(pcVar11 + 0x112730))(awStack_268)" (parenthesized_expression "(**(code **)(pcVar11 + 0x112730))" ( (pointer_expression "**(code **)(pcVar11 + 0x112730)" * (pointer_expression "*(code **)(pcVar11 + 0x112730)" * (cast_expression "(code **)(pcVar11 + 0x112730)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x112730)" ( (binary_expression "pcVar11 + 0x112730" identifier + number_literal) ))))) )) (argument_list "(awStack_268)" ( identifier )))) ;) (if_statement "if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }" { (expression_statement "iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);" (assignment_expression "iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5)" identifier = (call_expression "(**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5)" (parenthesized_expression "(**(code **)(*piVar9 + 0x30))" ( (pointer_expression "**(code **)(*piVar9 + 0x30)" * (pointer_expression "*(code **)(*piVar9 + 0x30)" * (cast_expression "(code **)(*piVar9 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 0x30)" ( (binary_expression "*piVar9 + 0x30" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) )) (argument_list "(piVar9,awStack_268,iVar5)" ( identifier , identifier , identifier )))) ;) (expression_statement "cVar7 = iVar5 != iVar6;" (assignment_expression "cVar7 = iVar5 != iVar6" identifier = (binary_expression "iVar5 != iVar6" identifier != identifier)) ;) })) (expression_statement "*puVar2 = piVar9;" (assignment_expression "*puVar2 = piVar9" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "*(char *)(puVar2 + 1) = cVar7;" (assignment_expression "*(char *)(puVar2 + 1) = cVar7" (pointer_expression "*(char *)(puVar2 + 1)" * (cast_expression "(char *)(puVar2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 1)" ( (binary_expression "puVar2 + 1" identifier + number_literal) )))) = identifier) ;) (return_statement "return puVar2;" return identifier ;) })) comment (labeled_statement "std::__throw_bad_cast();" statement_identifier : (ERROR ":" :) (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" identifier (argument_list "()" ( ))) ;)) })))
(translation_unit "/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n/* std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > > const&\n   std::use_facet<std::money_get<wchar_t, std::istreambuf_iterator<wchar_t,\n   std::char_traits<wchar_t> > > >(std::locale const&) */\n\nmoney_get *\nstd::use_facet<std::money_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>>\n          (locale *param_1)\n\n{\n  uint uVar1;\n  money_get *pmVar2;\n  money_get *pmVar3;\n  ctype *pcVar4;\n  __timepunct *this;\n  int iVar5;\n  int iVar6;\n  money_get mVar7;\n  int *piVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  char cVar12;\n  wchar_t awStack_268 [256];\n  undefined4 uStack_68;\n  int iStack_64;\n  int iStack_60;\n  undefined4 uStack_5c;\n  int *piStack_54;\n  char cStack_1d;\n  \n  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }\n  pmVar2 = (money_get *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);\n  if (pmVar2 != (money_get *)0x0) {\n    return pmVar2;\n  }\n  cVar12 = -0x5c;\n  puVar10 = PTR___cxa_bad_cast_0043380c;\n  (*(code *)PTR___cxa_bad_cast_0043380c)();\n  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));\n  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (pmVar2 = *(money_get **)(*(int *)(*piVar8 + 4) + uVar1 * 4), pmVar2 != (money_get *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    mVar7 = (money_get)0x0;\n    pmVar3 = (money_get *)__dynamic_cast(pmVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (pmVar3 != (money_get *)0x0) {\n      return pmVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    __timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (mVar7 == (money_get)0x0) {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      mVar7 = (money_get)(iVar5 != iVar6);\n    }\n    *(int **)pmVar2 = piVar9;\n    pmVar2[4] = mVar7;\n    return pmVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __throw_bad_cast();\n}\n\n" comment comment (ERROR "money_get *\nstd::use_facet<std::money_get<wchar_t," (binary_expression "money_get *\nstd::use_facet<std::money_get<wchar_t" (binary_expression "money_get *\nstd::use_facet<std" (binary_expression "money_get *\nstd" identifier * identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::money_get" : : identifier) < identifier) ,) (labeled_statement "std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>>\n          (locale *param_1)" statement_identifier (ERROR "::istreambuf_iterator<wchar_t,std:" : : (comma_expression "istreambuf_iterator<wchar_t,std" (binary_expression "istreambuf_iterator<wchar_t" identifier < identifier) , identifier) :) : (expression_statement "char_traits<wchar_t>>>>\n          (locale *param_1)" (binary_expression "char_traits<wchar_t>>>>\n          (locale *param_1)" identifier < (binary_expression "wchar_t>>>>\n          (locale *param_1)" identifier >> (ERROR ">>" >>) (parenthesized_expression "(locale *param_1)" ( (binary_expression "locale *param_1" identifier * identifier) )))) ;)) (compound_statement "{\n  uint uVar1;\n  money_get *pmVar2;\n  money_get *pmVar3;\n  ctype *pcVar4;\n  __timepunct *this;\n  int iVar5;\n  int iVar6;\n  money_get mVar7;\n  int *piVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  char cVar12;\n  wchar_t awStack_268 [256];\n  undefined4 uStack_68;\n  int iStack_64;\n  int iStack_60;\n  undefined4 uStack_5c;\n  int *piStack_54;\n  char cStack_1d;\n  \n  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }\n  pmVar2 = (money_get *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);\n  if (pmVar2 != (money_get *)0x0) {\n    return pmVar2;\n  }\n  cVar12 = -0x5c;\n  puVar10 = PTR___cxa_bad_cast_0043380c;\n  (*(code *)PTR___cxa_bad_cast_0043380c)();\n  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));\n  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (pmVar2 = *(money_get **)(*(int *)(*piVar8 + 4) + uVar1 * 4), pmVar2 != (money_get *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    mVar7 = (money_get)0x0;\n    pmVar3 = (money_get *)__dynamic_cast(pmVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (pmVar3 != (money_get *)0x0) {\n      return pmVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    __timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (mVar7 == (money_get)0x0) {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      mVar7 = (money_get)(iVar5 != iVar6);\n    }\n    *(int **)pmVar2 = piVar9;\n    pmVar2[4] = mVar7;\n    return pmVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __throw_bad_cast();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "money_get *pmVar2;" type_identifier (pointer_declarator "*pmVar2" * identifier) ;) (declaration "money_get *pmVar3;" type_identifier (pointer_declarator "*pmVar3" * identifier) ;) (declaration "ctype *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "__timepunct *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "money_get mVar7;" type_identifier identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "wchar_t awStack_268 [256];" type_identifier (array_declarator "awStack_268 [256]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "int *piStack_54;" primitive_type (pointer_declarator "*piStack_54" * identifier) ;) (declaration "char cStack_1d;" primitive_type identifier ;) (expression_statement "uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);" (assignment_expression "uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328)" identifier = (call_expression "(*(code *)PTR__M_id_00433800)(PTR_id_00432328)" (parenthesized_expression "(*(code *)PTR__M_id_00433800)" ( (pointer_expression "*(code *)PTR__M_id_00433800" * (cast_expression "(code *)PTR__M_id_00433800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_00432328)" ( identifier )))) ;) (if_statement "if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }" if (parenthesized_expression "((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0))" ( (binary_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)" (parenthesized_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1)" ( (binary_expression "*(uint *)(*(int *)param_1 + 8) <= uVar1" (pointer_expression "*(uint *)(*(int *)param_1 + 8)" * (cast_expression "(uint *)(*(int *)param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 8)" ( (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) <= identifier) )) || (parenthesized_expression "(piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)" ( (comma_expression "piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0" (assignment_expression "piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" identifier = (pointer_expression "*(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" * (cast_expression "(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (binary_expression "*(int *)(*(int *)param_1 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*(int *)param_1 + 4)" * (cast_expression "(int *)(*(int *)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 4)" ( (binary_expression "*(int *)param_1 + 4" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + (binary_expression "uVar1 * 4" identifier * number_literal)) ))))) , (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __throw_bad_cast();\n  }" { comment (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pmVar2 = (money_get *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);" (assignment_expression "pmVar2 = (money_get *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" identifier = (cast_expression "(money_get *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" ( (type_descriptor "money_get *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" identifier (argument_list "(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" ( identifier , identifier , identifier , number_literal ))))) ;) (if_statement "if (pmVar2 != (money_get *)0x0) {\n    return pmVar2;\n  }" if (parenthesized_expression "(pmVar2 != (money_get *)0x0)" ( (binary_expression "pmVar2 != (money_get *)0x0" identifier != (cast_expression "(money_get *)0x0" ( (type_descriptor "money_get *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return pmVar2;\n  }" { (return_statement "return pmVar2;" return identifier ;) })) (expression_statement "cVar12 = -0x5c;" (assignment_expression "cVar12 = -0x5c" identifier = number_literal) ;) (expression_statement "puVar10 = PTR___cxa_bad_cast_0043380c;" (assignment_expression "puVar10 = PTR___cxa_bad_cast_0043380c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___cxa_bad_cast_0043380c)();" (call_expression "(*(code *)PTR___cxa_bad_cast_0043380c)()" (parenthesized_expression "(*(code *)PTR___cxa_bad_cast_0043380c)" ( (pointer_expression "*(code *)PTR___cxa_bad_cast_0043380c" * (cast_expression "(code *)PTR___cxa_bad_cast_0043380c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));" (assignment_expression "uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64))" identifier = (call_expression "(**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64))" (parenthesized_expression "(**(code **)(puVar10 + 0x10f75c))" ( (pointer_expression "**(code **)(puVar10 + 0x10f75c)" * (pointer_expression "*(code **)(puVar10 + 0x10f75c)" * (cast_expression "(code **)(puVar10 + 0x10f75c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10f75c)" ( (binary_expression "puVar10 + 0x10f75c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar10 + 0x10fa64))" ( (pointer_expression "*(undefined4 *)(puVar10 + 0x10fa64)" * (cast_expression "(undefined4 *)(puVar10 + 0x10fa64)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10fa64)" ( (binary_expression "puVar10 + 0x10fa64" identifier + number_literal) )))) )))) ;) (if_statement "if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (pmVar2 = *(money_get **)(*(int *)(*piVar8 + 4) + uVar1 * 4), pmVar2 != (money_get *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    mVar7 = (money_get)0x0;\n    pmVar3 = (money_get *)__dynamic_cast(pmVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (pmVar3 != (money_get *)0x0) {\n      return pmVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    __timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (mVar7 == (money_get)0x0) {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      mVar7 = (money_get)(iVar5 != iVar6);\n    }\n    *(int **)pmVar2 = piVar9;\n    pmVar2[4] = mVar7;\n    return pmVar2;\n  }" if (parenthesized_expression "((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (pmVar2 = *(money_get **)(*(int *)(*piVar8 + 4) + uVar1 * 4), pmVar2 != (money_get *)0x0))" ( (binary_expression "(uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (pmVar2 = *(money_get **)(*(int *)(*piVar8 + 4) + uVar1 * 4), pmVar2 != (money_get *)0x0)" (parenthesized_expression "(uVar1 < *(uint *)(*piVar8 + 8))" ( (binary_expression "uVar1 < *(uint *)(*piVar8 + 8)" identifier < (pointer_expression "*(uint *)(*piVar8 + 8)" * (cast_expression "(uint *)(*piVar8 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 8)" ( (binary_expression "*piVar8 + 8" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) && (parenthesized_expression "(pmVar2 = *(money_get **)(*(int *)(*piVar8 + 4) + uVar1 * 4), pmVar2 != (money_get *)0x0)" ( (comma_expression "pmVar2 = *(money_get **)(*(int *)(*piVar8 + 4) + uVar1 * 4), pmVar2 != (money_get *)0x0" (assignment_expression "pmVar2 = *(money_get **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" identifier = (pointer_expression "*(money_get **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" * (cast_expression "(money_get **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" ( (type_descriptor "money_get **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar8 + 4) + uVar1 * 4)" ( (binary_expression "*(int *)(*piVar8 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*piVar8 + 4)" * (cast_expression "(int *)(*piVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 4)" ( (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" * identifier) + number_literal) )))) + (binary_expression "uVar1 * 4" identifier * number_literal)) ))))) , (binary_expression "pmVar2 != (money_get *)0x0" identifier != (cast_expression "(money_get *)0x0" ( (type_descriptor "money_get *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    mVar7 = (money_get)0x0;\n    pmVar3 = (money_get *)__dynamic_cast(pmVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (pmVar3 != (money_get *)0x0) {\n      return pmVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    __timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (mVar7 == (money_get)0x0) {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      mVar7 = (money_get)(iVar5 != iVar6);\n    }\n    *(int **)pmVar2 = piVar9;\n    pmVar2[4] = mVar7;\n    return pmVar2;\n  }" { (expression_statement "piVar9 = *(int **)(puVar10 + 0x10fa68);" (assignment_expression "piVar9 = *(int **)(puVar10 + 0x10fa68)" identifier = (pointer_expression "*(int **)(puVar10 + 0x10fa68)" * (cast_expression "(int **)(puVar10 + 0x10fa68)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10fa68)" ( (binary_expression "puVar10 + 0x10fa68" identifier + number_literal) ))))) ;) (expression_statement "mVar7 = (money_get)0x0;" (assignment_expression "mVar7 = (money_get)0x0" identifier = (cast_expression "(money_get)0x0" ( (type_descriptor "money_get" type_identifier) ) number_literal)) ;) (expression_statement "pmVar3 = (money_get *)__dynamic_cast(pmVar2,*(undefined4 *)(puVar10 + 0x10e254));" (assignment_expression "pmVar3 = (money_get *)__dynamic_cast(pmVar2,*(undefined4 *)(puVar10 + 0x10e254))" identifier = (cast_expression "(money_get *)__dynamic_cast(pmVar2,*(undefined4 *)(puVar10 + 0x10e254))" ( (type_descriptor "money_get *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast(pmVar2,*(undefined4 *)(puVar10 + 0x10e254))" identifier (argument_list "(pmVar2,*(undefined4 *)(puVar10 + 0x10e254))" ( identifier , (pointer_expression "*(undefined4 *)(puVar10 + 0x10e254)" * (cast_expression "(undefined4 *)(puVar10 + 0x10e254)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10e254)" ( (binary_expression "puVar10 + 0x10e254" identifier + number_literal) )))) ))))) ;) (if_statement "if (pmVar3 != (money_get *)0x0) {\n      return pmVar3;\n    }" if (parenthesized_expression "(pmVar3 != (money_get *)0x0)" ( (binary_expression "pmVar3 != (money_get *)0x0" identifier != (cast_expression "(money_get *)0x0" ( (type_descriptor "money_get *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return pmVar3;\n    }" { (return_statement "return pmVar3;" return identifier ;) })) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x10f768);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x10f768)" identifier = (pointer_expression "*(code **)(puVar10 + 0x10f768)" * (cast_expression "(code **)(puVar10 + 0x10f768)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10f768)" ( (binary_expression "puVar10 + 0x10f768" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_54 = piVar8;" (assignment_expression "piStack_54 = piVar8" identifier = identifier) ;) (expression_statement "pcVar4 = use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));" (binary_expression "pcVar4 = use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198))" (assignment_expression "pcVar4 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>((locale *)(puVar10 + 0x116198))" identifier >> (parenthesized_expression "((locale *)(puVar10 + 0x116198))" ( (cast_expression "(locale *)(puVar10 + 0x116198)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x116198)" ( (binary_expression "puVar10 + 0x116198" identifier + number_literal) ))) )))) ;) (expression_statement "this = use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));" (binary_expression "this = use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198))" (assignment_expression "this = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::__timepunct" : : identifier) < (binary_expression "wchar_t>>((locale *)(puVar10 + 0x116198))" identifier >> (parenthesized_expression "((locale *)(puVar10 + 0x116198))" ( (cast_expression "(locale *)(puVar10 + 0x116198)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x116198)" ( (binary_expression "puVar10 + 0x116198" identifier + number_literal) ))) )))) ;) (expression_statement "uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);" (assignment_expression "uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25)" identifier = (call_expression "(**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x28))" ( (pointer_expression "**(code **)(*(int *)pcVar4 + 0x28)" * (pointer_expression "*(code **)(*(int *)pcVar4 + 0x28)" * (cast_expression "(code **)(*(int *)pcVar4 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar4 + 0x28)" ( (binary_expression "*(int *)pcVar4 + 0x28" (pointer_expression "*(int *)pcVar4" * (cast_expression "(int *)pcVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar4,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" if (parenthesized_expression "(cStack_1d == 0)" ( (binary_expression "cStack_1d == 0" identifier == number_literal) )) (compound_statement "{\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }" { (expression_statement "iStack_60 = 0;" (assignment_expression "iStack_60 = 0" identifier = number_literal) ;) (expression_statement "iStack_64 = (int)cVar12;" (assignment_expression "iStack_64 = (int)cVar12" identifier = (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" else (compound_statement "{\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" { (expression_statement "uStack_5c = 0;" (assignment_expression "uStack_5c = 0" identifier = number_literal) ;) (expression_statement "iStack_64 = (int)cStack_1d;" (assignment_expression "iStack_64 = (int)cStack_1d" identifier = (cast_expression "(int)cStack_1d" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iStack_60 = (int)cVar12;" (assignment_expression "iStack_60 = (int)cVar12" identifier = (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1);" (binary_expression "__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1)" (binary_expression "__timepunct<wchar_t" identifier < identifier) > (ERROR "::" : :) (call_expression "_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1)" identifier (argument_list "((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1)" ( (parenthesized_expression "(__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1)" ( (comma_expression "__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1" (binary_expression "__timepunct<wchar_t> *)this" (binary_expression "__timepunct<wchar_t" identifier < identifier) > (pointer_expression "*)this" * (ERROR ")" )) identifier)) , (comma_expression "awStack_268,0x80,(wchar_t *)&uStack_68,(tm *)param_1" identifier , (comma_expression "0x80,(wchar_t *)&uStack_68,(tm *)param_1" number_literal , (comma_expression "(wchar_t *)&uStack_68,(tm *)param_1" (cast_expression "(wchar_t *)&uStack_68" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_68" & identifier)) , (cast_expression "(tm *)param_1" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))))) )) )))) ;) (expression_statement "iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);" (assignment_expression "iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268)" identifier = (call_expression "(**(code **)(pcVar11 + 0x112730))(awStack_268)" (parenthesized_expression "(**(code **)(pcVar11 + 0x112730))" ( (pointer_expression "**(code **)(pcVar11 + 0x112730)" * (pointer_expression "*(code **)(pcVar11 + 0x112730)" * (cast_expression "(code **)(pcVar11 + 0x112730)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x112730)" ( (binary_expression "pcVar11 + 0x112730" identifier + number_literal) ))))) )) (argument_list "(awStack_268)" ( identifier )))) ;) (if_statement "if (mVar7 == (money_get)0x0) {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      mVar7 = (money_get)(iVar5 != iVar6);\n    }" if (parenthesized_expression "(mVar7 == (money_get)0x0)" ( (binary_expression "mVar7 == (money_get)0x0" identifier == (cast_expression "(money_get)0x0" ( (type_descriptor "money_get" type_identifier) ) number_literal)) )) (compound_statement "{\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      mVar7 = (money_get)(iVar5 != iVar6);\n    }" { (expression_statement "iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);" (assignment_expression "iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5)" identifier = (call_expression "(**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5)" (parenthesized_expression "(**(code **)(*piVar9 + 0x30))" ( (pointer_expression "**(code **)(*piVar9 + 0x30)" * (pointer_expression "*(code **)(*piVar9 + 0x30)" * (cast_expression "(code **)(*piVar9 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 0x30)" ( (binary_expression "*piVar9 + 0x30" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) )) (argument_list "(piVar9,awStack_268,iVar5)" ( identifier , identifier , identifier )))) ;) (expression_statement "mVar7 = (money_get)(iVar5 != iVar6);" (assignment_expression "mVar7 = (money_get)(iVar5 != iVar6)" identifier = (call_expression "(money_get)(iVar5 != iVar6)" (parenthesized_expression "(money_get)" ( identifier )) (argument_list "(iVar5 != iVar6)" ( (binary_expression "iVar5 != iVar6" identifier != identifier) )))) ;) })) (expression_statement "*(int **)pmVar2 = piVar9;" (assignment_expression "*(int **)pmVar2 = piVar9" (pointer_expression "*(int **)pmVar2" * (cast_expression "(int **)pmVar2" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = identifier) ;) (expression_statement "pmVar2[4] = mVar7;" (assignment_expression "pmVar2[4] = mVar7" (subscript_expression "pmVar2[4]" identifier [ number_literal ]) = identifier) ;) (return_statement "return pmVar2;" return identifier ;) })) comment (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" identifier (argument_list "()" ( ))) ;) }))
(translation_unit "undefined4 * FUN_00324008(tm *param_1)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  ctype *pcVar4;\n  __timepunct *this;\n  int iVar5;\n  int iVar6;\n  char cVar7;\n  int *piVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  char cVar12;\n  wchar_t awStack_268 [256];\n  undefined4 uStack_68;\n  int iStack_64;\n  int iStack_60;\n  undefined4 uStack_5c;\n  int *piStack_54;\n  char cStack_1d;\n  \n  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    \n    std::__throw_bad_cast();\n  }\n  puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);\n  if (puVar2 != (undefined4 *)0x0) {\n    return puVar2;\n  }\n  cVar12 = -0x5c;\n  puVar10 = PTR___cxa_bad_cast_0043380c;\n  (*(code *)PTR___cxa_bad_cast_0043380c)();\n  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));\n  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }\n                    \n  std::__throw_bad_cast();\n}\n\n" (function_definition "undefined4 * FUN_00324008(tm *param_1)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  ctype *pcVar4;\n  __timepunct *this;\n  int iVar5;\n  int iVar6;\n  char cVar7;\n  int *piVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  char cVar12;\n  wchar_t awStack_268 [256];\n  undefined4 uStack_68;\n  int iStack_64;\n  int iStack_60;\n  undefined4 uStack_5c;\n  int *piStack_54;\n  char cStack_1d;\n  \n  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    \n    std::__throw_bad_cast();\n  }\n  puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);\n  if (puVar2 != (undefined4 *)0x0) {\n    return puVar2;\n  }\n  cVar12 = -0x5c;\n  puVar10 = PTR___cxa_bad_cast_0043380c;\n  (*(code *)PTR___cxa_bad_cast_0043380c)();\n  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));\n  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }\n                    \n  std::__throw_bad_cast();\n}" type_identifier (pointer_declarator "* FUN_00324008(tm *param_1)" * (function_declarator "FUN_00324008(tm *param_1)" identifier (parameter_list "(tm *param_1)" ( (parameter_declaration "tm *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) )))) (compound_statement "{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  ctype *pcVar4;\n  __timepunct *this;\n  int iVar5;\n  int iVar6;\n  char cVar7;\n  int *piVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  char cVar12;\n  wchar_t awStack_268 [256];\n  undefined4 uStack_68;\n  int iStack_64;\n  int iStack_60;\n  undefined4 uStack_5c;\n  int *piStack_54;\n  char cStack_1d;\n  \n  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    \n    std::__throw_bad_cast();\n  }\n  puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);\n  if (puVar2 != (undefined4 *)0x0) {\n    return puVar2;\n  }\n  cVar12 = -0x5c;\n  puVar10 = PTR___cxa_bad_cast_0043380c;\n  (*(code *)PTR___cxa_bad_cast_0043380c)();\n  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));\n  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }\n                    \n  std::__throw_bad_cast();\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "ctype *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "__timepunct *this;" type_identifier (pointer_declarator "*this" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "char cVar12;" primitive_type identifier ;) (declaration "wchar_t awStack_268 [256];" type_identifier (array_declarator "awStack_268 [256]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_68;" type_identifier identifier ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "int iStack_60;" primitive_type identifier ;) (declaration "undefined4 uStack_5c;" type_identifier identifier ;) (declaration "int *piStack_54;" primitive_type (pointer_declarator "*piStack_54" * identifier) ;) (declaration "char cStack_1d;" primitive_type identifier ;) (expression_statement "uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);" (assignment_expression "uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328)" identifier = (call_expression "(*(code *)PTR__M_id_00433800)(PTR_id_00432328)" (parenthesized_expression "(*(code *)PTR__M_id_00433800)" ( (pointer_expression "*(code *)PTR__M_id_00433800" * (cast_expression "(code *)PTR__M_id_00433800" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_id_00432328)" ( identifier )))) ;) (if_statement "if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    \n    std::__throw_bad_cast();\n  }" if (parenthesized_expression "((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0))" ( (binary_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)" (parenthesized_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1)" ( (binary_expression "*(uint *)(*(int *)param_1 + 8) <= uVar1" (pointer_expression "*(uint *)(*(int *)param_1 + 8)" * (cast_expression "(uint *)(*(int *)param_1 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 8)" ( (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) <= identifier) )) || (parenthesized_expression "(piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)" ( (comma_expression "piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0" (assignment_expression "piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" identifier = (pointer_expression "*(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" * (cast_expression "(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" ( (binary_expression "*(int *)(*(int *)param_1 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*(int *)param_1 + 4)" * (cast_expression "(int *)(*(int *)param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + 4)" ( (binary_expression "*(int *)param_1 + 4" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + (binary_expression "uVar1 * 4" identifier * number_literal)) ))))) , (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    \n    std::__throw_bad_cast();\n  }" { (labeled_statement "std::__throw_bad_cast();" statement_identifier : (ERROR ":" :) (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);" (assignment_expression "puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" identifier = (cast_expression "(undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" identifier (argument_list "(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" ( identifier , identifier , identifier , number_literal ))))) ;) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n    return puVar2;\n  }" if (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return puVar2;\n  }" { (return_statement "return puVar2;" return identifier ;) })) (expression_statement "cVar12 = -0x5c;" (assignment_expression "cVar12 = -0x5c" identifier = number_literal) ;) (expression_statement "puVar10 = PTR___cxa_bad_cast_0043380c;" (assignment_expression "puVar10 = PTR___cxa_bad_cast_0043380c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___cxa_bad_cast_0043380c)();" (call_expression "(*(code *)PTR___cxa_bad_cast_0043380c)()" (parenthesized_expression "(*(code *)PTR___cxa_bad_cast_0043380c)" ( (pointer_expression "*(code *)PTR___cxa_bad_cast_0043380c" * (cast_expression "(code *)PTR___cxa_bad_cast_0043380c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));" (assignment_expression "uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64))" identifier = (call_expression "(**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64))" (parenthesized_expression "(**(code **)(puVar10 + 0x10f75c))" ( (pointer_expression "**(code **)(puVar10 + 0x10f75c)" * (pointer_expression "*(code **)(puVar10 + 0x10f75c)" * (cast_expression "(code **)(puVar10 + 0x10f75c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10f75c)" ( (binary_expression "puVar10 + 0x10f75c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(puVar10 + 0x10fa64))" ( (pointer_expression "*(undefined4 *)(puVar10 + 0x10fa64)" * (cast_expression "(undefined4 *)(puVar10 + 0x10fa64)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10fa64)" ( (binary_expression "puVar10 + 0x10fa64" identifier + number_literal) )))) )))) ;) (if_statement "if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }" if (parenthesized_expression "((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0))" ( (binary_expression "(uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)" (parenthesized_expression "(uVar1 < *(uint *)(*piVar8 + 8))" ( (binary_expression "uVar1 < *(uint *)(*piVar8 + 8)" identifier < (pointer_expression "*(uint *)(*piVar8 + 8)" * (cast_expression "(uint *)(*piVar8 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 8)" ( (binary_expression "*piVar8 + 8" (pointer_expression "*piVar8" * identifier) + number_literal) ))))) )) && (parenthesized_expression "(puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)" ( (comma_expression "puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" identifier = (pointer_expression "*(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" * (cast_expression "(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*piVar8 + 4) + uVar1 * 4)" ( (binary_expression "*(int *)(*piVar8 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*piVar8 + 4)" * (cast_expression "(int *)(*piVar8 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar8 + 4)" ( (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" * identifier) + number_literal) )))) + (binary_expression "uVar1 * 4" identifier * number_literal)) ))))) , (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }" { (expression_statement "piVar9 = *(int **)(puVar10 + 0x10fa68);" (assignment_expression "piVar9 = *(int **)(puVar10 + 0x10fa68)" identifier = (pointer_expression "*(int **)(puVar10 + 0x10fa68)" * (cast_expression "(int **)(puVar10 + 0x10fa68)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10fa68)" ( (binary_expression "puVar10 + 0x10fa68" identifier + number_literal) ))))) ;) (expression_statement "cVar7 = '\0';" (assignment_expression "cVar7 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));" (assignment_expression "puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" identifier = (cast_expression "(undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" identifier (argument_list "(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" ( identifier , (pointer_expression "*(undefined4 *)(puVar10 + 0x10e254)" * (cast_expression "(undefined4 *)(puVar10 + 0x10e254)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x10e254)" ( (binary_expression "puVar10 + 0x10e254" identifier + number_literal) )))) ))))) ;) (if_statement "if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }" if (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" ( (binary_expression "puVar3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return puVar3;\n    }" { (return_statement "return puVar3;" return identifier ;) })) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x10f768);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x10f768)" identifier = (pointer_expression "*(code **)(puVar10 + 0x10f768)" * (cast_expression "(code **)(puVar10 + 0x10f768)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x10f768)" ( (binary_expression "puVar10 + 0x10f768" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piStack_54 = piVar8;" (assignment_expression "piStack_54 = piVar8" identifier = identifier) ;) (expression_statement "pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));" (binary_expression "pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198))" (binary_expression "pcVar4 = std::use_facet<std" (assignment_expression "pcVar4 = std" identifier = identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>((locale *)(puVar10 + 0x116198))" identifier >> (parenthesized_expression "((locale *)(puVar10 + 0x116198))" ( (cast_expression "(locale *)(puVar10 + 0x116198)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x116198)" ( (binary_expression "puVar10 + 0x116198" identifier + number_literal) ))) )))) ;) (expression_statement "this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));" (binary_expression "this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198))" (binary_expression "this = std::use_facet<std" (assignment_expression "this = std" identifier = identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::__timepunct" : : identifier) < (binary_expression "wchar_t>>((locale *)(puVar10 + 0x116198))" identifier >> (parenthesized_expression "((locale *)(puVar10 + 0x116198))" ( (cast_expression "(locale *)(puVar10 + 0x116198)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 0x116198)" ( (binary_expression "puVar10 + 0x116198" identifier + number_literal) ))) )))) ;) (expression_statement "uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);" (assignment_expression "uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25)" identifier = (call_expression "(**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x28))" ( (pointer_expression "**(code **)(*(int *)pcVar4 + 0x28)" * (pointer_expression "*(code **)(*(int *)pcVar4 + 0x28)" * (cast_expression "(code **)(*(int *)pcVar4 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar4 + 0x28)" ( (binary_expression "*(int *)pcVar4 + 0x28" (pointer_expression "*(int *)pcVar4" * (cast_expression "(int *)pcVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar4,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" if (parenthesized_expression "(cStack_1d == 0)" ( (binary_expression "cStack_1d == 0" identifier == number_literal) )) (compound_statement "{\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }" { (expression_statement "iStack_60 = 0;" (assignment_expression "iStack_60 = 0" identifier = number_literal) ;) (expression_statement "iStack_64 = (int)cVar12;" (assignment_expression "iStack_64 = (int)cVar12" identifier = (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" else (compound_statement "{\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" { (expression_statement "uStack_5c = 0;" (assignment_expression "uStack_5c = 0" identifier = number_literal) ;) (expression_statement "iStack_64 = (int)cStack_1d;" (assignment_expression "iStack_64 = (int)cStack_1d" identifier = (cast_expression "(int)cStack_1d" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iStack_60 = (int)cVar12;" (assignment_expression "iStack_60 = (int)cVar12" identifier = (cast_expression "(int)cVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (labeled_statement "std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);" statement_identifier (ERROR "::__timepunct<wchar_t>:" : : (binary_expression "__timepunct<wchar_t" identifier < identifier) > :) : (expression_statement "_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);" (call_expression "_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1)" identifier (argument_list "((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1)" ( (parenthesized_expression "(__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1)" ( (comma_expression "__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1" (binary_expression "__timepunct<wchar_t> *)this" (binary_expression "__timepunct<wchar_t" identifier < identifier) > (pointer_expression "*)this" * (ERROR ")" )) identifier)) , (comma_expression "awStack_268,0x80,(wchar_t *)&uStack_68,param_1" identifier , (comma_expression "0x80,(wchar_t *)&uStack_68,param_1" number_literal , (comma_expression "(wchar_t *)&uStack_68,param_1" (cast_expression "(wchar_t *)&uStack_68" ( (type_descriptor "wchar_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&uStack_68" & identifier)) , identifier)))) )) ))) ;)) (expression_statement "iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);" (assignment_expression "iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268)" identifier = (call_expression "(**(code **)(pcVar11 + 0x112730))(awStack_268)" (parenthesized_expression "(**(code **)(pcVar11 + 0x112730))" ( (pointer_expression "**(code **)(pcVar11 + 0x112730)" * (pointer_expression "*(code **)(pcVar11 + 0x112730)" * (cast_expression "(code **)(pcVar11 + 0x112730)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x112730)" ( (binary_expression "pcVar11 + 0x112730" identifier + number_literal) ))))) )) (argument_list "(awStack_268)" ( identifier )))) ;) (if_statement "if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }" if (parenthesized_expression "(cVar7 == '\0')" ( (binary_expression "cVar7 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }" { (expression_statement "iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);" (assignment_expression "iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5)" identifier = (call_expression "(**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5)" (parenthesized_expression "(**(code **)(*piVar9 + 0x30))" ( (pointer_expression "**(code **)(*piVar9 + 0x30)" * (pointer_expression "*(code **)(*piVar9 + 0x30)" * (cast_expression "(code **)(*piVar9 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 0x30)" ( (binary_expression "*piVar9 + 0x30" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) )) (argument_list "(piVar9,awStack_268,iVar5)" ( identifier , identifier , identifier )))) ;) (expression_statement "cVar7 = iVar5 != iVar6;" (assignment_expression "cVar7 = iVar5 != iVar6" identifier = (binary_expression "iVar5 != iVar6" identifier != identifier)) ;) })) (expression_statement "*puVar2 = piVar9;" (assignment_expression "*puVar2 = piVar9" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "*(char *)(puVar2 + 1) = cVar7;" (assignment_expression "*(char *)(puVar2 + 1) = cVar7" (pointer_expression "*(char *)(puVar2 + 1)" * (cast_expression "(char *)(puVar2 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 1)" ( (binary_expression "puVar2 + 1" identifier + number_literal) )))) = identifier) ;) (return_statement "return puVar2;" return identifier ;) })) (labeled_statement "std::__throw_bad_cast();" statement_identifier : (ERROR ":" :) (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" identifier (argument_list "()" ( ))) ;)) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) <= IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) + (binary_expression IDENT * LIT)) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (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 IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + (binary_expression IDENT * LIT)) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ))))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (binary_expression (binary_expression (assignment_expression IDENT = IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) < (binary_expression IDENT >> (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) )))) ;) (expression_statement (binary_expression (binary_expression (assignment_expression IDENT = IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) < (binary_expression IDENT >> (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) )))) ;) (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (labeled_statement statement_identifier (ERROR : : (binary_expression IDENT < IDENT) > :) : (expression_statement (call_expression IDENT (argument_list ( (parenthesized_expression ( (comma_expression (binary_expression (binary_expression IDENT < IDENT) > (pointer_expression * (ERROR )) IDENT)) , (comma_expression IDENT , (comma_expression LIT , (comma_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , IDENT)))) )) ))) ;)) (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 IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (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 , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })))
(function_definition "undefined4 * FUN_00324008(tm *param_1)\n\n{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  ctype *pcVar4;\n  __timepunct *this;\n  int iVar5;\n  int iVar6;\n  char cVar7;\n  int *piVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  char cVar12;\n  wchar_t awStack_268 [256];\n  undefined4 uStack_68;\n  int iStack_64;\n  int iStack_60;\n  undefined4 uStack_5c;\n  int *piStack_54;\n  char cStack_1d;\n  \n  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    \n    std::__throw_bad_cast();\n  }\n  puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);\n  if (puVar2 != (undefined4 *)0x0) {\n    return puVar2;\n  }\n  cVar12 = -0x5c;\n  puVar10 = PTR___cxa_bad_cast_0043380c;\n  (*(code *)PTR___cxa_bad_cast_0043380c)();\n  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));\n  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }\n                    \n  std::__throw_bad_cast();\n}" (type_identifier "undefined4") (pointer_declarator "* FUN_00324008(tm *param_1)" (* "*") (function_declarator "FUN_00324008(tm *param_1)" (identifier "FUN_00324008") (parameter_list "(tm *param_1)" (( "(") (parameter_declaration "tm *param_1" (type_identifier "tm") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")")))) (compound_statement "{\n  uint uVar1;\n  undefined4 *puVar2;\n  undefined4 *puVar3;\n  ctype *pcVar4;\n  __timepunct *this;\n  int iVar5;\n  int iVar6;\n  char cVar7;\n  int *piVar8;\n  int *piVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  char cVar12;\n  wchar_t awStack_268 [256];\n  undefined4 uStack_68;\n  int iStack_64;\n  int iStack_60;\n  undefined4 uStack_5c;\n  int *piStack_54;\n  char cStack_1d;\n  \n  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);\n  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    \n    std::__throw_bad_cast();\n  }\n  puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);\n  if (puVar2 != (undefined4 *)0x0) {\n    return puVar2;\n  }\n  cVar12 = -0x5c;\n  puVar10 = PTR___cxa_bad_cast_0043380c;\n  (*(code *)PTR___cxa_bad_cast_0043380c)();\n  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));\n  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }\n                    \n  std::__throw_bad_cast();\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "ctype *pcVar4;" (type_identifier "ctype") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "__timepunct *this;" (type_identifier "__timepunct") (pointer_declarator "*this" (* "*") (identifier "this")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "char cVar12;" (primitive_type "char") (identifier "cVar12") (; ";")) (declaration "wchar_t awStack_268 [256];" (type_identifier "wchar_t") (array_declarator "awStack_268 [256]" (identifier "awStack_268") ([ "[") (number_literal "256") (] "]")) (; ";")) (declaration "undefined4 uStack_68;" (type_identifier "undefined4") (identifier "uStack_68") (; ";")) (declaration "int iStack_64;" (primitive_type "int") (identifier "iStack_64") (; ";")) (declaration "int iStack_60;" (primitive_type "int") (identifier "iStack_60") (; ";")) (declaration "undefined4 uStack_5c;" (type_identifier "undefined4") (identifier "uStack_5c") (; ";")) (declaration "int *piStack_54;" (primitive_type "int") (pointer_declarator "*piStack_54" (* "*") (identifier "piStack_54")) (; ";")) (declaration "char cStack_1d;" (primitive_type "char") (identifier "cStack_1d") (; ";")) (expression_statement "uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);" (assignment_expression "uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328)" (identifier "uVar1") (= "=") (call_expression "(*(code *)PTR__M_id_00433800)(PTR_id_00432328)" (parenthesized_expression "(*(code *)PTR__M_id_00433800)" (( "(") (pointer_expression "*(code *)PTR__M_id_00433800" (* "*") (cast_expression "(code *)PTR__M_id_00433800" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR__M_id_00433800"))) () ")")) (argument_list "(PTR_id_00432328)" (( "(") (identifier "PTR_id_00432328") () ")")))) (; ";")) (if_statement "if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {\n                    \n    std::__throw_bad_cast();\n  }" (if "if") (parenthesized_expression "((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0))" (( "(") (binary_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1) ||\n     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)" (parenthesized_expression "(*(uint *)(*(int *)param_1 + 8) <= uVar1)" (( "(") (binary_expression "*(uint *)(*(int *)param_1 + 8) <= uVar1" (pointer_expression "*(uint *)(*(int *)param_1 + 8)" (* "*") (cast_expression "(uint *)(*(int *)param_1 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_1 + 8)" (( "(") (binary_expression "*(int *)param_1 + 8" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (+ "+") (number_literal "8")) () ")")))) (<= "<=") (identifier "uVar1")) () ")")) (|| "||") (parenthesized_expression "(piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)" (( "(") (comma_expression "piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0" (assignment_expression "piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" (* "*") (cast_expression "(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)param_1 + 4) + uVar1 * 4)" (( "(") (binary_expression "*(int *)(*(int *)param_1 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*(int *)param_1 + 4)" (* "*") (cast_expression "(int *)(*(int *)param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_1 + 4)" (( "(") (binary_expression "*(int *)param_1 + 4" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (binary_expression "uVar1 * 4" (identifier "uVar1") (* "*") (number_literal "4"))) () ")"))))) (, ",") (binary_expression "piVar8 == (int *)0x0" (identifier "piVar8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n                    \n    std::__throw_bad_cast();\n  }" ({ "{") (labeled_statement "std::__throw_bad_cast();" (statement_identifier "std") (: ":") (ERROR ":" (: ":")) (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" (identifier "__throw_bad_cast") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (expression_statement "puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);" (assignment_expression "puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" (identifier "puVar2") (= "=") (cast_expression "(undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" (identifier "__dynamic_cast") (argument_list "(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0)" (( "(") (identifier "piVar8") (, ",") (identifier "PTR_PTR_004322f8") (, ",") (identifier "PTR_PTR_00433b04") (, ",") (number_literal "0") () ")"))))) (; ";")) (if_statement "if (puVar2 != (undefined4 *)0x0) {\n    return puVar2;\n  }" (if "if") (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return puVar2;\n  }" ({ "{") (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}"))) (expression_statement "cVar12 = -0x5c;" (assignment_expression "cVar12 = -0x5c" (identifier "cVar12") (= "=") (number_literal "-0x5c")) (; ";")) (expression_statement "puVar10 = PTR___cxa_bad_cast_0043380c;" (assignment_expression "puVar10 = PTR___cxa_bad_cast_0043380c" (identifier "puVar10") (= "=") (identifier "PTR___cxa_bad_cast_0043380c")) (; ";")) (expression_statement "(*(code *)PTR___cxa_bad_cast_0043380c)();" (call_expression "(*(code *)PTR___cxa_bad_cast_0043380c)()" (parenthesized_expression "(*(code *)PTR___cxa_bad_cast_0043380c)" (( "(") (pointer_expression "*(code *)PTR___cxa_bad_cast_0043380c" (* "*") (cast_expression "(code *)PTR___cxa_bad_cast_0043380c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___cxa_bad_cast_0043380c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));" (assignment_expression "uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64))" (identifier "uVar1") (= "=") (call_expression "(**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64))" (parenthesized_expression "(**(code **)(puVar10 + 0x10f75c))" (( "(") (pointer_expression "**(code **)(puVar10 + 0x10f75c)" (* "*") (pointer_expression "*(code **)(puVar10 + 0x10f75c)" (* "*") (cast_expression "(code **)(puVar10 + 0x10f75c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x10f75c)" (( "(") (binary_expression "puVar10 + 0x10f75c" (identifier "puVar10") (+ "+") (number_literal "0x10f75c")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(puVar10 + 0x10fa64))" (( "(") (pointer_expression "*(undefined4 *)(puVar10 + 0x10fa64)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x10fa64)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x10fa64)" (( "(") (binary_expression "puVar10 + 0x10fa64" (identifier "puVar10") (+ "+") (number_literal "0x10fa64")) () ")")))) () ")")))) (; ";")) (if_statement "if ((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }" (if "if") (parenthesized_expression "((uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0))" (( "(") (binary_expression "(uVar1 < *(uint *)(*piVar8 + 8)) &&\n     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)" (parenthesized_expression "(uVar1 < *(uint *)(*piVar8 + 8))" (( "(") (binary_expression "uVar1 < *(uint *)(*piVar8 + 8)" (identifier "uVar1") (< "<") (pointer_expression "*(uint *)(*piVar8 + 8)" (* "*") (cast_expression "(uint *)(*piVar8 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar8 + 8)" (( "(") (binary_expression "*piVar8 + 8" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "8")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)" (( "(") (comma_expression "puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0" (assignment_expression "puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" (identifier "puVar2") (= "=") (pointer_expression "*(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" (* "*") (cast_expression "(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*piVar8 + 4) + uVar1 * 4)" (( "(") (binary_expression "*(int *)(*piVar8 + 4) + uVar1 * 4" (pointer_expression "*(int *)(*piVar8 + 4)" (* "*") (cast_expression "(int *)(*piVar8 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar8 + 4)" (( "(") (binary_expression "*piVar8 + 4" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (binary_expression "uVar1 * 4" (identifier "uVar1") (* "*") (number_literal "4"))) () ")"))))) (, ",") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    piVar9 = *(int **)(puVar10 + 0x10fa68);\n    cVar7 = '\0';\n    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));\n    if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }\n    pcVar11 = *(code **)(puVar10 + 0x10f768);\n    (*pcVar11)();\n    piStack_54 = piVar8;\n    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));\n    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));\n    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);\n    if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }\n    std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);\n    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);\n    if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }\n    *puVar2 = piVar9;\n    *(char *)(puVar2 + 1) = cVar7;\n    return puVar2;\n  }" ({ "{") (expression_statement "piVar9 = *(int **)(puVar10 + 0x10fa68);" (assignment_expression "piVar9 = *(int **)(puVar10 + 0x10fa68)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(puVar10 + 0x10fa68)" (* "*") (cast_expression "(int **)(puVar10 + 0x10fa68)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x10fa68)" (( "(") (binary_expression "puVar10 + 0x10fa68" (identifier "puVar10") (+ "+") (number_literal "0x10fa68")) () ")"))))) (; ";")) (expression_statement "cVar7 = '\0';" (assignment_expression "cVar7 = '\0'" (identifier "cVar7") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));" (assignment_expression "puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" (identifier "__dynamic_cast") (argument_list "(puVar2,*(undefined4 *)(puVar10 + 0x10e254))" (( "(") (identifier "puVar2") (, ",") (pointer_expression "*(undefined4 *)(puVar10 + 0x10e254)" (* "*") (cast_expression "(undefined4 *)(puVar10 + 0x10e254)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x10e254)" (( "(") (binary_expression "puVar10 + 0x10e254" (identifier "puVar10") (+ "+") (number_literal "0x10e254")) () ")")))) () ")"))))) (; ";")) (if_statement "if (puVar3 != (undefined4 *)0x0) {\n      return puVar3;\n    }" (if "if") (parenthesized_expression "(puVar3 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar3 != (undefined4 *)0x0" (identifier "puVar3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return puVar3;\n    }" ({ "{") (return_statement "return puVar3;" (return "return") (identifier "puVar3") (; ";")) (} "}"))) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x10f768);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x10f768)" (identifier "pcVar11") (= "=") (pointer_expression "*(code **)(puVar10 + 0x10f768)" (* "*") (cast_expression "(code **)(puVar10 + 0x10f768)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + 0x10f768)" (( "(") (binary_expression "puVar10 + 0x10f768" (identifier "puVar10") (+ "+") (number_literal "0x10f768")) () ")"))))) (; ";")) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" (( "(") (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piStack_54 = piVar8;" (assignment_expression "piStack_54 = piVar8" (identifier "piStack_54") (= "=") (identifier "piVar8")) (; ";")) (expression_statement "pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));" (binary_expression "pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198))" (binary_expression "pcVar4 = std::use_facet<std" (assignment_expression "pcVar4 = std" (identifier "pcVar4") (= "=") (identifier "std")) (ERROR "::use_facet" (: ":") (: ":") (identifier "use_facet")) (< "<") (identifier "std")) (ERROR "::ctype" (: ":") (: ":") (identifier "ctype")) (< "<") (binary_expression "wchar_t>>((locale *)(puVar10 + 0x116198))" (identifier "wchar_t") (>> ">>") (parenthesized_expression "((locale *)(puVar10 + 0x116198))" (( "(") (cast_expression "(locale *)(puVar10 + 0x116198)" (( "(") (type_descriptor "locale *" (type_identifier "locale") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x116198)" (( "(") (binary_expression "puVar10 + 0x116198" (identifier "puVar10") (+ "+") (number_literal "0x116198")) () ")"))) () ")")))) (; ";")) (expression_statement "this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));" (binary_expression "this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198))" (binary_expression "this = std::use_facet<std" (assignment_expression "this = std" (identifier "this") (= "=") (identifier "std")) (ERROR "::use_facet" (: ":") (: ":") (identifier "use_facet")) (< "<") (identifier "std")) (ERROR "::__timepunct" (: ":") (: ":") (identifier "__timepunct")) (< "<") (binary_expression "wchar_t>>((locale *)(puVar10 + 0x116198))" (identifier "wchar_t") (>> ">>") (parenthesized_expression "((locale *)(puVar10 + 0x116198))" (( "(") (cast_expression "(locale *)(puVar10 + 0x116198)" (( "(") (type_descriptor "locale *" (type_identifier "locale") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 0x116198)" (( "(") (binary_expression "puVar10 + 0x116198" (identifier "puVar10") (+ "+") (number_literal "0x116198")) () ")"))) () ")")))) (; ";")) (expression_statement "uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);" (assignment_expression "uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25)" (identifier "uStack_68") (= "=") (call_expression "(**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x28))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar4 + 0x28)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar4 + 0x28)" (* "*") (cast_expression "(code **)(*(int *)pcVar4 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar4 + 0x28)" (( "(") (binary_expression "*(int *)pcVar4 + 0x28" (pointer_expression "*(int *)pcVar4" (* "*") (cast_expression "(int *)pcVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar4"))) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(pcVar4,0x25)" (( "(") (identifier "pcVar4") (, ",") (number_literal "0x25") () ")")))) (; ";")) (if_statement "if (cStack_1d == 0) {\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }\n    else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" (if "if") (parenthesized_expression "(cStack_1d == 0)" (( "(") (binary_expression "cStack_1d == 0" (identifier "cStack_1d") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iStack_60 = 0;\n      iStack_64 = (int)cVar12;\n    }" ({ "{") (expression_statement "iStack_60 = 0;" (assignment_expression "iStack_60 = 0" (identifier "iStack_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_64 = (int)cVar12;" (assignment_expression "iStack_64 = (int)cVar12" (identifier "iStack_64") (= "=") (cast_expression "(int)cVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar12"))) (; ";")) (} "}")) (else_clause "else {\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" (else "else") (compound_statement "{\n      uStack_5c = 0;\n      iStack_64 = (int)cStack_1d;\n      iStack_60 = (int)cVar12;\n    }" ({ "{") (expression_statement "uStack_5c = 0;" (assignment_expression "uStack_5c = 0" (identifier "uStack_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_64 = (int)cStack_1d;" (assignment_expression "iStack_64 = (int)cStack_1d" (identifier "iStack_64") (= "=") (cast_expression "(int)cStack_1d" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cStack_1d"))) (; ";")) (expression_statement "iStack_60 = (int)cVar12;" (assignment_expression "iStack_60 = (int)cVar12" (identifier "iStack_60") (= "=") (cast_expression "(int)cVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar12"))) (; ";")) (} "}")))) (labeled_statement "std::__timepunct<wchar_t>::_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);" (statement_identifier "std") (ERROR "::__timepunct<wchar_t>:" (: ":") (: ":") (binary_expression "__timepunct<wchar_t" (identifier "__timepunct") (< "<") (identifier "wchar_t")) (> ">") (: ":")) (: ":") (expression_statement "_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);" (call_expression "_M_put\n              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1)" (identifier "_M_put") (argument_list "((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1)" (( "(") (parenthesized_expression "(__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1)" (( "(") (comma_expression "__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1" (binary_expression "__timepunct<wchar_t> *)this" (binary_expression "__timepunct<wchar_t" (identifier "__timepunct") (< "<") (identifier "wchar_t")) (> ">") (pointer_expression "*)this" (* "*") (ERROR ")" () ")")) (identifier "this"))) (, ",") (comma_expression "awStack_268,0x80,(wchar_t *)&uStack_68,param_1" (identifier "awStack_268") (, ",") (comma_expression "0x80,(wchar_t *)&uStack_68,param_1" (number_literal "0x80") (, ",") (comma_expression "(wchar_t *)&uStack_68,param_1" (cast_expression "(wchar_t *)&uStack_68" (( "(") (type_descriptor "wchar_t *" (type_identifier "wchar_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&uStack_68" (& "&") (identifier "uStack_68"))) (, ",") (identifier "param_1"))))) () ")")) () ""))) (; ";"))) (expression_statement "iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);" (assignment_expression "iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268)" (identifier "iVar5") (= "=") (call_expression "(**(code **)(pcVar11 + 0x112730))(awStack_268)" (parenthesized_expression "(**(code **)(pcVar11 + 0x112730))" (( "(") (pointer_expression "**(code **)(pcVar11 + 0x112730)" (* "*") (pointer_expression "*(code **)(pcVar11 + 0x112730)" (* "*") (cast_expression "(code **)(pcVar11 + 0x112730)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar11 + 0x112730)" (( "(") (binary_expression "pcVar11 + 0x112730" (identifier "pcVar11") (+ "+") (number_literal "0x112730")) () ")"))))) () ")")) (argument_list "(awStack_268)" (( "(") (identifier "awStack_268") () ")")))) (; ";")) (if_statement "if (cVar7 == '\0') {\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }" (if "if") (parenthesized_expression "(cVar7 == '\0')" (( "(") (binary_expression "cVar7 == '\0'" (identifier "cVar7") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);\n      cVar7 = iVar5 != iVar6;\n    }" ({ "{") (expression_statement "iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);" (assignment_expression "iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5)" (identifier "iVar6") (= "=") (call_expression "(**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5)" (parenthesized_expression "(**(code **)(*piVar9 + 0x30))" (( "(") (pointer_expression "**(code **)(*piVar9 + 0x30)" (* "*") (pointer_expression "*(code **)(*piVar9 + 0x30)" (* "*") (cast_expression "(code **)(*piVar9 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar9 + 0x30)" (( "(") (binary_expression "*piVar9 + 0x30" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "(piVar9,awStack_268,iVar5)" (( "(") (identifier "piVar9") (, ",") (identifier "awStack_268") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "cVar7 = iVar5 != iVar6;" (assignment_expression "cVar7 = iVar5 != iVar6" (identifier "cVar7") (= "=") (binary_expression "iVar5 != iVar6" (identifier "iVar5") (!= "!=") (identifier "iVar6"))) (; ";")) (} "}"))) (expression_statement "*puVar2 = piVar9;" (assignment_expression "*puVar2 = piVar9" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "piVar9")) (; ";")) (expression_statement "*(char *)(puVar2 + 1) = cVar7;" (assignment_expression "*(char *)(puVar2 + 1) = cVar7" (pointer_expression "*(char *)(puVar2 + 1)" (* "*") (cast_expression "(char *)(puVar2 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 1)" (( "(") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1")) () ")")))) (= "=") (identifier "cVar7")) (; ";")) (return_statement "return puVar2;" (return "return") (identifier "puVar2") (; ";")) (} "}"))) (labeled_statement "std::__throw_bad_cast();" (statement_identifier "std") (: ":") (ERROR ":" (: ":")) (expression_statement "__throw_bad_cast();" (call_expression "__throw_bad_cast()" (identifier "__throw_bad_cast") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")))

/* WARNING: Unknown calling convention -- yet parameter storage is locked */
/* std::money_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > > const&
   std::use_facet<std::money_get<wchar_t, std::istreambuf_iterator<wchar_t,
   std::char_traits<wchar_t> > > >(std::locale const&) */

type_2 *
var_13::var_12<var_13::type_2<var_2,std::istreambuf_iterator<var_2,var_13::var_1<var_2>>>>
          (var_3 *var_4)

{
  type_1 var_5;
  type_2 *var_9;
  type_2 *var_11;
  type_3 *pcVar4;
  type_4 *this;
  int var_18;
  int var_19;
  type_2 var_17;
  int *var_6;
  int *piVar9;
  type_5 *var_10;
  type_6 *var_16;
  char cVar12;
  var_2 awStack_268 [256];
  type_7 uStack_68;
  int iStack_64;
  int iStack_60;
  type_7 uStack_5c;
  int *piStack_54;
  char var_14;
  
  var_5 = (*(type_6 *)PTR__M_id_00433800)(PTR_id_00432328);
  if ((*(type_1 *)(*(int *)var_4 + 8) <= var_5) ||
     (var_6 = *(int **)(*(int *)(*(int *)var_4 + 4) + var_5 * 4), var_6 == (int *)0x0)) {
                    /* WARNING: Subroutine does not return */
    var_7();
  }
  var_9 = (type_2 *)var_8(var_6,PTR_PTR_004322f8,PTR_PTR_00433b04,0);
  if (var_9 != (type_2 *)0x0) {
    return var_9;
  }
  cVar12 = -0x5c;
  var_10 = PTR___cxa_bad_cast_0043380c;
  (*(type_6 *)PTR___cxa_bad_cast_0043380c)();
  var_5 = (**(type_6 **)(var_10 + 0x10f75c))(*(type_7 *)(var_10 + 0x10fa64));
  if ((var_5 < *(type_1 *)(*var_6 + 8)) &&
     (var_9 = *(type_2 **)(*(int *)(*var_6 + 4) + var_5 * 4), var_9 != (type_2 *)0x0)) {
    piVar9 = *(int **)(var_10 + 0x10fa68);
    var_17 = (type_2)0x0;
    var_11 = (type_2 *)var_8(var_9,*(type_7 *)(var_10 + 0x10e254));
    if (var_11 != (type_2 *)0x0) {
      return var_11;
    }
    var_16 = *(type_6 **)(var_10 + 0x10f768);
    (*var_16)();
    piStack_54 = var_6;
    pcVar4 = var_12<var_13::type_3<var_2>>((var_3 *)(var_10 + 0x116198));
    this = var_12<var_13::type_4<var_2>>((var_3 *)(var_10 + 0x116198));
    uStack_68 = (**(type_6 **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);
    if (var_14 == 0) {
      iStack_60 = 0;
      iStack_64 = (int)cVar12;
    }
    else {
      uStack_5c = 0;
      iStack_64 = (int)var_14;
      iStack_60 = (int)cVar12;
    }
    type_4<var_2>::var_15
              ((type_4<var_2> *)this,awStack_268,0x80,(var_2 *)&uStack_68,(type_8 *)var_4);
    var_18 = (**(type_6 **)(var_16 + 0x112730))(awStack_268);
    if (var_17 == (type_2)0x0) {
      var_19 = (**(type_6 **)(*piVar9 + 0x30))(piVar9,awStack_268,var_18);
      var_17 = (type_2)(var_18 != var_19);
    }
    *(int **)var_9 = piVar9;
    var_9[4] = var_17;
    return var_9;
  }
                    /* WARNING: Subroutine does not return */
  var_7();
}


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

undefined4 * MASKED(tm *param_1)

{
  uint uVar1;
  undefined4 *puVar2;
  undefined4 *puVar3;
  ctype *pcVar4;
  __timepunct *this;
  int iVar5;
  int iVar6;
  char cVar7;
  int *piVar8;
  int *piVar9;
  undefined *puVar10;
  code *pcVar11;
  char cVar12;
  wchar_t awStack_268 [256];
  undefined4 uStack_68;
  int iStack_64;
  int iStack_60;
  undefined4 uStack_5c;
  int *piStack_54;
  char cStack_1d;
  
  uVar1 = (*(code *)PTR__M_id_00433800)(PTR_id_00432328);
  if ((*(uint *)(*(int *)param_1 + 8) <= uVar1) ||
     (piVar8 = *(int **)(*(int *)(*(int *)param_1 + 4) + uVar1 * 4), piVar8 == (int *)0x0)) {
                    /* WARNING: Subroutine does not return */
    std::__throw_bad_cast();
  }
  puVar2 = (undefined4 *)__dynamic_cast(piVar8,PTR_PTR_004322f8,PTR_PTR_00433b04,0);
  if (puVar2 != (undefined4 *)0x0) {
    return puVar2;
  }
  cVar12 = -0x5c;
  puVar10 = PTR___cxa_bad_cast_0043380c;
  (*(code *)PTR___cxa_bad_cast_0043380c)();
  uVar1 = (**(code **)(puVar10 + 0x10f75c))(*(undefined4 *)(puVar10 + 0x10fa64));
  if ((uVar1 < *(uint *)(*piVar8 + 8)) &&
     (puVar2 = *(undefined4 **)(*(int *)(*piVar8 + 4) + uVar1 * 4), puVar2 != (undefined4 *)0x0)) {
    piVar9 = *(int **)(puVar10 + 0x10fa68);
    cVar7 = '\0';
    puVar3 = (undefined4 *)__dynamic_cast(puVar2,*(undefined4 *)(puVar10 + 0x10e254));
    if (puVar3 != (undefined4 *)0x0) {
      return puVar3;
    }
    pcVar11 = *(code **)(puVar10 + 0x10f768);
    (*pcVar11)();
    piStack_54 = piVar8;
    pcVar4 = std::use_facet<std::ctype<wchar_t>>((locale *)(puVar10 + 0x116198));
    this = std::use_facet<std::__timepunct<wchar_t>>((locale *)(puVar10 + 0x116198));
    uStack_68 = (**(code **)(*(int *)pcVar4 + 0x28))(pcVar4,0x25);
    if (cStack_1d == 0) {
      iStack_60 = 0;
      iStack_64 = (int)cVar12;
    }
    else {
      uStack_5c = 0;
      iStack_64 = (int)cStack_1d;
      iStack_60 = (int)cVar12;
    }
    std::__timepunct<wchar_t>::_M_put
              ((__timepunct<wchar_t> *)this,awStack_268,0x80,(wchar_t *)&uStack_68,param_1);
    iVar5 = (**(code **)(pcVar11 + 0x112730))(awStack_268);
    if (cVar7 == '\0') {
      iVar6 = (**(code **)(*piVar9 + 0x30))(piVar9,awStack_268,iVar5);
      cVar7 = iVar5 != iVar6;
    }
    *puVar2 = piVar9;
    *(char *)(puVar2 + 1) = cVar7;
    return puVar2;
  }
                    /* WARNING: Subroutine does not return */
  std::__throw_bad_cast();
}

