
/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,
   std::_Ios_Iostate&, tm*, char, char) const */

undefined4 *
std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get
          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5
          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)

{
  ctype *pcVar1;
  int iVar2;
  int *piVar3;
  undefined4 local_38;
  int local_34;
  int local_30;
  undefined4 local_2c;
  int *local_28;
  int local_24;
  
  pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));
  iVar2 = *(int *)pcVar1;
  *param_8 = 0;
  local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);
  if (param_11 == 0) {
    local_30 = 0;
    local_34 = (int)param_10;
  }
  else {
    local_2c = 0;
    local_34 = (int)param_11;
    local_30 = (int)param_10;
  }
  _M_extract_via_format
            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);
  iVar2 = local_24;
  piVar3 = local_28;
  if ((local_28 != (int *)0x0) && (local_24 == -1)) {
    if ((int *)local_28[2] < (int *)local_28[3]) {
      iVar2 = *(int *)local_28[2];
    }
    else {
      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);
    }
    if (iVar2 == -1) {
      piVar3 = (int *)0x0;
    }
  }
  if ((param_5 != (int *)0x0) && (param_6 == -1)) {
    if ((int *)param_5[2] < (int *)param_5[3]) {
      param_6 = *(int *)param_5[2];
    }
    else {
      param_6 = (**(code **)(*param_5 + 0x24))();
    }
  }
  if ((param_6 == -1) == (iVar2 == -1)) {
    *param_8 = *param_8 | 2;
  }
  *param_1 = piVar3;
  param_1[1] = local_24;
  return param_1;
}



/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,
   std::_Ios_Iostate&, tm*, char, char) const */

undefined4 *
std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get
          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5
          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)

{
  ctype *pcVar1;
  int iVar2;
  int *piVar3;
  undefined4 local_38;
  int local_34;
  int local_30;
  undefined4 local_2c;
  int *local_28;
  int local_24;
  
  pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));
  iVar2 = *(int *)pcVar1;
  *param_8 = 0;
  local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);
  if (param_11 == 0) {
    local_30 = 0;
    local_34 = (int)param_10;
  }
  else {
    local_2c = 0;
    local_34 = (int)param_11;
    local_30 = (int)param_10;
  }
  _M_extract_via_format
            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);
  iVar2 = local_24;
  piVar3 = local_28;
  if ((local_28 != (int *)0x0) && (local_24 == -1)) {
    if ((int *)local_28[2] < (int *)local_28[3]) {
      iVar2 = *(int *)local_28[2];
    }
    else {
      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);
    }
    if (iVar2 == -1) {
      piVar3 = (int *)0x0;
    }
  }
  if ((param_5 != (int *)0x0) && (param_6 == -1)) {
    if ((int *)param_5[2] < (int *)param_5[3]) {
      param_6 = *(int *)param_5[2];
    }
    else {
      param_6 = (**(code **)(*param_5 + 0x24))();
    }
  }
  if ((param_6 == -1) == (iVar2 == -1)) {
    *param_8 = *param_8 | 2;
  }
  *param_1 = piVar3;
  param_1[1] = local_24;
  return param_1;
}


lui gp,0x10
addiu gp,gp,-0x773c
addu gp,gp,t9
addiu sp,sp,-0x68
lw t9,-0x6708(gp)
sw s0,0x4c(sp)
sw s1,0x50(sp)
or s1,a0,zero
sw gp,0x28(sp)
sw ra,0x64(sp)
sw s5,0x60(sp)
sw s4,0x5c(sp)
or s4,a1,zero
sw s3,0x58(sp)
sw s2,0x54(sp)
sw a2,0x70(sp)
sw a3,0x74(sp)
lw s0,0x80(sp)
lw s2,0x84(sp)
lb s5,0x8f(sp)
addiu a0,s0,0x6c
bal 0x0032215c
_lb s3,0x93(sp)
or a0,v0,zero
lw v0,0x0(v0)
sw zero,0x0(s2)
lw t9,0x28(v0)
jalr t9
_li a1,0x25
lw gp,0x28(sp)
bne s3,zero,0x00341ab0
_sw v0,0x30(sp)
sw s5,0x34(sp)
sw zero,0x38(sp)
addiu v0,sp,0x30
lw t9,-0x6454(gp)
lw a2,0x70(sp)
addiu a0,sp,0x40
sw v0,0x24(sp)
or a1,s4,zero
lw v0,0x88(sp)
lw a3,0x74(sp)
sw s0,0x18(sp)
sw v0,0x20(sp)
lw v0,0x78(sp)
sw s2,0x1c(sp)
sw v0,0x10(sp)
lw v0,0x7c(sp)
bal 0x00340728
_sw v0,0x14(sp)
lw s0,0x40(sp)
lw v0,0x44(sp)
sw s0,0x70(sp)
or s3,s0,zero
beq s0,zero,0x003419f8
_sw v0,0x74(sp)
li v1,-0x1
beq v0,v1,0x00341a88
_nop
lw a0,0x78(sp)
addiu v0,v0,0x1
sltiu s0,v0,0x1
beq a0,zero,0x00341a18
_lw v0,0x7c(sp)
li v1,-0x1
beq v0,v1,0x00341a6c
_nop
addiu v0,v0,0x1
sltiu v0,v0,0x1
bne v0,s0,0x00341a38
_lw v1,0x74(sp)
lw v0,0x0(s2)
ori v0,v0,0x2
sw v0,0x0(s2)
lw v1,0x74(sp)
or v0,s1,zero
lw ra,0x64(sp)
lw s5,0x60(sp)
lw s4,0x5c(sp)
lw s2,0x54(sp)
lw s0,0x4c(sp)
sw s3,0x70(sp)
sw s3,0x0(s1)
sw v1,0x4(s1)
lw s3,0x58(sp)
lw s1,0x50(sp)
jr ra
_addiu sp,sp,0x68
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x00341ac0
_nop
b 0x00341a18
_lw v0,0x0(v1)
lw v1,0x8(s0)
lw v0,0xc(s0)
sltu v0,v1,v0
beq v0,zero,0x00341ad8
_nop
lw v0,0x0(v1)
nor s3,zero,v0
movz s0,zero,s3
b 0x003419f8
_or s3,s0,zero
sw s3,0x34(sp)
sw s5,0x38(sp)
b 0x00341994
_sw zero,0x3c(sp)
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
b 0x00341a1c
_addiu v0,v0,0x1
lw v0,0x0(s0)
lw t9,0x24(v0)
jalr t9
_or a0,s0,zero
b 0x00341aa4
_nor s3,zero,v0
(translation_unit "/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >\n   >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,\n   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,\n   std::_Ios_Iostate&, tm*, char, char) const */\n\nundefined4 *\nstd::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)\n\n{\n  ctype *pcVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  int local_24;\n  \n  pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));\n  iVar2 = *(int *)pcVar1;\n  *param_8 = 0;\n  local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);\n  if (param_11 == 0) {\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }\n  else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }\n  _M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);\n  iVar2 = local_24;\n  piVar3 = local_28;\n  if ((local_28 != (int *)0x0) && (local_24 == -1)) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }\n  if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }\n  if ((param_6 == -1) == (iVar2 == -1)) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar3;\n  param_1[1] = local_24;\n  return param_1;\n}\n\n" comment (ERROR "undefined4 *\nstd::time_get<wchar_t," (binary_expression "undefined4 *\nstd::time_get<wchar_t" (binary_expression "undefined4 *\nstd" identifier * identifier) (ERROR "::time_get" : : identifier) < identifier) ,) (labeled_statement "std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" 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>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" (binary_expression "char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" identifier < (binary_expression "wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" identifier >> (ERROR ">::" > : :) (call_expression "do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" identifier (argument_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" ( (binary_expression "undefined4 *param_1" identifier * identifier) , identifier (ERROR "param_2" identifier) , identifier (ERROR "param_3" identifier) , identifier (ERROR "param_4" identifier) , (binary_expression "int *param_5" identifier * identifier) , (ERROR "int" identifier) identifier , (ERROR "int" identifier) identifier , (binary_expression "uint *param_8" identifier * identifier) , identifier (ERROR "param_9" identifier) , (ERROR "char" identifier) identifier , (ERROR "char" identifier) identifier ))))) ;)) (compound_statement "{\n  ctype *pcVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  int local_24;\n  \n  pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));\n  iVar2 = *(int *)pcVar1;\n  *param_8 = 0;\n  local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);\n  if (param_11 == 0) {\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }\n  else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }\n  _M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);\n  iVar2 = local_24;\n  piVar3 = local_28;\n  if ((local_28 != (int *)0x0) && (local_24 == -1)) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }\n  if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }\n  if ((param_6 == -1) == (iVar2 == -1)) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar3;\n  param_1[1] = local_24;\n  return param_1;\n}" { (declaration "ctype *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));" (binary_expression "pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c))" (assignment_expression "pcVar1 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>((locale *)(param_7 + 0x6c))" identifier >> (parenthesized_expression "((locale *)(param_7 + 0x6c))" ( (cast_expression "(locale *)(param_7 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) ))) )))) ;) (expression_statement "iVar2 = *(int *)pcVar1;" (assignment_expression "iVar2 = *(int *)pcVar1" identifier = (pointer_expression "*(int *)pcVar1" * (cast_expression "(int *)pcVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);" (assignment_expression "local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25)" identifier = (call_expression "(**(code **)(iVar2 + 0x28))(pcVar1,0x25)" (parenthesized_expression "(**(code **)(iVar2 + 0x28))" ( (pointer_expression "**(code **)(iVar2 + 0x28)" * (pointer_expression "*(code **)(iVar2 + 0x28)" * (cast_expression "(code **)(iVar2 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) )) (argument_list "(pcVar1,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (param_11 == 0) {\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }\n  else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" if (parenthesized_expression "(param_11 == 0)" ( (binary_expression "param_11 == 0" identifier == number_literal) )) (compound_statement "{\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_34 = (int)param_10;" (assignment_expression "local_34 = (int)param_10" identifier = (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" else (compound_statement "{\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" { (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_34 = (int)param_11;" (assignment_expression "local_34 = (int)param_11" identifier = (cast_expression "(int)param_11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_30 = (int)param_10;" (assignment_expression "local_30 = (int)param_10" identifier = (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "_M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);" (call_expression "_M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38)" identifier (argument_list "(&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38)" ( (pointer_expression "&local_28" & identifier) , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "iVar2 = local_24;" (assignment_expression "iVar2 = local_24" identifier = identifier) ;) (expression_statement "piVar3 = local_28;" (assignment_expression "piVar3 = local_28" identifier = identifier) ;) (if_statement "if ((local_28 != (int *)0x0) && (local_24 == -1)) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }" if (parenthesized_expression "((local_28 != (int *)0x0) && (local_24 == -1))" ( (binary_expression "(local_28 != (int *)0x0) && (local_24 == -1)" (parenthesized_expression "(local_28 != (int *)0x0)" ( (binary_expression "local_28 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_24 == -1)" ( (binary_expression "local_24 == -1" identifier == number_literal) ))) )) (compound_statement "{\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }" { (if_statement "if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" if (parenthesized_expression "((int *)local_28[2] < (int *)local_28[3])" ( (binary_expression "(int *)local_28[2] < (int *)local_28[3]" (cast_expression "(int *)local_28[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_28[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar2 = *(int *)local_28[2];\n    }" { (expression_statement "iVar2 = *(int *)local_28[2];" (assignment_expression "iVar2 = *(int *)local_28[2]" identifier = (pointer_expression "*(int *)local_28[2]" * (cast_expression "(int *)local_28[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" else (compound_statement "{\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" { (expression_statement "iVar2 = (**(code **)(*local_28 + 0x24))(local_28);" (assignment_expression "iVar2 = (**(code **)(*local_28 + 0x24))(local_28)" identifier = (call_expression "(**(code **)(*local_28 + 0x24))(local_28)" (parenthesized_expression "(**(code **)(*local_28 + 0x24))" ( (pointer_expression "**(code **)(*local_28 + 0x24)" * (pointer_expression "*(code **)(*local_28 + 0x24)" * (cast_expression "(code **)(*local_28 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_28 + 0x24)" ( (binary_expression "*local_28 + 0x24" (pointer_expression "*local_28" * identifier) + number_literal) ))))) )) (argument_list "(local_28)" ( identifier )))) ;) }))) (if_statement "if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n      piVar3 = (int *)0x0;\n    }" { (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      param_6 = *(int *)param_5[2];\n    }" { (expression_statement "param_6 = *(int *)param_5[2];" (assignment_expression "param_6 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" else (compound_statement "{\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" { (expression_statement "param_6 = (**(code **)(*param_5 + 0x24))();" (assignment_expression "param_6 = (**(code **)(*param_5 + 0x24))()" identifier = (call_expression "(**(code **)(*param_5 + 0x24))()" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) })) (if_statement "if ((param_6 == -1) == (iVar2 == -1)) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "((param_6 == -1) == (iVar2 == -1))" ( (binary_expression "(param_6 == -1) == (iVar2 == -1)" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) ))) )) (compound_statement "{\n    *param_8 = *param_8 | 2;\n  }" { (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 2" (pointer_expression "*param_8" * identifier) | number_literal)) ;) })) (expression_statement "*param_1 = piVar3;" (assignment_expression "*param_1 = piVar3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_24;" (assignment_expression "param_1[1] = local_24" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) }))
(translation_unit "/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >\n   >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,\n   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,\n   std::_Ios_Iostate&, tm*, char, char) const */\n\nundefined4 *\nstd::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)\n\n{\n  ctype *pcVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  int local_24;\n  \n  pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));\n  iVar2 = *(int *)pcVar1;\n  *param_8 = 0;\n  local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);\n  if (param_11 == 0) {\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }\n  else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }\n  _M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);\n  iVar2 = local_24;\n  piVar3 = local_28;\n  if ((local_28 != (int *)0x0) && (local_24 == -1)) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }\n  if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }\n  if ((param_6 == -1) == (iVar2 == -1)) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar3;\n  param_1[1] = local_24;\n  return param_1;\n}\n\n" comment (ERROR "undefined4 *\nstd::time_get<wchar_t," (binary_expression "undefined4 *\nstd::time_get<wchar_t" (binary_expression "undefined4 *\nstd" identifier * identifier) (ERROR "::time_get" : : identifier) < identifier) ,) (labeled_statement "std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" 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>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" (binary_expression "char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" identifier < (binary_expression "wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" identifier >> (ERROR ">::" > : :) (call_expression "do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" identifier (argument_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" ( (binary_expression "undefined4 *param_1" identifier * identifier) , identifier (ERROR "param_2" identifier) , identifier (ERROR "param_3" identifier) , identifier (ERROR "param_4" identifier) , (binary_expression "int *param_5" identifier * identifier) , (ERROR "int" identifier) identifier , (ERROR "int" identifier) identifier , (binary_expression "uint *param_8" identifier * identifier) , identifier (ERROR "param_9" identifier) , (ERROR "char" identifier) identifier , (ERROR "char" identifier) identifier ))))) ;)) (compound_statement "{\n  ctype *pcVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  int local_24;\n  \n  pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));\n  iVar2 = *(int *)pcVar1;\n  *param_8 = 0;\n  local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);\n  if (param_11 == 0) {\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }\n  else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }\n  _M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);\n  iVar2 = local_24;\n  piVar3 = local_28;\n  if ((local_28 != (int *)0x0) && (local_24 == -1)) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }\n  if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }\n  if ((param_6 == -1) == (iVar2 == -1)) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar3;\n  param_1[1] = local_24;\n  return param_1;\n}" { (declaration "ctype *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));" (binary_expression "pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c))" (assignment_expression "pcVar1 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>((locale *)(param_7 + 0x6c))" identifier >> (parenthesized_expression "((locale *)(param_7 + 0x6c))" ( (cast_expression "(locale *)(param_7 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) ))) )))) ;) (expression_statement "iVar2 = *(int *)pcVar1;" (assignment_expression "iVar2 = *(int *)pcVar1" identifier = (pointer_expression "*(int *)pcVar1" * (cast_expression "(int *)pcVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);" (assignment_expression "local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25)" identifier = (call_expression "(**(code **)(iVar2 + 0x28))(pcVar1,0x25)" (parenthesized_expression "(**(code **)(iVar2 + 0x28))" ( (pointer_expression "**(code **)(iVar2 + 0x28)" * (pointer_expression "*(code **)(iVar2 + 0x28)" * (cast_expression "(code **)(iVar2 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) )) (argument_list "(pcVar1,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (param_11 == 0) {\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }\n  else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" if (parenthesized_expression "(param_11 == 0)" ( (binary_expression "param_11 == 0" identifier == number_literal) )) (compound_statement "{\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_34 = (int)param_10;" (assignment_expression "local_34 = (int)param_10" identifier = (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" else (compound_statement "{\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" { (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_34 = (int)param_11;" (assignment_expression "local_34 = (int)param_11" identifier = (cast_expression "(int)param_11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_30 = (int)param_10;" (assignment_expression "local_30 = (int)param_10" identifier = (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "_M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);" (call_expression "_M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38)" identifier (argument_list "(&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38)" ( (pointer_expression "&local_28" & identifier) , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "iVar2 = local_24;" (assignment_expression "iVar2 = local_24" identifier = identifier) ;) (expression_statement "piVar3 = local_28;" (assignment_expression "piVar3 = local_28" identifier = identifier) ;) (if_statement "if ((local_28 != (int *)0x0) && (local_24 == -1)) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }" if (parenthesized_expression "((local_28 != (int *)0x0) && (local_24 == -1))" ( (binary_expression "(local_28 != (int *)0x0) && (local_24 == -1)" (parenthesized_expression "(local_28 != (int *)0x0)" ( (binary_expression "local_28 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_24 == -1)" ( (binary_expression "local_24 == -1" identifier == number_literal) ))) )) (compound_statement "{\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }" { (if_statement "if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" if (parenthesized_expression "((int *)local_28[2] < (int *)local_28[3])" ( (binary_expression "(int *)local_28[2] < (int *)local_28[3]" (cast_expression "(int *)local_28[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_28[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar2 = *(int *)local_28[2];\n    }" { (expression_statement "iVar2 = *(int *)local_28[2];" (assignment_expression "iVar2 = *(int *)local_28[2]" identifier = (pointer_expression "*(int *)local_28[2]" * (cast_expression "(int *)local_28[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" else (compound_statement "{\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" { (expression_statement "iVar2 = (**(code **)(*local_28 + 0x24))(local_28);" (assignment_expression "iVar2 = (**(code **)(*local_28 + 0x24))(local_28)" identifier = (call_expression "(**(code **)(*local_28 + 0x24))(local_28)" (parenthesized_expression "(**(code **)(*local_28 + 0x24))" ( (pointer_expression "**(code **)(*local_28 + 0x24)" * (pointer_expression "*(code **)(*local_28 + 0x24)" * (cast_expression "(code **)(*local_28 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_28 + 0x24)" ( (binary_expression "*local_28 + 0x24" (pointer_expression "*local_28" * identifier) + number_literal) ))))) )) (argument_list "(local_28)" ( identifier )))) ;) }))) (if_statement "if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n      piVar3 = (int *)0x0;\n    }" { (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      param_6 = *(int *)param_5[2];\n    }" { (expression_statement "param_6 = *(int *)param_5[2];" (assignment_expression "param_6 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" else (compound_statement "{\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" { (expression_statement "param_6 = (**(code **)(*param_5 + 0x24))();" (assignment_expression "param_6 = (**(code **)(*param_5 + 0x24))()" identifier = (call_expression "(**(code **)(*param_5 + 0x24))()" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) })) (if_statement "if ((param_6 == -1) == (iVar2 == -1)) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "((param_6 == -1) == (iVar2 == -1))" ( (binary_expression "(param_6 == -1) == (iVar2 == -1)" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) ))) )) (compound_statement "{\n    *param_8 = *param_8 | 2;\n  }" { (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 2" (pointer_expression "*param_8" * identifier) | number_literal)) ;) })) (expression_statement "*param_1 = piVar3;" (assignment_expression "*param_1 = piVar3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_24;" (assignment_expression "param_1[1] = local_24" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) }))
(translation_unit "undefined4 *\nstd::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)\n\n{\n  ctype *pcVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  int local_24;\n  \n  pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));\n  iVar2 = *(int *)pcVar1;\n  *param_8 = 0;\n  local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);\n  if (param_11 == 0) {\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }\n  else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }\n  _M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);\n  iVar2 = local_24;\n  piVar3 = local_28;\n  if ((local_28 != (int *)0x0) && (local_24 == -1)) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }\n  if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }\n  if ((param_6 == -1) == (iVar2 == -1)) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar3;\n  param_1[1] = local_24;\n  return param_1;\n}\n\n" (ERROR "undefined4 *\nstd::time_get<wchar_t," (binary_expression "undefined4 *\nstd::time_get<wchar_t" (binary_expression "undefined4 *\nstd" identifier * identifier) (ERROR "::time_get" : : identifier) < identifier) ,) (labeled_statement "std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" 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>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" (binary_expression "char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" identifier < (binary_expression "wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" identifier >> (ERROR ">::" > : :) (call_expression "do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" identifier (argument_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" ( (binary_expression "undefined4 *param_1" identifier * identifier) , identifier (ERROR "param_2" identifier) , identifier (ERROR "param_3" identifier) , identifier (ERROR "param_4" identifier) , (binary_expression "int *param_5" identifier * identifier) , (ERROR "int" identifier) identifier , (ERROR "int" identifier) identifier , (binary_expression "uint *param_8" identifier * identifier) , identifier (ERROR "param_9" identifier) , (ERROR "char" identifier) identifier , (ERROR "char" identifier) identifier ))))) ;)) (compound_statement "{\n  ctype *pcVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  int local_24;\n  \n  pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));\n  iVar2 = *(int *)pcVar1;\n  *param_8 = 0;\n  local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);\n  if (param_11 == 0) {\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }\n  else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }\n  _M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);\n  iVar2 = local_24;\n  piVar3 = local_28;\n  if ((local_28 != (int *)0x0) && (local_24 == -1)) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }\n  if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }\n  if ((param_6 == -1) == (iVar2 == -1)) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar3;\n  param_1[1] = local_24;\n  return param_1;\n}" { (declaration "ctype *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));" (binary_expression "pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c))" (assignment_expression "pcVar1 = use_facet<std" identifier = (binary_expression "use_facet<std" identifier < identifier)) (ERROR "::ctype" : : identifier) < (binary_expression "wchar_t>>((locale *)(param_7 + 0x6c))" identifier >> (parenthesized_expression "((locale *)(param_7 + 0x6c))" ( (cast_expression "(locale *)(param_7 + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) ))) )))) ;) (expression_statement "iVar2 = *(int *)pcVar1;" (assignment_expression "iVar2 = *(int *)pcVar1" identifier = (pointer_expression "*(int *)pcVar1" * (cast_expression "(int *)pcVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" * identifier) = number_literal) ;) (expression_statement "local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);" (assignment_expression "local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25)" identifier = (call_expression "(**(code **)(iVar2 + 0x28))(pcVar1,0x25)" (parenthesized_expression "(**(code **)(iVar2 + 0x28))" ( (pointer_expression "**(code **)(iVar2 + 0x28)" * (pointer_expression "*(code **)(iVar2 + 0x28)" * (cast_expression "(code **)(iVar2 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) )) (argument_list "(pcVar1,0x25)" ( identifier , number_literal )))) ;) (if_statement "if (param_11 == 0) {\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }\n  else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" if (parenthesized_expression "(param_11 == 0)" ( (binary_expression "param_11 == 0" identifier == number_literal) )) (compound_statement "{\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }" { (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "local_34 = (int)param_10;" (assignment_expression "local_34 = (int)param_10" identifier = (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" else (compound_statement "{\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" { (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "local_34 = (int)param_11;" (assignment_expression "local_34 = (int)param_11" identifier = (cast_expression "(int)param_11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_30 = (int)param_10;" (assignment_expression "local_30 = (int)param_10" identifier = (cast_expression "(int)param_10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "_M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);" (call_expression "_M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38)" identifier (argument_list "(&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38)" ( (pointer_expression "&local_28" & identifier) , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_38" & identifier) ))) ;) (expression_statement "iVar2 = local_24;" (assignment_expression "iVar2 = local_24" identifier = identifier) ;) (expression_statement "piVar3 = local_28;" (assignment_expression "piVar3 = local_28" identifier = identifier) ;) (if_statement "if ((local_28 != (int *)0x0) && (local_24 == -1)) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }" if (parenthesized_expression "((local_28 != (int *)0x0) && (local_24 == -1))" ( (binary_expression "(local_28 != (int *)0x0) && (local_24 == -1)" (parenthesized_expression "(local_28 != (int *)0x0)" ( (binary_expression "local_28 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_24 == -1)" ( (binary_expression "local_24 == -1" identifier == number_literal) ))) )) (compound_statement "{\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }" { (if_statement "if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" if (parenthesized_expression "((int *)local_28[2] < (int *)local_28[3])" ( (binary_expression "(int *)local_28[2] < (int *)local_28[3]" (cast_expression "(int *)local_28[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ])) < (cast_expression "(int *)local_28[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar2 = *(int *)local_28[2];\n    }" { (expression_statement "iVar2 = *(int *)local_28[2];" (assignment_expression "iVar2 = *(int *)local_28[2]" identifier = (pointer_expression "*(int *)local_28[2]" * (cast_expression "(int *)local_28[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_28[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" else (compound_statement "{\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" { (expression_statement "iVar2 = (**(code **)(*local_28 + 0x24))(local_28);" (assignment_expression "iVar2 = (**(code **)(*local_28 + 0x24))(local_28)" identifier = (call_expression "(**(code **)(*local_28 + 0x24))(local_28)" (parenthesized_expression "(**(code **)(*local_28 + 0x24))" ( (pointer_expression "**(code **)(*local_28 + 0x24)" * (pointer_expression "*(code **)(*local_28 + 0x24)" * (cast_expression "(code **)(*local_28 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_28 + 0x24)" ( (binary_expression "*local_28 + 0x24" (pointer_expression "*local_28" * identifier) + number_literal) ))))) )) (argument_list "(local_28)" ( identifier )))) ;) }))) (if_statement "if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n      piVar3 = (int *)0x0;\n    }" { (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }" if (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" ( (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" ( (binary_expression "param_5 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) ))) )) (compound_statement "{\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }" { (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" if (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" ( (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])) < (cast_expression "(int *)param_5[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[3]" identifier [ number_literal ]))) )) (compound_statement "{\n      param_6 = *(int *)param_5[2];\n    }" { (expression_statement "param_6 = *(int *)param_5[2];" (assignment_expression "param_6 = *(int *)param_5[2]" identifier = (pointer_expression "*(int *)param_5[2]" * (cast_expression "(int *)param_5[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_5[2]" identifier [ number_literal ])))) ;) }) (else_clause "else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" else (compound_statement "{\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" { (expression_statement "param_6 = (**(code **)(*param_5 + 0x24))();" (assignment_expression "param_6 = (**(code **)(*param_5 + 0x24))()" identifier = (call_expression "(**(code **)(*param_5 + 0x24))()" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" ( (pointer_expression "**(code **)(*param_5 + 0x24)" * (pointer_expression "*(code **)(*param_5 + 0x24)" * (cast_expression "(code **)(*param_5 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_5 + 0x24)" ( (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" * identifier) + number_literal) ))))) )) (argument_list "()" ( )))) ;) }))) })) (if_statement "if ((param_6 == -1) == (iVar2 == -1)) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "((param_6 == -1) == (iVar2 == -1))" ( (binary_expression "(param_6 == -1) == (iVar2 == -1)" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) ))) )) (compound_statement "{\n    *param_8 = *param_8 | 2;\n  }" { (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 2" (pointer_expression "*param_8" * identifier) | number_literal)) ;) })) (expression_statement "*param_1 = piVar3;" (assignment_expression "*param_1 = piVar3" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_24;" (assignment_expression "param_1[1] = local_24" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) }))
(translation_unit (ERROR (binary_expression (binary_expression IDENT * IDENT) (ERROR : : IDENT) < IDENT) ,) (labeled_statement statement_identifier (ERROR : : (comma_expression (binary_expression IDENT < IDENT) , IDENT) :) : (expression_statement (binary_expression IDENT < (binary_expression IDENT >> (ERROR > : :) (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) , IDENT (ERROR IDENT) , IDENT (ERROR IDENT) , IDENT (ERROR IDENT) , (binary_expression IDENT * IDENT) , (ERROR IDENT) IDENT , (ERROR IDENT) IDENT , (binary_expression IDENT * IDENT) , IDENT (ERROR IDENT) , (ERROR IDENT) IDENT , (ERROR IDENT) IDENT ))))) ;)) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (binary_expression (assignment_expression IDENT = (binary_expression 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_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 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)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (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 )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) (else_clause else (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 ( )))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) == (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) }))
(ERROR "undefined4 *\nstd::time_get<wchar_t," (binary_expression "undefined4 *\nstd::time_get<wchar_t" (binary_expression "undefined4 *\nstd" (identifier "undefined4") (* "*") (identifier "std")) (ERROR "::time_get" (: ":") (: ":") (identifier "time_get")) (< "<") (identifier "wchar_t")) (, ",")) (labeled_statement "std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" (statement_identifier "std") (ERROR "::istreambuf_iterator<wchar_t,std:" (: ":") (: ":") (comma_expression "istreambuf_iterator<wchar_t,std" (binary_expression "istreambuf_iterator<wchar_t" (identifier "istreambuf_iterator") (< "<") (identifier "wchar_t")) (, ",") (identifier "std")) (: ":")) (: ":") (expression_statement "char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" (binary_expression "char_traits<wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" (identifier "char_traits") (< "<") (binary_expression "wchar_t>>>::do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" (identifier "wchar_t") (>> ">>") (ERROR ">::" (> ">") (: ":") (: ":")) (call_expression "do_get\n          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" (identifier "do_get") (argument_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5\n          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)" (( "(") (binary_expression "undefined4 *param_1" (identifier "undefined4") (* "*") (identifier "param_1")) (, ",") (identifier "undefined4") (ERROR "param_2" (identifier "param_2")) (, ",") (identifier "undefined4") (ERROR "param_3" (identifier "param_3")) (, ",") (identifier "undefined4") (ERROR "param_4" (identifier "param_4")) (, ",") (binary_expression "int *param_5" (identifier "int") (* "*") (identifier "param_5")) (, ",") (ERROR "int" (identifier "int")) (identifier "param_6") (, ",") (ERROR "int" (identifier "int")) (identifier "param_7") (, ",") (binary_expression "uint *param_8" (identifier "uint") (* "*") (identifier "param_8")) (, ",") (identifier "undefined4") (ERROR "param_9" (identifier "param_9")) (, ",") (ERROR "char" (identifier "char")) (identifier "param_10") (, ",") (ERROR "char" (identifier "char")) (identifier "param_11") () ")"))))) (; ""))) (compound_statement "{\n  ctype *pcVar1;\n  int iVar2;\n  int *piVar3;\n  undefined4 local_38;\n  int local_34;\n  int local_30;\n  undefined4 local_2c;\n  int *local_28;\n  int local_24;\n  \n  pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));\n  iVar2 = *(int *)pcVar1;\n  *param_8 = 0;\n  local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);\n  if (param_11 == 0) {\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }\n  else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }\n  _M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);\n  iVar2 = local_24;\n  piVar3 = local_28;\n  if ((local_28 != (int *)0x0) && (local_24 == -1)) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }\n  if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }\n  if ((param_6 == -1) == (iVar2 == -1)) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar3;\n  param_1[1] = local_24;\n  return param_1;\n}" ({ "{") (declaration "ctype *pcVar1;" (type_identifier "ctype") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "int *local_28;" (primitive_type "int") (pointer_declarator "*local_28" (* "*") (identifier "local_28")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));" (binary_expression "pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c))" (assignment_expression "pcVar1 = use_facet<std" (identifier "pcVar1") (= "=") (binary_expression "use_facet<std" (identifier "use_facet") (< "<") (identifier "std"))) (ERROR "::ctype" (: ":") (: ":") (identifier "ctype")) (< "<") (binary_expression "wchar_t>>((locale *)(param_7 + 0x6c))" (identifier "wchar_t") (>> ">>") (parenthesized_expression "((locale *)(param_7 + 0x6c))" (( "(") (cast_expression "(locale *)(param_7 + 0x6c)" (( "(") (type_descriptor "locale *" (type_identifier "locale") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_7 + 0x6c)" (( "(") (binary_expression "param_7 + 0x6c" (identifier "param_7") (+ "+") (number_literal "0x6c")) () ")"))) () ")")))) (; ";")) (expression_statement "iVar2 = *(int *)pcVar1;" (assignment_expression "iVar2 = *(int *)pcVar1" (identifier "iVar2") (= "=") (pointer_expression "*(int *)pcVar1" (* "*") (cast_expression "(int *)pcVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar1")))) (; ";")) (expression_statement "*param_8 = 0;" (assignment_expression "*param_8 = 0" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);" (assignment_expression "local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25)" (identifier "local_38") (= "=") (call_expression "(**(code **)(iVar2 + 0x28))(pcVar1,0x25)" (parenthesized_expression "(**(code **)(iVar2 + 0x28))" (( "(") (pointer_expression "**(code **)(iVar2 + 0x28)" (* "*") (pointer_expression "*(code **)(iVar2 + 0x28)" (* "*") (cast_expression "(code **)(iVar2 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(pcVar1,0x25)" (( "(") (identifier "pcVar1") (, ",") (number_literal "0x25") () ")")))) (; ";")) (if_statement "if (param_11 == 0) {\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }\n  else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" (if "if") (parenthesized_expression "(param_11 == 0)" (( "(") (binary_expression "param_11 == 0" (identifier "param_11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_30 = 0;\n    local_34 = (int)param_10;\n  }" ({ "{") (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = (int)param_10;" (assignment_expression "local_34 = (int)param_10" (identifier "local_34") (= "=") (cast_expression "(int)param_10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_10"))) (; ";")) (} "}")) (else_clause "else {\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" (else "else") (compound_statement "{\n    local_2c = 0;\n    local_34 = (int)param_11;\n    local_30 = (int)param_10;\n  }" ({ "{") (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = (int)param_11;" (assignment_expression "local_34 = (int)param_11" (identifier "local_34") (= "=") (cast_expression "(int)param_11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_11"))) (; ";")) (expression_statement "local_30 = (int)param_10;" (assignment_expression "local_30 = (int)param_10" (identifier "local_30") (= "=") (cast_expression "(int)param_10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_10"))) (; ";")) (} "}")))) (expression_statement "_M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);" (call_expression "_M_extract_via_format\n            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38)" (identifier "_M_extract_via_format") (argument_list "(&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38)" (( "(") (pointer_expression "&local_28" (& "&") (identifier "local_28")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (identifier "param_7") (, ",") (identifier "param_8") (, ",") (identifier "param_9") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")"))) (; ";")) (expression_statement "iVar2 = local_24;" (assignment_expression "iVar2 = local_24" (identifier "iVar2") (= "=") (identifier "local_24")) (; ";")) (expression_statement "piVar3 = local_28;" (assignment_expression "piVar3 = local_28" (identifier "piVar3") (= "=") (identifier "local_28")) (; ";")) (if_statement "if ((local_28 != (int *)0x0) && (local_24 == -1)) {\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }" (if "if") (parenthesized_expression "((local_28 != (int *)0x0) && (local_24 == -1))" (( "(") (binary_expression "(local_28 != (int *)0x0) && (local_24 == -1)" (parenthesized_expression "(local_28 != (int *)0x0)" (( "(") (binary_expression "local_28 != (int *)0x0" (identifier "local_28") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_24 == -1)" (( "(") (binary_expression "local_24 == -1" (identifier "local_24") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }\n    if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }\n  }" ({ "{") (if_statement "if ((int *)local_28[2] < (int *)local_28[3]) {\n      iVar2 = *(int *)local_28[2];\n    }\n    else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" (if "if") (parenthesized_expression "((int *)local_28[2] < (int *)local_28[3])" (( "(") (binary_expression "(int *)local_28[2] < (int *)local_28[3]" (cast_expression "(int *)local_28[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_28[2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)local_28[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_28[3]" (identifier "local_28") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n      iVar2 = *(int *)local_28[2];\n    }" ({ "{") (expression_statement "iVar2 = *(int *)local_28[2];" (assignment_expression "iVar2 = *(int *)local_28[2]" (identifier "iVar2") (= "=") (pointer_expression "*(int *)local_28[2]" (* "*") (cast_expression "(int *)local_28[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_28[2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" (else "else") (compound_statement "{\n      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);\n    }" ({ "{") (expression_statement "iVar2 = (**(code **)(*local_28 + 0x24))(local_28);" (assignment_expression "iVar2 = (**(code **)(*local_28 + 0x24))(local_28)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(*local_28 + 0x24))(local_28)" (parenthesized_expression "(**(code **)(*local_28 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_28 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_28 + 0x24)" (* "*") (cast_expression "(code **)(*local_28 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_28 + 0x24)" (( "(") (binary_expression "*local_28 + 0x24" (pointer_expression "*local_28" (* "*") (identifier "local_28")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(local_28)" (( "(") (identifier "local_28") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar2 == -1) {\n      piVar3 = (int *)0x0;\n    }" (if "if") (parenthesized_expression "(iVar2 == -1)" (( "(") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      piVar3 = (int *)0x0;\n    }" ({ "{") (expression_statement "piVar3 = (int *)0x0;" (assignment_expression "piVar3 = (int *)0x0" (identifier "piVar3") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (if_statement "if ((param_5 != (int *)0x0) && (param_6 == -1)) {\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }" (if "if") (parenthesized_expression "((param_5 != (int *)0x0) && (param_6 == -1))" (( "(") (binary_expression "(param_5 != (int *)0x0) && (param_6 == -1)" (parenthesized_expression "(param_5 != (int *)0x0)" (( "(") (binary_expression "param_5 != (int *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }\n  }" ({ "{") (if_statement "if ((int *)param_5[2] < (int *)param_5[3]) {\n      param_6 = *(int *)param_5[2];\n    }\n    else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" (if "if") (parenthesized_expression "((int *)param_5[2] < (int *)param_5[3])" (( "(") (binary_expression "(int *)param_5[2] < (int *)param_5[3]" (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))) (< "<") (cast_expression "(int *)param_5[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]")))) () ")")) (compound_statement "{\n      param_6 = *(int *)param_5[2];\n    }" ({ "{") (expression_statement "param_6 = *(int *)param_5[2];" (assignment_expression "param_6 = *(int *)param_5[2]" (identifier "param_6") (= "=") (pointer_expression "*(int *)param_5[2]" (* "*") (cast_expression "(int *)param_5[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]"))))) (; ";")) (} "}")) (else_clause "else {\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" (else "else") (compound_statement "{\n      param_6 = (**(code **)(*param_5 + 0x24))();\n    }" ({ "{") (expression_statement "param_6 = (**(code **)(*param_5 + 0x24))();" (assignment_expression "param_6 = (**(code **)(*param_5 + 0x24))()" (identifier "param_6") (= "=") (call_expression "(**(code **)(*param_5 + 0x24))()" (parenthesized_expression "(**(code **)(*param_5 + 0x24))" (( "(") (pointer_expression "**(code **)(*param_5 + 0x24)" (* "*") (pointer_expression "*(code **)(*param_5 + 0x24)" (* "*") (cast_expression "(code **)(*param_5 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_5 + 0x24)" (( "(") (binary_expression "*param_5 + 0x24" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (} "}"))) (if_statement "if ((param_6 == -1) == (iVar2 == -1)) {\n    *param_8 = *param_8 | 2;\n  }" (if "if") (parenthesized_expression "((param_6 == -1) == (iVar2 == -1))" (( "(") (binary_expression "(param_6 == -1) == (iVar2 == -1)" (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (== "==") (parenthesized_expression "(iVar2 == -1)" (( "(") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n    *param_8 = *param_8 | 2;\n  }" ({ "{") (expression_statement "*param_8 = *param_8 | 2;" (assignment_expression "*param_8 = *param_8 | 2" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (binary_expression "*param_8 | 2" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "*param_1 = piVar3;" (assignment_expression "*param_1 = piVar3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "piVar3")) (; ";")) (expression_statement "param_1[1] = local_24;" (assignment_expression "param_1[1] = local_24" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_24")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}"))

/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::do_get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,
   std::_Ios_Iostate&, tm*, char, char) const */

var_4 *
var_11::time_get<var_2,std::istreambuf_iterator<var_2,var_11::var_1<var_2>>>::var_3
          (var_4 *var_5,var_4 param_2,var_4 param_3,var_4 param_4,var_6 *var_7
          ,var_6 var_18,var_6 var_12,var_8 *var_9,var_4 param_9,char param_10,char var_14)

{
  type_1 *pcVar1;
  int var_13;
  int *piVar3;
  var_4 local_38;
  int local_34;
  int local_30;
  var_4 local_2c;
  int *var_16;
  int var_17;
  
  pcVar1 = var_10<var_11::type_1<var_2>>((type_2 *)(var_12 + 0x6c));
  var_13 = *(int *)pcVar1;
  *var_9 = 0;
  local_38 = (**(type_3 **)(var_13 + 0x28))(pcVar1,0x25);
  if (var_14 == 0) {
    local_30 = 0;
    local_34 = (int)param_10;
  }
  else {
    local_2c = 0;
    local_34 = (int)var_14;
    local_30 = (int)param_10;
  }
  var_15
            (&var_16,param_2,param_3,param_4,var_7,var_18,var_12,var_9,param_9,&local_38);
  var_13 = var_17;
  piVar3 = var_16;
  if ((var_16 != (int *)0x0) && (var_17 == -1)) {
    if ((int *)var_16[2] < (int *)var_16[3]) {
      var_13 = *(int *)var_16[2];
    }
    else {
      var_13 = (**(type_3 **)(*var_16 + 0x24))(var_16);
    }
    if (var_13 == -1) {
      piVar3 = (int *)0x0;
    }
  }
  if ((var_7 != (int *)0x0) && (var_18 == -1)) {
    if ((int *)var_7[2] < (int *)var_7[3]) {
      var_18 = *(int *)var_7[2];
    }
    else {
      var_18 = (**(type_3 **)(*var_7 + 0x24))();
    }
  }
  if ((var_18 == -1) == (var_13 == -1)) {
    *var_9 = *var_9 | 2;
  }
  *var_5 = piVar3;
  var_5[1] = var_17;
  return var_5;
}


(translation_unit (ERROR (binary_expression left: (binary_expression left: (identifier) right: (identifier)) (ERROR (identifier)) right: (identifier))) (labeled_statement label: (statement_identifier) (ERROR (comma_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) (expression_statement (binary_expression left: (identifier) right: (binary_expression left: (identifier) (ERROR) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (ERROR (identifier)) (identifier) (ERROR (identifier)) (identifier) (ERROR (identifier)) (binary_expression left: (identifier) right: (identifier)) (ERROR (identifier)) (identifier) (ERROR (identifier)) (identifier) (binary_expression left: (identifier) right: (identifier)) (identifier) (ERROR (identifier)) (ERROR (identifier)) (identifier) (ERROR (identifier)) (identifier))))) (MISSING ";"))) (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (binary_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (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))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (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)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) alternative: (else_clause (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (identifier))))

/* std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >
   >::MASKED(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >,
   std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&,
   std::_Ios_Iostate&, tm*, char, char) const */

undefined4 *
std::time_get<wchar_t,std::istreambuf_iterator<wchar_t,std::char_traits<wchar_t>>>::MASKED
          (undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int *param_5
          ,int param_6,int param_7,uint *param_8,undefined4 param_9,char param_10,char param_11)

{
  ctype *pcVar1;
  int iVar2;
  int *piVar3;
  undefined4 local_38;
  int local_34;
  int local_30;
  undefined4 local_2c;
  int *local_28;
  int local_24;
  
  pcVar1 = use_facet<std::ctype<wchar_t>>((locale *)(param_7 + 0x6c));
  iVar2 = *(int *)pcVar1;
  *param_8 = 0;
  local_38 = (**(code **)(iVar2 + 0x28))(pcVar1,0x25);
  if (param_11 == 0) {
    local_30 = 0;
    local_34 = (int)param_10;
  }
  else {
    local_2c = 0;
    local_34 = (int)param_11;
    local_30 = (int)param_10;
  }
  _M_extract_via_format
            (&local_28,param_2,param_3,param_4,param_5,param_6,param_7,param_8,param_9,&local_38);
  iVar2 = local_24;
  piVar3 = local_28;
  if ((local_28 != (int *)0x0) && (local_24 == -1)) {
    if ((int *)local_28[2] < (int *)local_28[3]) {
      iVar2 = *(int *)local_28[2];
    }
    else {
      iVar2 = (**(code **)(*local_28 + 0x24))(local_28);
    }
    if (iVar2 == -1) {
      piVar3 = (int *)0x0;
    }
  }
  if ((param_5 != (int *)0x0) && (param_6 == -1)) {
    if ((int *)param_5[2] < (int *)param_5[3]) {
      param_6 = *(int *)param_5[2];
    }
    else {
      param_6 = (**(code **)(*param_5 + 0x24))();
    }
  }
  if ((param_6 == -1) == (iVar2 == -1)) {
    *param_8 = *param_8 | 2;
  }
  *param_1 = piVar3;
  param_1[1] = local_24;
  return param_1;
}

