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

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

{
  int *piVar1;
  int iVar2;
  bool bVar3;
  bool bVar4;
  undefined4 local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  int local_28;
  undefined4 local_24;
  int *local_20;
  int local_1c;
  
  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);
  iVar2 = *(int *)(iVar2 + 8);
  local_28 = 0;
  local_44 = *(undefined4 *)(iVar2 + 0x2c);
  local_40 = *(undefined4 *)(iVar2 + 0x30);
  local_3c = *(undefined4 *)(iVar2 + 0x34);
  local_30 = *(undefined4 *)(iVar2 + 0x40);
  local_60 = *(undefined4 *)(iVar2 + 0x48);
  local_5c = *(undefined4 *)(iVar2 + 0x4c);
  local_58 = *(undefined4 *)(iVar2 + 0x50);
  local_54 = *(undefined4 *)(iVar2 + 0x54);
  local_50 = *(undefined4 *)(iVar2 + 0x58);
  local_4c = *(undefined4 *)(iVar2 + 0x5c);
  local_48 = *(undefined4 *)(iVar2 + 0x60);
  local_38 = *(undefined4 *)(iVar2 + 0x38);
  local_34 = *(undefined4 *)(iVar2 + 0x3c);
  local_2c = *(undefined4 *)(iVar2 + 0x44);
  _M_extract_wday_or_month
            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,
             &local_28);
  if (local_28 == 0) {
    *(undefined4 *)(param_9 + 0x18) = local_24;
  }
  else {
    *param_8 = *param_8 | 4;
  }
  piVar1 = local_20;
  if (local_20 == (int *)0x0) {
    bVar4 = local_1c == -1;
  }
  else if (local_1c == -1) {
    bVar4 = false;
    if ((uint)local_20[3] <= (uint)local_20[2]) {
      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);
      if (iVar2 == -1) {
        local_20 = (int *)0x0;
      }
      bVar4 = iVar2 == -1;
      piVar1 = local_20;
    }
  }
  else {
    bVar4 = false;
  }
  if (param_5 == (int *)0x0) {
    bVar3 = param_6 == -1;
  }
  else if (param_6 == -1) {
    bVar3 = false;
    if ((uint)param_5[3] <= (uint)param_5[2]) {
      iVar2 = (**(code **)(*param_5 + 0x24))();
      bVar3 = iVar2 == -1;
    }
  }
  else {
    bVar3 = false;
  }
  if (bVar3 == bVar4) {
    *param_8 = *param_8 | 2;
  }
  *param_1 = piVar1;
  param_1[1] = local_1c;
  return param_1;
}



undefined4 *
FUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,
            int *param_5,int param_6,int param_7,uint *param_8,int param_9)

{
  int *piVar1;
  int iVar2;
  bool bVar3;
  bool bVar4;
  undefined4 local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  int local_28;
  undefined4 local_24;
  int *local_20;
  int local_1c;
  
  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);
  iVar2 = *(int *)(iVar2 + 8);
  local_28 = 0;
  local_44 = *(undefined4 *)(iVar2 + 0x2c);
  local_40 = *(undefined4 *)(iVar2 + 0x30);
  local_3c = *(undefined4 *)(iVar2 + 0x34);
  local_30 = *(undefined4 *)(iVar2 + 0x40);
  local_60 = *(undefined4 *)(iVar2 + 0x48);
  local_5c = *(undefined4 *)(iVar2 + 0x4c);
  local_58 = *(undefined4 *)(iVar2 + 0x50);
  local_54 = *(undefined4 *)(iVar2 + 0x54);
  local_50 = *(undefined4 *)(iVar2 + 0x58);
  local_4c = *(undefined4 *)(iVar2 + 0x5c);
  local_48 = *(undefined4 *)(iVar2 + 0x60);
  local_38 = *(undefined4 *)(iVar2 + 0x38);
  local_34 = *(undefined4 *)(iVar2 + 0x3c);
  local_2c = *(undefined4 *)(iVar2 + 0x44);
  std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::
  _M_extract_wday_or_month
            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,
             &local_28);
  if (local_28 == 0) {
    *(undefined4 *)(param_9 + 0x18) = local_24;
  }
  else {
    *param_8 = *param_8 | 4;
  }
  piVar1 = local_20;
  if (local_20 == (int *)0x0) {
    bVar4 = local_1c == -1;
  }
  else if (local_1c == -1) {
    bVar4 = false;
    if ((uint)local_20[3] <= (uint)local_20[2]) {
      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);
      if (iVar2 == -1) {
        local_20 = (int *)0x0;
      }
      bVar4 = iVar2 == -1;
      piVar1 = local_20;
    }
  }
  else {
    bVar4 = false;
  }
  if (param_5 == (int *)0x0) {
    bVar3 = param_6 == -1;
  }
  else if (param_6 == -1) {
    bVar3 = false;
    if ((uint)param_5[3] <= (uint)param_5[2]) {
      iVar2 = (**(code **)(*param_5 + 0x24))();
      bVar3 = iVar2 == -1;
    }
  }
  else {
    bVar3 = false;
  }
  if (bVar3 == bVar4) {
    *param_8 = *param_8 | 2;
  }
  *param_1 = piVar1;
  param_1[1] = local_1c;
  return param_1;
}


lui gp,0x10
addiu gp,gp,-0x185c
addu gp,gp,t9
addiu sp,sp,-0x98
lw t9,-0x6560(gp)
sw s0,0x80(sp)
sw s3,0x8c(sp)
or s3,a0,zero
sw gp,0x30(sp)
sw ra,0x94(sp)
sw s4,0x90(sp)
sw s2,0x88(sp)
sw s1,0x84(sp)
sw a1,0x9c(sp)
sw a2,0xa0(sp)
sw a3,0xa4(sp)
lw s0,0xb0(sp)
lw s1,0xb4(sp)
jalr t9
_addiu a0,s0,0x6c
addiu a0,sp,0x78
lw v0,0x8(v0)
lw gp,0x30(sp)
lw a1,0x9c(sp)
sw zero,0x70(sp)
lw t2,0x2c(v0)
lw t1,0x30(v0)
lw t0,0x34(v0)
lw v1,0x40(v0)
lw s2,0x48(v0)
lw t8,0x4c(v0)
lw t7,0x50(v0)
lw t6,0x54(v0)
lw t5,0x58(v0)
lw t4,0x5c(v0)
lw t3,0x60(v0)
lw a3,0x38(v0)
lw a2,0x3c(v0)
lw v0,0x44(v0)
sw v1,0x68(sp)
sw s2,0x38(sp)
sw v0,0x6c(sp)
addiu v0,sp,0x70
sw t8,0x3c(sp)
sw t7,0x40(sp)
sw t6,0x44(sp)
sw t5,0x48(sp)
sw t4,0x4c(sp)
sw t3,0x50(sp)
sw t2,0x54(sp)
sw t1,0x58(sp)
sw t0,0x5c(sp)
sw a3,0x60(sp)
sw a2,0x64(sp)
sw v0,0x28(sp)
li v0,0x7
sw s0,0x24(sp)
sw v0,0x20(sp)
addiu v0,sp,0x38
lw t9,-0x5f40(gp)
sw v0,0x1c(sp)
addiu v0,sp,0x74
lw a2,0xa0(sp)
lw a3,0xa4(sp)
sw v0,0x18(sp)
lw v0,0xa8(sp)
sw v0,0x10(sp)
lw v0,0xac(sp)
bal 0x003ca4ac
_sw v0,0x14(sp)
lw s2,0x78(sp)
lw v1,0x7c(sp)
lw v0,0x70(sp)
sw s2,0xa0(sp)
or s4,s2,zero
bne v0,zero,0x003cac90
_sw v1,0xa4(sp)
lw v0,0xb8(sp)
lw v1,0x74(sp)
lw s0,0xa4(sp)
beq s2,zero,0x003caca4
_sw v1,0x18(v0)
li v0,-0x1
beq s0,v0,0x003cac58
_nop
or s0,zero,zero
lw a0,0xa8(sp)
beq a0,zero,0x003cacb8
_lw v0,0xac(sp)
li v1,-0x1
beq v0,v1,0x003cacc4
_nop
or v0,zero,zero
bne v0,s0,0x003cac28
_lw v1,0xa4(sp)
lw v0,0x0(s1)
ori v0,v0,0x2
sw v0,0x0(s1)
lw v1,0xa4(sp)
or v0,s3,zero
lw ra,0x94(sp)
lw s2,0x88(sp)
lw s1,0x84(sp)
lw s0,0x80(sp)
sw s4,0xa0(sp)
sw s4,0x0(s3)
sw v1,0x4(s3)
lw s4,0x90(sp)
lw s3,0x8c(sp)
jr ra
_addiu sp,sp,0x98
lw v0,0x8(s2)
lw v1,0xc(s2)
sltu v0,v0,v1
bne v0,zero,0x003cabf4
_or s0,zero,zero
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor v0,zero,v0
movz s2,zero,v0
sltiu s0,v0,0x1
b 0x003cabf4
_or s4,s2,zero
lw v0,0x0(s1)
lw s0,0xa4(sp)
ori v0,v0,0x4
bne s2,zero,0x003cabe4
_sw v0,0x0(s1)
lw a0,0xa8(sp)
addiu s0,s0,0x1
lw v0,0xac(sp)
bne a0,zero,0x003cac00
_sltiu s0,s0,0x1
addiu v0,v0,0x1
b 0x003cac10
_sltiu v0,v0,0x1
lw v1,0x8(a0)
lw a1,0xc(a0)
sltu v1,v1,a1
bne v1,zero,0x003cac10
_or v0,zero,zero
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
addiu v0,v0,0x1
b 0x003cac10
_sltiu v0,v0,0x1
(translation_unit "undefined4 *\nFUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)\n\n{\n  int *piVar1;\n  int iVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  undefined4 local_24;\n  int *local_20;\n  int local_1c;\n  \n  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);\n  iVar2 = *(int *)(iVar2 + 8);\n  local_28 = 0;\n  local_44 = *(undefined4 *)(iVar2 + 0x2c);\n  local_40 = *(undefined4 *)(iVar2 + 0x30);\n  local_3c = *(undefined4 *)(iVar2 + 0x34);\n  local_30 = *(undefined4 *)(iVar2 + 0x40);\n  local_60 = *(undefined4 *)(iVar2 + 0x48);\n  local_5c = *(undefined4 *)(iVar2 + 0x4c);\n  local_58 = *(undefined4 *)(iVar2 + 0x50);\n  local_54 = *(undefined4 *)(iVar2 + 0x54);\n  local_50 = *(undefined4 *)(iVar2 + 0x58);\n  local_4c = *(undefined4 *)(iVar2 + 0x5c);\n  local_48 = *(undefined4 *)(iVar2 + 0x60);\n  local_38 = *(undefined4 *)(iVar2 + 0x38);\n  local_34 = *(undefined4 *)(iVar2 + 0x3c);\n  local_2c = *(undefined4 *)(iVar2 + 0x44);\n  std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);\n  if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }\n  piVar1 = local_20;\n  if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }\n  if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }\n  if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar1;\n  param_1[1] = local_1c;\n  return param_1;\n}\n\n" (function_definition "undefined4 *\nFUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)\n\n{\n  int *piVar1;\n  int iVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  undefined4 local_24;\n  int *local_20;\n  int local_1c;\n  \n  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);\n  iVar2 = *(int *)(iVar2 + 8);\n  local_28 = 0;\n  local_44 = *(undefined4 *)(iVar2 + 0x2c);\n  local_40 = *(undefined4 *)(iVar2 + 0x30);\n  local_3c = *(undefined4 *)(iVar2 + 0x34);\n  local_30 = *(undefined4 *)(iVar2 + 0x40);\n  local_60 = *(undefined4 *)(iVar2 + 0x48);\n  local_5c = *(undefined4 *)(iVar2 + 0x4c);\n  local_58 = *(undefined4 *)(iVar2 + 0x50);\n  local_54 = *(undefined4 *)(iVar2 + 0x54);\n  local_50 = *(undefined4 *)(iVar2 + 0x58);\n  local_4c = *(undefined4 *)(iVar2 + 0x5c);\n  local_48 = *(undefined4 *)(iVar2 + 0x60);\n  local_38 = *(undefined4 *)(iVar2 + 0x38);\n  local_34 = *(undefined4 *)(iVar2 + 0x3c);\n  local_2c = *(undefined4 *)(iVar2 + 0x44);\n  std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);\n  if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }\n  piVar1 = local_20;\n  if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }\n  if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }\n  if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar1;\n  param_1[1] = local_1c;\n  return param_1;\n}" type_identifier (pointer_declarator "*\nFUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)" * (function_declarator "FUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "int param_9" primitive_type identifier) )))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  undefined4 local_24;\n  int *local_20;\n  int local_1c;\n  \n  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);\n  iVar2 = *(int *)(iVar2 + 8);\n  local_28 = 0;\n  local_44 = *(undefined4 *)(iVar2 + 0x2c);\n  local_40 = *(undefined4 *)(iVar2 + 0x30);\n  local_3c = *(undefined4 *)(iVar2 + 0x34);\n  local_30 = *(undefined4 *)(iVar2 + 0x40);\n  local_60 = *(undefined4 *)(iVar2 + 0x48);\n  local_5c = *(undefined4 *)(iVar2 + 0x4c);\n  local_58 = *(undefined4 *)(iVar2 + 0x50);\n  local_54 = *(undefined4 *)(iVar2 + 0x54);\n  local_50 = *(undefined4 *)(iVar2 + 0x58);\n  local_4c = *(undefined4 *)(iVar2 + 0x5c);\n  local_48 = *(undefined4 *)(iVar2 + 0x60);\n  local_38 = *(undefined4 *)(iVar2 + 0x38);\n  local_34 = *(undefined4 *)(iVar2 + 0x3c);\n  local_2c = *(undefined4 *)(iVar2 + 0x44);\n  std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);\n  if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }\n  piVar1 = local_20;\n  if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }\n  if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }\n  if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar1;\n  param_1[1] = local_1c;\n  return param_1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);" (assignment_expression "iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c)" identifier = (call_expression "(*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c)" (parenthesized_expression "(*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)" ( (binary_expression "*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0" (binary_expression "*(code *)PTR_use_facet<std___timepunct" (pointer_expression "*(code *)PTR_use_facet" * (cast_expression "(code *)PTR_use_facet" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < (binary_expression "char>>_004c2ce0" identifier >> identifier)) )) (argument_list "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) ;) (expression_statement "iVar2 = *(int *)(iVar2 + 8);" (assignment_expression "iVar2 = *(int *)(iVar2 + 8)" identifier = (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_44 = *(undefined4 *)(iVar2 + 0x2c);" (assignment_expression "local_44 = *(undefined4 *)(iVar2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x2c)" * (cast_expression "(undefined4 *)(iVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "local_40 = *(undefined4 *)(iVar2 + 0x30);" (assignment_expression "local_40 = *(undefined4 *)(iVar2 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x30)" * (cast_expression "(undefined4 *)(iVar2 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_3c = *(undefined4 *)(iVar2 + 0x34);" (assignment_expression "local_3c = *(undefined4 *)(iVar2 + 0x34)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x34)" * (cast_expression "(undefined4 *)(iVar2 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_30 = *(undefined4 *)(iVar2 + 0x40);" (assignment_expression "local_30 = *(undefined4 *)(iVar2 + 0x40)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x40)" * (cast_expression "(undefined4 *)(iVar2 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_60 = *(undefined4 *)(iVar2 + 0x48);" (assignment_expression "local_60 = *(undefined4 *)(iVar2 + 0x48)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x48)" * (cast_expression "(undefined4 *)(iVar2 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "local_5c = *(undefined4 *)(iVar2 + 0x4c);" (assignment_expression "local_5c = *(undefined4 *)(iVar2 + 0x4c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x4c)" * (cast_expression "(undefined4 *)(iVar2 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "local_58 = *(undefined4 *)(iVar2 + 0x50);" (assignment_expression "local_58 = *(undefined4 *)(iVar2 + 0x50)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x50)" * (cast_expression "(undefined4 *)(iVar2 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x50)" ( (binary_expression "iVar2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "local_54 = *(undefined4 *)(iVar2 + 0x54);" (assignment_expression "local_54 = *(undefined4 *)(iVar2 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x54)" * (cast_expression "(undefined4 *)(iVar2 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x54)" ( (binary_expression "iVar2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "local_50 = *(undefined4 *)(iVar2 + 0x58);" (assignment_expression "local_50 = *(undefined4 *)(iVar2 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x58)" * (cast_expression "(undefined4 *)(iVar2 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x58)" ( (binary_expression "iVar2 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "local_4c = *(undefined4 *)(iVar2 + 0x5c);" (assignment_expression "local_4c = *(undefined4 *)(iVar2 + 0x5c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x5c)" * (cast_expression "(undefined4 *)(iVar2 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x5c)" ( (binary_expression "iVar2 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "local_48 = *(undefined4 *)(iVar2 + 0x60);" (assignment_expression "local_48 = *(undefined4 *)(iVar2 + 0x60)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x60)" * (cast_expression "(undefined4 *)(iVar2 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x60)" ( (binary_expression "iVar2 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "local_38 = *(undefined4 *)(iVar2 + 0x38);" (assignment_expression "local_38 = *(undefined4 *)(iVar2 + 0x38)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x38)" * (cast_expression "(undefined4 *)(iVar2 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "local_34 = *(undefined4 *)(iVar2 + 0x3c);" (assignment_expression "local_34 = *(undefined4 *)(iVar2 + 0x3c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x3c)" * (cast_expression "(undefined4 *)(iVar2 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3c)" ( (binary_expression "iVar2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(undefined4 *)(iVar2 + 0x44);" (assignment_expression "local_2c = *(undefined4 *)(iVar2 + 0x44)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) ;) (labeled_statement "std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);" statement_identifier (ERROR "::time_get<char,std::istreambuf_iterator<char,std:" : : (comma_expression "time_get<char,std" (binary_expression "time_get<char" identifier < identifier) , identifier) : : (comma_expression "istreambuf_iterator<char,std" (binary_expression "istreambuf_iterator<char" identifier < identifier) , identifier) :) : (expression_statement "char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);" (binary_expression "char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" identifier < (binary_expression "char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" identifier >> (ERROR ">::" > : :) (call_expression "_M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" identifier (argument_list "(&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" ( (pointer_expression "&local_20" & identifier) , identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_24" & identifier) , (pointer_expression "&local_60" & identifier) , number_literal , identifier , (pointer_expression "&local_28" & identifier) ))))) ;)) (if_statement "if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }" if (parenthesized_expression "(local_28 == 0)" ( (binary_expression "local_28 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }" { (expression_statement "*(undefined4 *)(param_9 + 0x18) = local_24;" (assignment_expression "*(undefined4 *)(param_9 + 0x18) = local_24" (pointer_expression "*(undefined4 *)(param_9 + 0x18)" * (cast_expression "(undefined4 *)(param_9 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x18)" ( (binary_expression "param_9 + 0x18" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    *param_8 = *param_8 | 4;\n  }" else (compound_statement "{\n    *param_8 = *param_8 | 4;\n  }" { (expression_statement "*param_8 = *param_8 | 4;" (assignment_expression "*param_8 = *param_8 | 4" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 4" (pointer_expression "*param_8" * identifier) | number_literal)) ;) }))) (expression_statement "piVar1 = local_20;" (assignment_expression "piVar1 = local_20" identifier = identifier) ;) (if_statement "if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" if (parenthesized_expression "(local_20 == (int *)0x0)" ( (binary_expression "local_20 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bVar4 = local_1c == -1;\n  }" { (expression_statement "bVar4 = local_1c == -1;" (assignment_expression "bVar4 = local_1c == -1" identifier = (binary_expression "local_1c == -1" identifier == number_literal)) ;) }) (else_clause "else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" else (if_statement "if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" if (parenthesized_expression "(local_1c == -1)" ( (binary_expression "local_1c == -1" identifier == number_literal) )) (compound_statement "{\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (if_statement "if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }" if (parenthesized_expression "((uint)local_20[3] <= (uint)local_20[2])" ( (binary_expression "(uint)local_20[3] <= (uint)local_20[2]" (cast_expression "(uint)local_20[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_20[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_20[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_20[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }" { (expression_statement "iVar2 = (**(code **)(*local_20 + 0x24))(local_20);" (assignment_expression "iVar2 = (**(code **)(*local_20 + 0x24))(local_20)" identifier = (call_expression "(**(code **)(*local_20 + 0x24))(local_20)" (parenthesized_expression "(**(code **)(*local_20 + 0x24))" ( (pointer_expression "**(code **)(*local_20 + 0x24)" * (pointer_expression "*(code **)(*local_20 + 0x24)" * (cast_expression "(code **)(*local_20 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_20 + 0x24)" ( (binary_expression "*local_20 + 0x24" (pointer_expression "*local_20" * identifier) + number_literal) ))))) )) (argument_list "(local_20)" ( identifier )))) ;) (if_statement "if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n        local_20 = (int *)0x0;\n      }" { (expression_statement "local_20 = (int *)0x0;" (assignment_expression "local_20 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "bVar4 = iVar2 == -1;" (assignment_expression "bVar4 = iVar2 == -1" identifier = (binary_expression "iVar2 == -1" identifier == number_literal)) ;) (expression_statement "piVar1 = local_20;" (assignment_expression "piVar1 = local_20" identifier = identifier) ;) })) }) (else_clause "else {\n    bVar4 = false;\n  }" else (compound_statement "{\n    bVar4 = false;\n  }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) }))))) (if_statement "if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" if (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)) )) (compound_statement "{\n    bVar3 = param_6 == -1;\n  }" { (expression_statement "bVar3 = param_6 == -1;" (assignment_expression "bVar3 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) }) (else_clause "else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" else (if_statement "if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }" { (expression_statement "iVar2 = (**(code **)(*param_5 + 0x24))();" (assignment_expression "iVar2 = (**(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 "()" ( )))) ;) (expression_statement "bVar3 = iVar2 == -1;" (assignment_expression "bVar3 = iVar2 == -1" identifier = (binary_expression "iVar2 == -1" identifier == number_literal)) ;) })) }) (else_clause "else {\n    bVar3 = false;\n  }" else (compound_statement "{\n    bVar3 = false;\n  }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) }))))) (if_statement "if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "(bVar3 == bVar4)" ( (binary_expression "bVar3 == bVar4" identifier == identifier) )) (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 = piVar1;" (assignment_expression "*param_1 = piVar1" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_1c;" (assignment_expression "param_1[1] = local_1c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit "/* std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> >\n   >::do_get_weekday(std::istreambuf_iterator<char, std::char_traits<char> >,\n   std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*)\n   const */\n\nundefined4 *\nstd::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::do_get_weekday\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,int param_9)\n\n{\n  int *piVar1;\n  int iVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  undefined4 local_24;\n  int *local_20;\n  int local_1c;\n  \n  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);\n  iVar2 = *(int *)(iVar2 + 8);\n  local_28 = 0;\n  local_44 = *(undefined4 *)(iVar2 + 0x2c);\n  local_40 = *(undefined4 *)(iVar2 + 0x30);\n  local_3c = *(undefined4 *)(iVar2 + 0x34);\n  local_30 = *(undefined4 *)(iVar2 + 0x40);\n  local_60 = *(undefined4 *)(iVar2 + 0x48);\n  local_5c = *(undefined4 *)(iVar2 + 0x4c);\n  local_58 = *(undefined4 *)(iVar2 + 0x50);\n  local_54 = *(undefined4 *)(iVar2 + 0x54);\n  local_50 = *(undefined4 *)(iVar2 + 0x58);\n  local_4c = *(undefined4 *)(iVar2 + 0x5c);\n  local_48 = *(undefined4 *)(iVar2 + 0x60);\n  local_38 = *(undefined4 *)(iVar2 + 0x38);\n  local_34 = *(undefined4 *)(iVar2 + 0x3c);\n  local_2c = *(undefined4 *)(iVar2 + 0x44);\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);\n  if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }\n  piVar1 = local_20;\n  if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }\n  if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }\n  if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar1;\n  param_1[1] = local_1c;\n  return param_1;\n}\n\n" comment (ERROR "undefined4 *\nstd::time_get<char," (binary_expression "undefined4 *\nstd::time_get<char" (binary_expression "undefined4 *\nstd" identifier * identifier) (ERROR "::time_get" : : identifier) < identifier) ,) (labeled_statement "std::istreambuf_iterator<char,std::char_traits<char>>>::do_get_weekday\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,int param_9)" statement_identifier (ERROR "::istreambuf_iterator<char,std:" : : (comma_expression "istreambuf_iterator<char,std" (binary_expression "istreambuf_iterator<char" identifier < identifier) , identifier) :) : (expression_statement "char_traits<char>>>::do_get_weekday\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,int param_9)" (binary_expression "char_traits<char>>>::do_get_weekday\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,int param_9)" identifier < (binary_expression "char>>>::do_get_weekday\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,int param_9)" identifier >> (ERROR ">::" > : :) (call_expression "do_get_weekday\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,int param_9)" 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,int param_9)" ( (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) , (ERROR "int" identifier) identifier ))))) ;)) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  undefined4 local_24;\n  int *local_20;\n  int local_1c;\n  \n  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);\n  iVar2 = *(int *)(iVar2 + 8);\n  local_28 = 0;\n  local_44 = *(undefined4 *)(iVar2 + 0x2c);\n  local_40 = *(undefined4 *)(iVar2 + 0x30);\n  local_3c = *(undefined4 *)(iVar2 + 0x34);\n  local_30 = *(undefined4 *)(iVar2 + 0x40);\n  local_60 = *(undefined4 *)(iVar2 + 0x48);\n  local_5c = *(undefined4 *)(iVar2 + 0x4c);\n  local_58 = *(undefined4 *)(iVar2 + 0x50);\n  local_54 = *(undefined4 *)(iVar2 + 0x54);\n  local_50 = *(undefined4 *)(iVar2 + 0x58);\n  local_4c = *(undefined4 *)(iVar2 + 0x5c);\n  local_48 = *(undefined4 *)(iVar2 + 0x60);\n  local_38 = *(undefined4 *)(iVar2 + 0x38);\n  local_34 = *(undefined4 *)(iVar2 + 0x3c);\n  local_2c = *(undefined4 *)(iVar2 + 0x44);\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);\n  if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }\n  piVar1 = local_20;\n  if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }\n  if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }\n  if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar1;\n  param_1[1] = local_1c;\n  return param_1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);" (assignment_expression "iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c)" identifier = (call_expression "(*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c)" (parenthesized_expression "(*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)" ( (binary_expression "*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0" (binary_expression "*(code *)PTR_use_facet<std___timepunct" (pointer_expression "*(code *)PTR_use_facet" * (cast_expression "(code *)PTR_use_facet" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < (binary_expression "char>>_004c2ce0" identifier >> identifier)) )) (argument_list "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) ;) (expression_statement "iVar2 = *(int *)(iVar2 + 8);" (assignment_expression "iVar2 = *(int *)(iVar2 + 8)" identifier = (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_44 = *(undefined4 *)(iVar2 + 0x2c);" (assignment_expression "local_44 = *(undefined4 *)(iVar2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x2c)" * (cast_expression "(undefined4 *)(iVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "local_40 = *(undefined4 *)(iVar2 + 0x30);" (assignment_expression "local_40 = *(undefined4 *)(iVar2 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x30)" * (cast_expression "(undefined4 *)(iVar2 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_3c = *(undefined4 *)(iVar2 + 0x34);" (assignment_expression "local_3c = *(undefined4 *)(iVar2 + 0x34)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x34)" * (cast_expression "(undefined4 *)(iVar2 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_30 = *(undefined4 *)(iVar2 + 0x40);" (assignment_expression "local_30 = *(undefined4 *)(iVar2 + 0x40)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x40)" * (cast_expression "(undefined4 *)(iVar2 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_60 = *(undefined4 *)(iVar2 + 0x48);" (assignment_expression "local_60 = *(undefined4 *)(iVar2 + 0x48)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x48)" * (cast_expression "(undefined4 *)(iVar2 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "local_5c = *(undefined4 *)(iVar2 + 0x4c);" (assignment_expression "local_5c = *(undefined4 *)(iVar2 + 0x4c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x4c)" * (cast_expression "(undefined4 *)(iVar2 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "local_58 = *(undefined4 *)(iVar2 + 0x50);" (assignment_expression "local_58 = *(undefined4 *)(iVar2 + 0x50)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x50)" * (cast_expression "(undefined4 *)(iVar2 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x50)" ( (binary_expression "iVar2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "local_54 = *(undefined4 *)(iVar2 + 0x54);" (assignment_expression "local_54 = *(undefined4 *)(iVar2 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x54)" * (cast_expression "(undefined4 *)(iVar2 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x54)" ( (binary_expression "iVar2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "local_50 = *(undefined4 *)(iVar2 + 0x58);" (assignment_expression "local_50 = *(undefined4 *)(iVar2 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x58)" * (cast_expression "(undefined4 *)(iVar2 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x58)" ( (binary_expression "iVar2 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "local_4c = *(undefined4 *)(iVar2 + 0x5c);" (assignment_expression "local_4c = *(undefined4 *)(iVar2 + 0x5c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x5c)" * (cast_expression "(undefined4 *)(iVar2 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x5c)" ( (binary_expression "iVar2 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "local_48 = *(undefined4 *)(iVar2 + 0x60);" (assignment_expression "local_48 = *(undefined4 *)(iVar2 + 0x60)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x60)" * (cast_expression "(undefined4 *)(iVar2 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x60)" ( (binary_expression "iVar2 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "local_38 = *(undefined4 *)(iVar2 + 0x38);" (assignment_expression "local_38 = *(undefined4 *)(iVar2 + 0x38)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x38)" * (cast_expression "(undefined4 *)(iVar2 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "local_34 = *(undefined4 *)(iVar2 + 0x3c);" (assignment_expression "local_34 = *(undefined4 *)(iVar2 + 0x3c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x3c)" * (cast_expression "(undefined4 *)(iVar2 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3c)" ( (binary_expression "iVar2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(undefined4 *)(iVar2 + 0x44);" (assignment_expression "local_2c = *(undefined4 *)(iVar2 + 0x44)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "_M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);" (call_expression "_M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" identifier (argument_list "(&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" ( (pointer_expression "&local_20" & identifier) , identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_24" & identifier) , (pointer_expression "&local_60" & identifier) , number_literal , identifier , (pointer_expression "&local_28" & identifier) ))) ;) (if_statement "if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }" if (parenthesized_expression "(local_28 == 0)" ( (binary_expression "local_28 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }" { (expression_statement "*(undefined4 *)(param_9 + 0x18) = local_24;" (assignment_expression "*(undefined4 *)(param_9 + 0x18) = local_24" (pointer_expression "*(undefined4 *)(param_9 + 0x18)" * (cast_expression "(undefined4 *)(param_9 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x18)" ( (binary_expression "param_9 + 0x18" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    *param_8 = *param_8 | 4;\n  }" else (compound_statement "{\n    *param_8 = *param_8 | 4;\n  }" { (expression_statement "*param_8 = *param_8 | 4;" (assignment_expression "*param_8 = *param_8 | 4" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 4" (pointer_expression "*param_8" * identifier) | number_literal)) ;) }))) (expression_statement "piVar1 = local_20;" (assignment_expression "piVar1 = local_20" identifier = identifier) ;) (if_statement "if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" if (parenthesized_expression "(local_20 == (int *)0x0)" ( (binary_expression "local_20 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bVar4 = local_1c == -1;\n  }" { (expression_statement "bVar4 = local_1c == -1;" (assignment_expression "bVar4 = local_1c == -1" identifier = (binary_expression "local_1c == -1" identifier == number_literal)) ;) }) (else_clause "else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" else (if_statement "if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" if (parenthesized_expression "(local_1c == -1)" ( (binary_expression "local_1c == -1" identifier == number_literal) )) (compound_statement "{\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (if_statement "if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }" if (parenthesized_expression "((uint)local_20[3] <= (uint)local_20[2])" ( (binary_expression "(uint)local_20[3] <= (uint)local_20[2]" (cast_expression "(uint)local_20[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_20[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_20[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_20[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }" { (expression_statement "iVar2 = (**(code **)(*local_20 + 0x24))(local_20);" (assignment_expression "iVar2 = (**(code **)(*local_20 + 0x24))(local_20)" identifier = (call_expression "(**(code **)(*local_20 + 0x24))(local_20)" (parenthesized_expression "(**(code **)(*local_20 + 0x24))" ( (pointer_expression "**(code **)(*local_20 + 0x24)" * (pointer_expression "*(code **)(*local_20 + 0x24)" * (cast_expression "(code **)(*local_20 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_20 + 0x24)" ( (binary_expression "*local_20 + 0x24" (pointer_expression "*local_20" * identifier) + number_literal) ))))) )) (argument_list "(local_20)" ( identifier )))) ;) (if_statement "if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n        local_20 = (int *)0x0;\n      }" { (expression_statement "local_20 = (int *)0x0;" (assignment_expression "local_20 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "bVar4 = iVar2 == -1;" (assignment_expression "bVar4 = iVar2 == -1" identifier = (binary_expression "iVar2 == -1" identifier == number_literal)) ;) (expression_statement "piVar1 = local_20;" (assignment_expression "piVar1 = local_20" identifier = identifier) ;) })) }) (else_clause "else {\n    bVar4 = false;\n  }" else (compound_statement "{\n    bVar4 = false;\n  }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) }))))) (if_statement "if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" if (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)) )) (compound_statement "{\n    bVar3 = param_6 == -1;\n  }" { (expression_statement "bVar3 = param_6 == -1;" (assignment_expression "bVar3 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) }) (else_clause "else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" else (if_statement "if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }" { (expression_statement "iVar2 = (**(code **)(*param_5 + 0x24))();" (assignment_expression "iVar2 = (**(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 "()" ( )))) ;) (expression_statement "bVar3 = iVar2 == -1;" (assignment_expression "bVar3 = iVar2 == -1" identifier = (binary_expression "iVar2 == -1" identifier == number_literal)) ;) })) }) (else_clause "else {\n    bVar3 = false;\n  }" else (compound_statement "{\n    bVar3 = false;\n  }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) }))))) (if_statement "if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "(bVar3 == bVar4)" ( (binary_expression "bVar3 == bVar4" identifier == identifier) )) (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 = piVar1;" (assignment_expression "*param_1 = piVar1" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_1c;" (assignment_expression "param_1[1] = local_1c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) }))
(translation_unit "undefined4 *\nFUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)\n\n{\n  int *piVar1;\n  int iVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  undefined4 local_24;\n  int *local_20;\n  int local_1c;\n  \n  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);\n  iVar2 = *(int *)(iVar2 + 8);\n  local_28 = 0;\n  local_44 = *(undefined4 *)(iVar2 + 0x2c);\n  local_40 = *(undefined4 *)(iVar2 + 0x30);\n  local_3c = *(undefined4 *)(iVar2 + 0x34);\n  local_30 = *(undefined4 *)(iVar2 + 0x40);\n  local_60 = *(undefined4 *)(iVar2 + 0x48);\n  local_5c = *(undefined4 *)(iVar2 + 0x4c);\n  local_58 = *(undefined4 *)(iVar2 + 0x50);\n  local_54 = *(undefined4 *)(iVar2 + 0x54);\n  local_50 = *(undefined4 *)(iVar2 + 0x58);\n  local_4c = *(undefined4 *)(iVar2 + 0x5c);\n  local_48 = *(undefined4 *)(iVar2 + 0x60);\n  local_38 = *(undefined4 *)(iVar2 + 0x38);\n  local_34 = *(undefined4 *)(iVar2 + 0x3c);\n  local_2c = *(undefined4 *)(iVar2 + 0x44);\n  std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);\n  if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }\n  piVar1 = local_20;\n  if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }\n  if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }\n  if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar1;\n  param_1[1] = local_1c;\n  return param_1;\n}\n\n" (function_definition "undefined4 *\nFUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)\n\n{\n  int *piVar1;\n  int iVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  undefined4 local_24;\n  int *local_20;\n  int local_1c;\n  \n  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);\n  iVar2 = *(int *)(iVar2 + 8);\n  local_28 = 0;\n  local_44 = *(undefined4 *)(iVar2 + 0x2c);\n  local_40 = *(undefined4 *)(iVar2 + 0x30);\n  local_3c = *(undefined4 *)(iVar2 + 0x34);\n  local_30 = *(undefined4 *)(iVar2 + 0x40);\n  local_60 = *(undefined4 *)(iVar2 + 0x48);\n  local_5c = *(undefined4 *)(iVar2 + 0x4c);\n  local_58 = *(undefined4 *)(iVar2 + 0x50);\n  local_54 = *(undefined4 *)(iVar2 + 0x54);\n  local_50 = *(undefined4 *)(iVar2 + 0x58);\n  local_4c = *(undefined4 *)(iVar2 + 0x5c);\n  local_48 = *(undefined4 *)(iVar2 + 0x60);\n  local_38 = *(undefined4 *)(iVar2 + 0x38);\n  local_34 = *(undefined4 *)(iVar2 + 0x3c);\n  local_2c = *(undefined4 *)(iVar2 + 0x44);\n  std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);\n  if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }\n  piVar1 = local_20;\n  if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }\n  if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }\n  if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar1;\n  param_1[1] = local_1c;\n  return param_1;\n}" type_identifier (pointer_declarator "*\nFUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)" * (function_declarator "FUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)" identifier (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "int param_9" primitive_type identifier) )))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  undefined4 local_24;\n  int *local_20;\n  int local_1c;\n  \n  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);\n  iVar2 = *(int *)(iVar2 + 8);\n  local_28 = 0;\n  local_44 = *(undefined4 *)(iVar2 + 0x2c);\n  local_40 = *(undefined4 *)(iVar2 + 0x30);\n  local_3c = *(undefined4 *)(iVar2 + 0x34);\n  local_30 = *(undefined4 *)(iVar2 + 0x40);\n  local_60 = *(undefined4 *)(iVar2 + 0x48);\n  local_5c = *(undefined4 *)(iVar2 + 0x4c);\n  local_58 = *(undefined4 *)(iVar2 + 0x50);\n  local_54 = *(undefined4 *)(iVar2 + 0x54);\n  local_50 = *(undefined4 *)(iVar2 + 0x58);\n  local_4c = *(undefined4 *)(iVar2 + 0x5c);\n  local_48 = *(undefined4 *)(iVar2 + 0x60);\n  local_38 = *(undefined4 *)(iVar2 + 0x38);\n  local_34 = *(undefined4 *)(iVar2 + 0x3c);\n  local_2c = *(undefined4 *)(iVar2 + 0x44);\n  std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);\n  if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }\n  piVar1 = local_20;\n  if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }\n  if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }\n  if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar1;\n  param_1[1] = local_1c;\n  return param_1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "bool bVar4;" primitive_type identifier ;) (declaration "undefined4 local_60;" type_identifier identifier ;) (declaration "undefined4 local_5c;" type_identifier identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined4 local_50;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int *local_20;" primitive_type (pointer_declarator "*local_20" * identifier) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);" (assignment_expression "iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c)" identifier = (call_expression "(*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c)" (parenthesized_expression "(*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)" ( (binary_expression "*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0" (binary_expression "*(code *)PTR_use_facet<std___timepunct" (pointer_expression "*(code *)PTR_use_facet" * (cast_expression "(code *)PTR_use_facet" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) < identifier) < (binary_expression "char>>_004c2ce0" identifier >> identifier)) )) (argument_list "(param_7 + 0x6c)" ( (binary_expression "param_7 + 0x6c" identifier + number_literal) )))) ;) (expression_statement "iVar2 = *(int *)(iVar2 + 8);" (assignment_expression "iVar2 = *(int *)(iVar2 + 8)" identifier = (pointer_expression "*(int *)(iVar2 + 8)" * (cast_expression "(int *)(iVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_44 = *(undefined4 *)(iVar2 + 0x2c);" (assignment_expression "local_44 = *(undefined4 *)(iVar2 + 0x2c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x2c)" * (cast_expression "(undefined4 *)(iVar2 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) ))))) ;) (expression_statement "local_40 = *(undefined4 *)(iVar2 + 0x30);" (assignment_expression "local_40 = *(undefined4 *)(iVar2 + 0x30)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x30)" * (cast_expression "(undefined4 *)(iVar2 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x30)" ( (binary_expression "iVar2 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "local_3c = *(undefined4 *)(iVar2 + 0x34);" (assignment_expression "local_3c = *(undefined4 *)(iVar2 + 0x34)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x34)" * (cast_expression "(undefined4 *)(iVar2 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "local_30 = *(undefined4 *)(iVar2 + 0x40);" (assignment_expression "local_30 = *(undefined4 *)(iVar2 + 0x40)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x40)" * (cast_expression "(undefined4 *)(iVar2 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x40)" ( (binary_expression "iVar2 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "local_60 = *(undefined4 *)(iVar2 + 0x48);" (assignment_expression "local_60 = *(undefined4 *)(iVar2 + 0x48)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x48)" * (cast_expression "(undefined4 *)(iVar2 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x48)" ( (binary_expression "iVar2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "local_5c = *(undefined4 *)(iVar2 + 0x4c);" (assignment_expression "local_5c = *(undefined4 *)(iVar2 + 0x4c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x4c)" * (cast_expression "(undefined4 *)(iVar2 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x4c)" ( (binary_expression "iVar2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "local_58 = *(undefined4 *)(iVar2 + 0x50);" (assignment_expression "local_58 = *(undefined4 *)(iVar2 + 0x50)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x50)" * (cast_expression "(undefined4 *)(iVar2 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x50)" ( (binary_expression "iVar2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "local_54 = *(undefined4 *)(iVar2 + 0x54);" (assignment_expression "local_54 = *(undefined4 *)(iVar2 + 0x54)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x54)" * (cast_expression "(undefined4 *)(iVar2 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x54)" ( (binary_expression "iVar2 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "local_50 = *(undefined4 *)(iVar2 + 0x58);" (assignment_expression "local_50 = *(undefined4 *)(iVar2 + 0x58)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x58)" * (cast_expression "(undefined4 *)(iVar2 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x58)" ( (binary_expression "iVar2 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "local_4c = *(undefined4 *)(iVar2 + 0x5c);" (assignment_expression "local_4c = *(undefined4 *)(iVar2 + 0x5c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x5c)" * (cast_expression "(undefined4 *)(iVar2 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x5c)" ( (binary_expression "iVar2 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "local_48 = *(undefined4 *)(iVar2 + 0x60);" (assignment_expression "local_48 = *(undefined4 *)(iVar2 + 0x60)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x60)" * (cast_expression "(undefined4 *)(iVar2 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x60)" ( (binary_expression "iVar2 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "local_38 = *(undefined4 *)(iVar2 + 0x38);" (assignment_expression "local_38 = *(undefined4 *)(iVar2 + 0x38)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x38)" * (cast_expression "(undefined4 *)(iVar2 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "local_34 = *(undefined4 *)(iVar2 + 0x3c);" (assignment_expression "local_34 = *(undefined4 *)(iVar2 + 0x3c)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x3c)" * (cast_expression "(undefined4 *)(iVar2 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x3c)" ( (binary_expression "iVar2 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(undefined4 *)(iVar2 + 0x44);" (assignment_expression "local_2c = *(undefined4 *)(iVar2 + 0x44)" identifier = (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" * (cast_expression "(undefined4 *)(iVar2 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x44)" ( (binary_expression "iVar2 + 0x44" identifier + number_literal) ))))) ;) (labeled_statement "std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);" statement_identifier (ERROR "::time_get<char,std::istreambuf_iterator<char,std:" : : (comma_expression "time_get<char,std" (binary_expression "time_get<char" identifier < identifier) , identifier) : : (comma_expression "istreambuf_iterator<char,std" (binary_expression "istreambuf_iterator<char" identifier < identifier) , identifier) :) : (expression_statement "char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);" (binary_expression "char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" identifier < (binary_expression "char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" identifier >> (ERROR ">::" > : :) (call_expression "_M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" identifier (argument_list "(&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" ( (pointer_expression "&local_20" & identifier) , identifier , identifier , identifier , identifier , identifier , (pointer_expression "&local_24" & identifier) , (pointer_expression "&local_60" & identifier) , number_literal , identifier , (pointer_expression "&local_28" & identifier) ))))) ;)) (if_statement "if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }" if (parenthesized_expression "(local_28 == 0)" ( (binary_expression "local_28 == 0" identifier == number_literal) )) (compound_statement "{\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }" { (expression_statement "*(undefined4 *)(param_9 + 0x18) = local_24;" (assignment_expression "*(undefined4 *)(param_9 + 0x18) = local_24" (pointer_expression "*(undefined4 *)(param_9 + 0x18)" * (cast_expression "(undefined4 *)(param_9 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_9 + 0x18)" ( (binary_expression "param_9 + 0x18" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    *param_8 = *param_8 | 4;\n  }" else (compound_statement "{\n    *param_8 = *param_8 | 4;\n  }" { (expression_statement "*param_8 = *param_8 | 4;" (assignment_expression "*param_8 = *param_8 | 4" (pointer_expression "*param_8" * identifier) = (binary_expression "*param_8 | 4" (pointer_expression "*param_8" * identifier) | number_literal)) ;) }))) (expression_statement "piVar1 = local_20;" (assignment_expression "piVar1 = local_20" identifier = identifier) ;) (if_statement "if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" if (parenthesized_expression "(local_20 == (int *)0x0)" ( (binary_expression "local_20 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    bVar4 = local_1c == -1;\n  }" { (expression_statement "bVar4 = local_1c == -1;" (assignment_expression "bVar4 = local_1c == -1" identifier = (binary_expression "local_1c == -1" identifier == number_literal)) ;) }) (else_clause "else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" else (if_statement "if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" if (parenthesized_expression "(local_1c == -1)" ( (binary_expression "local_1c == -1" identifier == number_literal) )) (compound_statement "{\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) (if_statement "if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }" if (parenthesized_expression "((uint)local_20[3] <= (uint)local_20[2])" ( (binary_expression "(uint)local_20[3] <= (uint)local_20[2]" (cast_expression "(uint)local_20[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_20[3]" identifier [ number_literal ])) <= (cast_expression "(uint)local_20[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_20[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }" { (expression_statement "iVar2 = (**(code **)(*local_20 + 0x24))(local_20);" (assignment_expression "iVar2 = (**(code **)(*local_20 + 0x24))(local_20)" identifier = (call_expression "(**(code **)(*local_20 + 0x24))(local_20)" (parenthesized_expression "(**(code **)(*local_20 + 0x24))" ( (pointer_expression "**(code **)(*local_20 + 0x24)" * (pointer_expression "*(code **)(*local_20 + 0x24)" * (cast_expression "(code **)(*local_20 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_20 + 0x24)" ( (binary_expression "*local_20 + 0x24" (pointer_expression "*local_20" * identifier) + number_literal) ))))) )) (argument_list "(local_20)" ( identifier )))) ;) (if_statement "if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }" if (parenthesized_expression "(iVar2 == -1)" ( (binary_expression "iVar2 == -1" identifier == number_literal) )) (compound_statement "{\n        local_20 = (int *)0x0;\n      }" { (expression_statement "local_20 = (int *)0x0;" (assignment_expression "local_20 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "bVar4 = iVar2 == -1;" (assignment_expression "bVar4 = iVar2 == -1" identifier = (binary_expression "iVar2 == -1" identifier == number_literal)) ;) (expression_statement "piVar1 = local_20;" (assignment_expression "piVar1 = local_20" identifier = identifier) ;) })) }) (else_clause "else {\n    bVar4 = false;\n  }" else (compound_statement "{\n    bVar4 = false;\n  }" { (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" identifier = false) ;) }))))) (if_statement "if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" if (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)) )) (compound_statement "{\n    bVar3 = param_6 == -1;\n  }" { (expression_statement "bVar3 = param_6 == -1;" (assignment_expression "bVar3 = param_6 == -1" identifier = (binary_expression "param_6 == -1" identifier == number_literal)) ;) }) (else_clause "else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" else (if_statement "if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }" if (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" ( (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[3]" identifier [ number_literal ])) <= (cast_expression "(uint)param_5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_5[2]" identifier [ number_literal ]))) )) (compound_statement "{\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }" { (expression_statement "iVar2 = (**(code **)(*param_5 + 0x24))();" (assignment_expression "iVar2 = (**(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 "()" ( )))) ;) (expression_statement "bVar3 = iVar2 == -1;" (assignment_expression "bVar3 = iVar2 == -1" identifier = (binary_expression "iVar2 == -1" identifier == number_literal)) ;) })) }) (else_clause "else {\n    bVar3 = false;\n  }" else (compound_statement "{\n    bVar3 = false;\n  }" { (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) }))))) (if_statement "if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "(bVar3 == bVar4)" ( (binary_expression "bVar3 == bVar4" identifier == identifier) )) (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 = piVar1;" (assignment_expression "*param_1 = piVar1" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_1c;" (assignment_expression "param_1[1] = local_1c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return param_1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < IDENT) < (binary_expression IDENT >> IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier (ERROR : : (comma_expression (binary_expression IDENT < IDENT) , IDENT) : : (comma_expression (binary_expression IDENT < IDENT) , IDENT) :) : (expression_statement (binary_expression IDENT < (binary_expression IDENT >> (ERROR > : :) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT , IDENT , (pointer_expression & IDENT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (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)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (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 ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (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 ;) })))
(function_definition "undefined4 *\nFUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)\n\n{\n  int *piVar1;\n  int iVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  undefined4 local_24;\n  int *local_20;\n  int local_1c;\n  \n  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);\n  iVar2 = *(int *)(iVar2 + 8);\n  local_28 = 0;\n  local_44 = *(undefined4 *)(iVar2 + 0x2c);\n  local_40 = *(undefined4 *)(iVar2 + 0x30);\n  local_3c = *(undefined4 *)(iVar2 + 0x34);\n  local_30 = *(undefined4 *)(iVar2 + 0x40);\n  local_60 = *(undefined4 *)(iVar2 + 0x48);\n  local_5c = *(undefined4 *)(iVar2 + 0x4c);\n  local_58 = *(undefined4 *)(iVar2 + 0x50);\n  local_54 = *(undefined4 *)(iVar2 + 0x54);\n  local_50 = *(undefined4 *)(iVar2 + 0x58);\n  local_4c = *(undefined4 *)(iVar2 + 0x5c);\n  local_48 = *(undefined4 *)(iVar2 + 0x60);\n  local_38 = *(undefined4 *)(iVar2 + 0x38);\n  local_34 = *(undefined4 *)(iVar2 + 0x3c);\n  local_2c = *(undefined4 *)(iVar2 + 0x44);\n  std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);\n  if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }\n  piVar1 = local_20;\n  if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }\n  if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }\n  if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar1;\n  param_1[1] = local_1c;\n  return param_1;\n}" (type_identifier "undefined4") (pointer_declarator "*\nFUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)" (* "*") (function_declarator "FUN_003caa9c(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)" (identifier "FUN_003caa9c") (parameter_list "(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,\n            int *param_5,int param_6,int param_7,uint *param_8,int param_9)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "uint *param_8" (type_identifier "uint") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) (, ",") (parameter_declaration "int param_9" (primitive_type "int") (identifier "param_9")) () ")")))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  bool bVar3;\n  bool bVar4;\n  undefined4 local_60;\n  undefined4 local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined4 local_50;\n  undefined4 local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  int local_28;\n  undefined4 local_24;\n  int *local_20;\n  int local_1c;\n  \n  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);\n  iVar2 = *(int *)(iVar2 + 8);\n  local_28 = 0;\n  local_44 = *(undefined4 *)(iVar2 + 0x2c);\n  local_40 = *(undefined4 *)(iVar2 + 0x30);\n  local_3c = *(undefined4 *)(iVar2 + 0x34);\n  local_30 = *(undefined4 *)(iVar2 + 0x40);\n  local_60 = *(undefined4 *)(iVar2 + 0x48);\n  local_5c = *(undefined4 *)(iVar2 + 0x4c);\n  local_58 = *(undefined4 *)(iVar2 + 0x50);\n  local_54 = *(undefined4 *)(iVar2 + 0x54);\n  local_50 = *(undefined4 *)(iVar2 + 0x58);\n  local_4c = *(undefined4 *)(iVar2 + 0x5c);\n  local_48 = *(undefined4 *)(iVar2 + 0x60);\n  local_38 = *(undefined4 *)(iVar2 + 0x38);\n  local_34 = *(undefined4 *)(iVar2 + 0x3c);\n  local_2c = *(undefined4 *)(iVar2 + 0x44);\n  std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);\n  if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }\n  piVar1 = local_20;\n  if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }\n  if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }\n  if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }\n  *param_1 = piVar1;\n  param_1[1] = local_1c;\n  return param_1;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "bool bVar4;" (primitive_type "bool") (identifier "bVar4") (; ";")) (declaration "undefined4 local_60;" (type_identifier "undefined4") (identifier "local_60") (; ";")) (declaration "undefined4 local_5c;" (type_identifier "undefined4") (identifier "local_5c") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined4 local_50;" (type_identifier "undefined4") (identifier "local_50") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int *local_20;" (primitive_type "int") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);" (assignment_expression "iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c)" (parenthesized_expression "(*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)" (( "(") (binary_expression "*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0" (binary_expression "*(code *)PTR_use_facet<std___timepunct" (pointer_expression "*(code *)PTR_use_facet" (* "*") (cast_expression "(code *)PTR_use_facet" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_use_facet"))) (< "<") (identifier "std___timepunct")) (< "<") (binary_expression "char>>_004c2ce0" (identifier "char") (>> ">>") (identifier "_004c2ce0"))) () ")")) (argument_list "(param_7 + 0x6c)" (( "(") (binary_expression "param_7 + 0x6c" (identifier "param_7") (+ "+") (number_literal "0x6c")) () ")")))) (; ";")) (expression_statement "iVar2 = *(int *)(iVar2 + 8);" (assignment_expression "iVar2 = *(int *)(iVar2 + 8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(iVar2 + 8)" (* "*") (cast_expression "(int *)(iVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 8)" (( "(") (binary_expression "iVar2 + 8" (identifier "iVar2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = *(undefined4 *)(iVar2 + 0x2c);" (assignment_expression "local_44 = *(undefined4 *)(iVar2 + 0x2c)" (identifier "local_44") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")"))))) (; ";")) (expression_statement "local_40 = *(undefined4 *)(iVar2 + 0x30);" (assignment_expression "local_40 = *(undefined4 *)(iVar2 + 0x30)" (identifier "local_40") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x30)" (( "(") (binary_expression "iVar2 + 0x30" (identifier "iVar2") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "local_3c = *(undefined4 *)(iVar2 + 0x34);" (assignment_expression "local_3c = *(undefined4 *)(iVar2 + 0x34)" (identifier "local_3c") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "local_30 = *(undefined4 *)(iVar2 + 0x40);" (assignment_expression "local_30 = *(undefined4 *)(iVar2 + 0x40)" (identifier "local_30") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x40)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x40)" (( "(") (binary_expression "iVar2 + 0x40" (identifier "iVar2") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "local_60 = *(undefined4 *)(iVar2 + 0x48);" (assignment_expression "local_60 = *(undefined4 *)(iVar2 + 0x48)" (identifier "local_60") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x48)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x48)" (( "(") (binary_expression "iVar2 + 0x48" (identifier "iVar2") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "local_5c = *(undefined4 *)(iVar2 + 0x4c);" (assignment_expression "local_5c = *(undefined4 *)(iVar2 + 0x4c)" (identifier "local_5c") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x4c)" (( "(") (binary_expression "iVar2 + 0x4c" (identifier "iVar2") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "local_58 = *(undefined4 *)(iVar2 + 0x50);" (assignment_expression "local_58 = *(undefined4 *)(iVar2 + 0x50)" (identifier "local_58") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x50)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x50)" (( "(") (binary_expression "iVar2 + 0x50" (identifier "iVar2") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "local_54 = *(undefined4 *)(iVar2 + 0x54);" (assignment_expression "local_54 = *(undefined4 *)(iVar2 + 0x54)" (identifier "local_54") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x54)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x54)" (( "(") (binary_expression "iVar2 + 0x54" (identifier "iVar2") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "local_50 = *(undefined4 *)(iVar2 + 0x58);" (assignment_expression "local_50 = *(undefined4 *)(iVar2 + 0x58)" (identifier "local_50") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x58)" (( "(") (binary_expression "iVar2 + 0x58" (identifier "iVar2") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "local_4c = *(undefined4 *)(iVar2 + 0x5c);" (assignment_expression "local_4c = *(undefined4 *)(iVar2 + 0x5c)" (identifier "local_4c") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x5c)" (( "(") (binary_expression "iVar2 + 0x5c" (identifier "iVar2") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "local_48 = *(undefined4 *)(iVar2 + 0x60);" (assignment_expression "local_48 = *(undefined4 *)(iVar2 + 0x60)" (identifier "local_48") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x60)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x60)" (( "(") (binary_expression "iVar2 + 0x60" (identifier "iVar2") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "local_38 = *(undefined4 *)(iVar2 + 0x38);" (assignment_expression "local_38 = *(undefined4 *)(iVar2 + 0x38)" (identifier "local_38") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x38)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "local_34 = *(undefined4 *)(iVar2 + 0x3c);" (assignment_expression "local_34 = *(undefined4 *)(iVar2 + 0x3c)" (identifier "local_34") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x3c)" (( "(") (binary_expression "iVar2 + 0x3c" (identifier "iVar2") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "local_2c = *(undefined4 *)(iVar2 + 0x44);" (assignment_expression "local_2c = *(undefined4 *)(iVar2 + 0x44)" (identifier "local_2c") (= "=") (pointer_expression "*(undefined4 *)(iVar2 + 0x44)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x44)" (( "(") (binary_expression "iVar2 + 0x44" (identifier "iVar2") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (labeled_statement "std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);" (statement_identifier "std") (ERROR "::time_get<char,std::istreambuf_iterator<char,std:" (: ":") (: ":") (comma_expression "time_get<char,std" (binary_expression "time_get<char" (identifier "time_get") (< "<") (identifier "char")) (, ",") (identifier "std")) (: ":") (: ":") (comma_expression "istreambuf_iterator<char,std" (binary_expression "istreambuf_iterator<char" (identifier "istreambuf_iterator") (< "<") (identifier "char")) (, ",") (identifier "std")) (: ":")) (: ":") (expression_statement "char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28);" (binary_expression "char_traits<char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" (identifier "char_traits") (< "<") (binary_expression "char>>>::\n  _M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" (identifier "char") (>> ">>") (ERROR ">::" (> ">") (: ":") (: ":")) (call_expression "_M_extract_wday_or_month\n            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" (identifier "_M_extract_wday_or_month") (argument_list "(&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,\n             &local_28)" (( "(") (pointer_expression "&local_20" (& "&") (identifier "local_20")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (number_literal "7") (, ",") (identifier "param_7") (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")"))))) (; ";"))) (if_statement "if (local_28 == 0) {\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }\n  else {\n    *param_8 = *param_8 | 4;\n  }" (if "if") (parenthesized_expression "(local_28 == 0)" (( "(") (binary_expression "local_28 == 0" (identifier "local_28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(param_9 + 0x18) = local_24;\n  }" ({ "{") (expression_statement "*(undefined4 *)(param_9 + 0x18) = local_24;" (assignment_expression "*(undefined4 *)(param_9 + 0x18) = local_24" (pointer_expression "*(undefined4 *)(param_9 + 0x18)" (* "*") (cast_expression "(undefined4 *)(param_9 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_9 + 0x18)" (( "(") (binary_expression "param_9 + 0x18" (identifier "param_9") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (identifier "local_24")) (; ";")) (} "}")) (else_clause "else {\n    *param_8 = *param_8 | 4;\n  }" (else "else") (compound_statement "{\n    *param_8 = *param_8 | 4;\n  }" ({ "{") (expression_statement "*param_8 = *param_8 | 4;" (assignment_expression "*param_8 = *param_8 | 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (binary_expression "*param_8 | 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (| "|") (number_literal "4"))) (; ";")) (} "}")))) (expression_statement "piVar1 = local_20;" (assignment_expression "piVar1 = local_20" (identifier "piVar1") (= "=") (identifier "local_20")) (; ";")) (if_statement "if (local_20 == (int *)0x0) {\n    bVar4 = local_1c == -1;\n  }\n  else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" (if "if") (parenthesized_expression "(local_20 == (int *)0x0)" (( "(") (binary_expression "local_20 == (int *)0x0" (identifier "local_20") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    bVar4 = local_1c == -1;\n  }" ({ "{") (expression_statement "bVar4 = local_1c == -1;" (assignment_expression "bVar4 = local_1c == -1" (identifier "bVar4") (= "=") (binary_expression "local_1c == -1" (identifier "local_1c") (== "==") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" (else "else") (if_statement "if (local_1c == -1) {\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }\n  else {\n    bVar4 = false;\n  }" (if "if") (parenthesized_expression "(local_1c == -1)" (( "(") (binary_expression "local_1c == -1" (identifier "local_1c") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    bVar4 = false;\n    if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }\n  }" ({ "{") (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (if_statement "if ((uint)local_20[3] <= (uint)local_20[2]) {\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }" (if "if") (parenthesized_expression "((uint)local_20[3] <= (uint)local_20[2])" (( "(") (binary_expression "(uint)local_20[3] <= (uint)local_20[2]" (cast_expression "(uint)local_20[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_20[3]" (identifier "local_20") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)local_20[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_20[2]" (identifier "local_20") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);\n      if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }\n      bVar4 = iVar2 == -1;\n      piVar1 = local_20;\n    }" ({ "{") (expression_statement "iVar2 = (**(code **)(*local_20 + 0x24))(local_20);" (assignment_expression "iVar2 = (**(code **)(*local_20 + 0x24))(local_20)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(*local_20 + 0x24))(local_20)" (parenthesized_expression "(**(code **)(*local_20 + 0x24))" (( "(") (pointer_expression "**(code **)(*local_20 + 0x24)" (* "*") (pointer_expression "*(code **)(*local_20 + 0x24)" (* "*") (cast_expression "(code **)(*local_20 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_20 + 0x24)" (( "(") (binary_expression "*local_20 + 0x24" (pointer_expression "*local_20" (* "*") (identifier "local_20")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(local_20)" (( "(") (identifier "local_20") () ")")))) (; ";")) (if_statement "if (iVar2 == -1) {\n        local_20 = (int *)0x0;\n      }" (if "if") (parenthesized_expression "(iVar2 == -1)" (( "(") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        local_20 = (int *)0x0;\n      }" ({ "{") (expression_statement "local_20 = (int *)0x0;" (assignment_expression "local_20 = (int *)0x0" (identifier "local_20") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "bVar4 = iVar2 == -1;" (assignment_expression "bVar4 = iVar2 == -1" (identifier "bVar4") (= "=") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1"))) (; ";")) (expression_statement "piVar1 = local_20;" (assignment_expression "piVar1 = local_20" (identifier "piVar1") (= "=") (identifier "local_20")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    bVar4 = false;\n  }" (else "else") (compound_statement "{\n    bVar4 = false;\n  }" ({ "{") (expression_statement "bVar4 = false;" (assignment_expression "bVar4 = false" (identifier "bVar4") (= "=") (false "false")) (; ";")) (} "}")))))) (if_statement "if (param_5 == (int *)0x0) {\n    bVar3 = param_6 == -1;\n  }\n  else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" (if "if") (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"))) () ")")) (compound_statement "{\n    bVar3 = param_6 == -1;\n  }" ({ "{") (expression_statement "bVar3 = param_6 == -1;" (assignment_expression "bVar3 = param_6 == -1" (identifier "bVar3") (= "=") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" (else "else") (if_statement "if (param_6 == -1) {\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }\n  else {\n    bVar3 = false;\n  }" (if "if") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    bVar3 = false;\n    if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }\n  }" ({ "{") (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }" (if "if") (parenthesized_expression "((uint)param_5[3] <= (uint)param_5[2])" (( "(") (binary_expression "(uint)param_5[3] <= (uint)param_5[2]" (cast_expression "(uint)param_5[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[3]" (identifier "param_5") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (cast_expression "(uint)param_5[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_5[2]" (identifier "param_5") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n      iVar2 = (**(code **)(*param_5 + 0x24))();\n      bVar3 = iVar2 == -1;\n    }" ({ "{") (expression_statement "iVar2 = (**(code **)(*param_5 + 0x24))();" (assignment_expression "iVar2 = (**(code **)(*param_5 + 0x24))()" (identifier "iVar2") (= "=") (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 "()" (( "(") () ")")))) (; ";")) (expression_statement "bVar3 = iVar2 == -1;" (assignment_expression "bVar3 = iVar2 == -1" (identifier "bVar3") (= "=") (binary_expression "iVar2 == -1" (identifier "iVar2") (== "==") (number_literal "-1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    bVar3 = false;\n  }" (else "else") (compound_statement "{\n    bVar3 = false;\n  }" ({ "{") (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (} "}")))))) (if_statement "if (bVar3 == bVar4) {\n    *param_8 = *param_8 | 2;\n  }" (if "if") (parenthesized_expression "(bVar3 == bVar4)" (( "(") (binary_expression "bVar3 == bVar4" (identifier "bVar3") (== "==") (identifier "bVar4")) () ")")) (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 = piVar1;" (assignment_expression "*param_1 = piVar1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "piVar1")) (; ";")) (expression_statement "param_1[1] = local_1c;" (assignment_expression "param_1[1] = local_1c" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_1c")) (; ";")) (return_statement "return param_1;" (return "return") (identifier "param_1") (; ";")) (} "}")))

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

var_4 *
std::time_get<var_2,std::istreambuf_iterator<var_2,std::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_19,var_6 var_12,var_8 *var_9,var_6 var_16)

{
  int *piVar1;
  int var_13;
  bool var_20;
  bool var_21;
  var_4 local_60;
  var_4 local_5c;
  var_4 local_58;
  var_4 local_54;
  var_4 local_50;
  var_4 local_4c;
  var_4 local_48;
  var_4 local_44;
  var_4 local_40;
  var_4 local_3c;
  var_4 local_38;
  var_4 local_34;
  var_4 local_30;
  var_4 local_2c;
  int var_15;
  var_4 local_24;
  int *var_17;
  int var_18;
  
  var_13 = (*(type_1 *)PTR_use_facet<var_10<var_2>>var_11)(var_12 + 0x6c);
  var_13 = *(int *)(var_13 + 8);
  var_15 = 0;
  local_44 = *(var_4 *)(var_13 + 0x2c);
  local_40 = *(var_4 *)(var_13 + 0x30);
  local_3c = *(var_4 *)(var_13 + 0x34);
  local_30 = *(var_4 *)(var_13 + 0x40);
  local_60 = *(var_4 *)(var_13 + 0x48);
  local_5c = *(var_4 *)(var_13 + 0x4c);
  local_58 = *(var_4 *)(var_13 + 0x50);
  local_54 = *(var_4 *)(var_13 + 0x54);
  local_50 = *(var_4 *)(var_13 + 0x58);
  local_4c = *(var_4 *)(var_13 + 0x5c);
  local_48 = *(var_4 *)(var_13 + 0x60);
  local_38 = *(var_4 *)(var_13 + 0x38);
  local_34 = *(var_4 *)(var_13 + 0x3c);
  local_2c = *(var_4 *)(var_13 + 0x44);
  var_14
            (&var_17,param_2,param_3,param_4,var_7,var_19,&local_24,&local_60,7,var_12,
             &var_15);
  if (var_15 == 0) {
    *(var_4 *)(var_16 + 0x18) = local_24;
  }
  else {
    *var_9 = *var_9 | 4;
  }
  piVar1 = var_17;
  if (var_17 == (int *)0x0) {
    var_21 = var_18 == -1;
  }
  else if (var_18 == -1) {
    var_21 = false;
    if ((var_8)var_17[3] <= (var_8)var_17[2]) {
      var_13 = (**(type_1 **)(*var_17 + 0x24))(var_17);
      if (var_13 == -1) {
        var_17 = (int *)0x0;
      }
      var_21 = var_13 == -1;
      piVar1 = var_17;
    }
  }
  else {
    var_21 = false;
  }
  if (var_7 == (int *)0x0) {
    var_20 = var_19 == -1;
  }
  else if (var_19 == -1) {
    var_20 = false;
    if ((var_8)var_7[3] <= (var_8)var_7[2]) {
      var_13 = (**(type_1 **)(*var_7 + 0x24))();
      var_20 = var_13 == -1;
    }
  }
  else {
    var_20 = false;
  }
  if (var_20 == var_21) {
    *var_9 = *var_9 | 2;
  }
  *var_5 = piVar1;
  var_5[1] = var_18;
  return var_5;
}


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

undefined4 *
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,int param_9)

{
  int *piVar1;
  int iVar2;
  bool bVar3;
  bool bVar4;
  undefined4 local_60;
  undefined4 local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined4 local_50;
  undefined4 local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  int local_28;
  undefined4 local_24;
  int *local_20;
  int local_1c;
  
  iVar2 = (*(code *)PTR_use_facet<std___timepunct<char>>_004c2ce0)(param_7 + 0x6c);
  iVar2 = *(int *)(iVar2 + 8);
  local_28 = 0;
  local_44 = *(undefined4 *)(iVar2 + 0x2c);
  local_40 = *(undefined4 *)(iVar2 + 0x30);
  local_3c = *(undefined4 *)(iVar2 + 0x34);
  local_30 = *(undefined4 *)(iVar2 + 0x40);
  local_60 = *(undefined4 *)(iVar2 + 0x48);
  local_5c = *(undefined4 *)(iVar2 + 0x4c);
  local_58 = *(undefined4 *)(iVar2 + 0x50);
  local_54 = *(undefined4 *)(iVar2 + 0x54);
  local_50 = *(undefined4 *)(iVar2 + 0x58);
  local_4c = *(undefined4 *)(iVar2 + 0x5c);
  local_48 = *(undefined4 *)(iVar2 + 0x60);
  local_38 = *(undefined4 *)(iVar2 + 0x38);
  local_34 = *(undefined4 *)(iVar2 + 0x3c);
  local_2c = *(undefined4 *)(iVar2 + 0x44);
  std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::
  _M_extract_wday_or_month
            (&local_20,param_2,param_3,param_4,param_5,param_6,&local_24,&local_60,7,param_7,
             &local_28);
  if (local_28 == 0) {
    *(undefined4 *)(param_9 + 0x18) = local_24;
  }
  else {
    *param_8 = *param_8 | 4;
  }
  piVar1 = local_20;
  if (local_20 == (int *)0x0) {
    bVar4 = local_1c == -1;
  }
  else if (local_1c == -1) {
    bVar4 = false;
    if ((uint)local_20[3] <= (uint)local_20[2]) {
      iVar2 = (**(code **)(*local_20 + 0x24))(local_20);
      if (iVar2 == -1) {
        local_20 = (int *)0x0;
      }
      bVar4 = iVar2 == -1;
      piVar1 = local_20;
    }
  }
  else {
    bVar4 = false;
  }
  if (param_5 == (int *)0x0) {
    bVar3 = param_6 == -1;
  }
  else if (param_6 == -1) {
    bVar3 = false;
    if ((uint)param_5[3] <= (uint)param_5[2]) {
      iVar2 = (**(code **)(*param_5 + 0x24))();
      bVar3 = iVar2 == -1;
    }
  }
  else {
    bVar3 = false;
  }
  if (bVar3 == bVar4) {
    *param_8 = *param_8 | 2;
  }
  *param_1 = piVar1;
  param_1[1] = local_1c;
  return param_1;
}

