
/* WARNING: Removing unreachable block (ram,0x0001c9b8) */

void parse_datestr(char *date_str,tm *ptm)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  char cVar7;
  undefined1 *puVar5;
  char *pcVar6;
  int iVar8;
  tm *ptVar9;
  int *unaff_s3;
  int *unaff_s4;
  int *piVar10;
  int *piVar11;
  char end;
  time_t t;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  end = '\0';
  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;
  iVar2 = (*(code *)PTR_strrchr_0012adbc)(date_str,0x3a);
  if (iVar2 != 0) {
    unaff_s4 = &ptm->tm_hour;
    piVar4 = &ptm->tm_min;
    unaff_s3 = (int *)&end;
    iVar3 = (*(code *)PTR_sscanf_0012ad98)
                      (date_str,PTR_UINT_0012a18c + -0x8ec,unaff_s4,piVar4,unaff_s3);
    if (iVar3 < 2) {
      piVar11 = &ptm->tm_mon;
      piVar10 = &ptm->tm_mday;
      iVar3 = (*(code *)PTR_sscanf_0012ad98)
                        (date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,
                         unaff_s3);
      if (iVar3 < 4) {
        iVar3 = (*(code *)PTR_sscanf_0012ad98)
                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,
                           unaff_s4,piVar4,unaff_s3);
        if ((iVar3 < 5) &&
           (iVar3 = (*(code *)PTR_sscanf_0012ad98)
                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,
                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)) {
          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)
          ;
          if (pcVar6 != (char *)0x0) {
            cVar7 = *pcVar6;
            goto LAB_0001cb60;
          }
          goto LAB_0001c96c;
        }
        ptm->tm_year = ptm->tm_year + -0x76c;
        ptm->tm_mon = ptm->tm_mon + -1;
      }
      else {
        ptm->tm_mon = ptm->tm_mon + -1;
      }
    }
    cVar7 = end;
    if (end != ':') goto LAB_0001cb60;
    iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);
    cVar7 = end;
    if (iVar2 != 1) goto LAB_0001cb60;
    if (local_2c == *(int *)puVar1) {
      return;
    }
LAB_0001cb78:
    do {
      puVar5 = (undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();
LAB_0001cb80:
      puVar5 = puVar5 + 100;
      ptm->tm_year = (int)puVar5;
LAB_0001cb04:
      unaff_s4 = (int *)((int)unaff_s4 + 0x32);
      if (unaff_s4 < puVar5) {
        ptm->tm_year = (int)(puVar5 + -100);
      }
LAB_0001c904:
      ptm->tm_sec = 0;
      if (end == '.') {
        iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);
        iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);
        if (iVar2 == 1) {
          end = '\0';
        }
        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;
      }
      if ((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||
         (cVar7 = end, 0xb < ptm->tm_mon)) goto LAB_0001c96c;
LAB_0001cb60:
      if (cVar7 != '\0') goto LAB_0001c96c;
      if (local_2c == *(int *)puVar1) {
        return;
      }
    } while( true );
  }
  iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2d);
  if (iVar2 != 0) {
    unaff_s3 = &ptm->tm_mday;
    unaff_s4 = (int *)&end;
    iVar2 = (*(code *)PTR_sscanf_0012ad98)
                      (date_str,PTR_UINT_0012a18c + -0x8a0,&ptm->tm_year,&ptm->tm_mon,unaff_s3,
                       &ptm->tm_hour,unaff_s4);
    if ((3 < iVar2) ||
       (iVar2 = (*(code *)PTR_sscanf_0012ad98)
                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,
                           unaff_s4), 2 < iVar2)) {
      ptm->tm_year = ptm->tm_year + -0x76c;
      ptm->tm_mon = ptm->tm_mon + -1;
      cVar7 = end;
      goto LAB_0001cb60;
    }
  }
  if (*date_str == '@') {
    t = bb_strtol(date_str + 1,(char **)0x0,10);
    if ((**(int **)PTR_bb_errno_0012a214 != 0) ||
       (piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t), piVar4 == (int *)0x0)) {
                    /* WARNING: Subroutine does not return */
      end = '1';
      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);
    }
    piVar10 = piVar4;
    do {
      ptVar9 = ptm;
      piVar11 = piVar10;
      piVar10 = piVar11 + 4;
      ptm = (tm *)&ptVar9->tm_mon;
      iVar8 = piVar11[1];
      iVar3 = piVar11[2];
      iVar2 = piVar11[3];
      ptVar9->tm_sec = *piVar11;
      ptVar9->tm_min = iVar8;
      ptVar9->tm_hour = iVar3;
      ptVar9->tm_mday = iVar2;
    } while (piVar10 != piVar4 + 8);
    iVar3 = *piVar10;
    iVar2 = piVar11[6];
    ptVar9->tm_year = piVar11[5];
    *(int *)ptm = iVar3;
    ptVar9->tm_wday = iVar2;
    if (local_2c == *(int *)puVar1) {
      return;
    }
    goto LAB_0001cb78;
  }
  unaff_s4 = (int *)ptm->tm_year;
  iVar2 = (*(code *)PTR_strchrnul_0012b160)(date_str,0x2e);
  iVar2 = iVar2 - (int)date_str;
  if (iVar2 == 2) {
    unaff_s3 = (int *)&end;
    iVar3 = (*(code *)PTR_sscanf_0012ad98)
                      (date_str,PTR_UINT_0012a18c + -0x878,&ptm->tm_min,unaff_s3);
    if (0 < iVar3) goto LAB_0001c904;
  }
  else {
    if (iVar2 == 4) {
      unaff_s3 = (int *)&end;
      iVar2 = (*(code *)PTR_sscanf_0012ad98)
                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3);
      if (1 < iVar2) goto LAB_0001c904;
      goto LAB_0001c96c;
    }
    if (iVar2 == 6) {
      unaff_s3 = (int *)&end;
      iVar2 = (*(code *)PTR_sscanf_0012ad98)
                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,
                         &ptm->tm_min,unaff_s3);
      if (2 < iVar2) goto LAB_0001c904;
                    /* WARNING: Subroutine does not return */
      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);
    }
    if (iVar2 == 8) {
      unaff_s3 = (int *)&end;
      iVar2 = (*(code *)PTR_sscanf_0012ad98)
                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,
                         &ptm->tm_hour,&ptm->tm_min,unaff_s3);
      if (3 < iVar2) {
        ptm->tm_mon = ptm->tm_mon + -1;
        goto LAB_0001c904;
      }
      goto LAB_0001c96c;
    }
    if (iVar2 == 10) {
      unaff_s3 = (int *)&end;
      iVar2 = (*(code *)PTR_sscanf_0012ad98)
                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,
                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3);
      if (4 < iVar2) {
        ptm->tm_mon = ptm->tm_mon + -1;
        if ((int)unaff_s4 < 0x32) goto LAB_0001c904;
        puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);
        if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;
        ptm->tm_year = (int)puVar5;
        goto LAB_0001cb04;
      }
      goto LAB_0001c96c;
    }
  }
  if (iVar2 == 0xc) {
    unaff_s3 = (int *)&end;
    iVar2 = (*(code *)PTR_sscanf_0012ad98)
                      (date_str,PTR_UINT_0012a18c + -0x870,&ptm->tm_year,&ptm->tm_mon,&ptm->tm_mday,
                       &ptm->tm_hour,&ptm->tm_min,unaff_s3);
    if (4 < iVar2) {
      ptm->tm_year = ptm->tm_year + -0x76c;
      ptm->tm_mon = ptm->tm_mon + -1;
      goto LAB_0001c904;
    }
  }
LAB_0001c96c:
                    /* WARNING: Subroutine does not return */
  bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);
}



/* WARNING: Removing unreachable block (ram,0x0001c9b8) */

void FUN_0001c5d8(char *param_1,int *param_2)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  int *piVar5;
  int *piVar6;
  char cVar8;
  char *pcVar7;
  int iVar9;
  int *piVar10;
  int *unaff_s3;
  int *unaff_s4;
  int *unaff_s5;
  int *unaff_s6;
  int unaff_s7;
  int *unaff_s8;
  undefined1 local_31;
  undefined4 local_30;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  local_31 = '\0';
  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;
  iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);
  if (iVar2 == 0) {
    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);
    if (iVar2 == 0) {
LAB_0001c77c:
      if (*param_1 != '@') {
        unaff_s4 = (int *)param_2[5];
        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);
        unaff_s5 = (int *)(iVar2 - (int)param_1);
        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;
        iVar2 = (*(code *)PTR_sscanf_0012ad98)
                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);
        if (0 < iVar2) goto LAB_0001c904;
        goto LAB_0001c89c;
      }
      local_30 = FUN_0001d3ac(param_1 + 1,0,10);
      if ((**(int **)PTR_DAT_0012a214 == 0) &&
         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {
        piVar5 = piVar6;
        do {
          piVar10 = param_2;
          piVar4 = piVar5;
          piVar5 = piVar4 + 4;
          iVar9 = piVar4[1];
          iVar3 = piVar4[2];
          iVar2 = piVar4[3];
          *piVar10 = *piVar4;
          piVar10[1] = iVar9;
          piVar10[2] = iVar3;
          piVar10[3] = iVar2;
          param_2 = piVar10 + 4;
        } while (piVar5 != piVar6 + 8);
        iVar3 = *piVar5;
        iVar2 = piVar4[6];
        piVar10[5] = piVar4[5];
        piVar10[4] = iVar3;
        piVar10[6] = iVar2;
        if (local_2c == *(int *)puVar1) {
          return;
        }
        goto LAB_0001cb78;
      }
      local_31 = '1';
      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);
      iVar2 = unaff_s7;
LAB_0001cba8:
      iVar3 = (*(code *)PTR_sscanf_0012ad98)
                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,
                         unaff_s5,unaff_s3);
      if ((4 < iVar3) ||
         (iVar3 = (*(code *)PTR_sscanf_0012ad98)
                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,
                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {
        param_2[5] = param_2[5] + -0x76c;
        param_2[4] = param_2[4] + -1;
        goto LAB_0001cc04;
      }
      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);
      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;
      cVar8 = *pcVar7;
    }
    else {
      unaff_s5 = param_2 + 5;
      unaff_s6 = param_2 + 4;
      unaff_s3 = param_2 + 3;
      unaff_s4 = (int *)&local_31;
      iVar2 = (*(code *)PTR_sscanf_0012ad98)
                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,
                         unaff_s4);
      if ((iVar2 < 4) &&
         (iVar2 = (*(code *)PTR_sscanf_0012ad98)
                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)
         , iVar2 < 3)) goto LAB_0001c77c;
      param_2[5] = param_2[5] + -0x76c;
      param_2[4] = param_2[4] + -1;
      cVar8 = local_31;
    }
  }
  else {
    unaff_s4 = param_2 + 2;
    unaff_s5 = param_2 + 1;
    unaff_s3 = (int *)&local_31;
    iVar3 = (*(code *)PTR_sscanf_0012ad98)
                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);
    if (iVar3 < 2) {
      unaff_s8 = param_2 + 4;
      unaff_s6 = param_2 + 3;
      iVar3 = (*(code *)PTR_sscanf_0012ad98)
                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,
                         unaff_s3);
      if (iVar3 < 4) goto LAB_0001cba8;
      param_2[4] = param_2[4] + -1;
    }
LAB_0001cc04:
    cVar8 = local_31;
    if ((local_31 == ':') &&
       (iVar2 = (*(code *)PTR_sscanf_0012ad98)
                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,
       iVar2 == 1)) {
      if (local_2c == *(int *)puVar1) {
        return;
      }
      goto LAB_0001cb78;
    }
  }
  while (cVar8 != '\0') {
LAB_0001c96c:
    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);
LAB_0001c974:
    if (unaff_s5 == (int *)&DAT_00000004) {
      iVar2 = (*(code *)PTR_sscanf_0012ad98)
                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);
      if (iVar2 < 2) goto LAB_0001c96c;
    }
    else {
      if (unaff_s5 == (int *)&DAT_00000006) {
        iVar2 = (*(code *)PTR_sscanf_0012ad98)
                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,
                           &local_31);
        if (2 < iVar2) goto LAB_0001c904;
        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);
      }
      if (unaff_s5 == (int *)&DAT_00000008) {
        iVar2 = (*(code *)PTR_sscanf_0012ad98)
                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,
                           param_2 + 1,&local_31);
        if (iVar2 < 4) goto LAB_0001c96c;
        param_2[4] = param_2[4] + -1;
      }
      else if (unaff_s5 == (int *)&DAT_0000000a) {
        iVar2 = (*(code *)PTR_sscanf_0012ad98)
                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,
                           param_2 + 2,param_2 + 1,&local_31);
        if (iVar2 < 5) goto LAB_0001c96c;
        param_2[4] = param_2[4] + -1;
        if (0x31 < (int)unaff_s4) {
          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);
          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {
            piVar6 = piVar6 + 0x19;
            param_2[5] = (int)piVar6;
          }
          else {
            param_2[5] = (int)piVar6;
          }
          unaff_s4 = (int *)((int)unaff_s4 + 0x32);
          if (unaff_s4 < piVar6) {
            param_2[5] = (int)(piVar6 + -0x19);
          }
        }
      }
      else {
LAB_0001c89c:
        if ((unaff_s5 != (int *)&DAT_0000000c) ||
           (iVar2 = (*(code *)PTR_sscanf_0012ad98)
                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,
                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))
        goto LAB_0001c96c;
        param_2[5] = param_2[5] + -0x76c;
        param_2[4] = param_2[4] + -1;
      }
    }
LAB_0001c904:
    *param_2 = 0;
    if (local_31 == '.') {
      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);
      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)
      ;
      if (iVar2 == 1) {
        local_31 = '\0';
      }
      if (0x3c < *param_2) goto LAB_0001c96c;
    }
    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||
       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;
  }
  if (local_2c == *(int *)puVar1) {
    return;
  }
LAB_0001cb78:
  (*(code *)PTR___stack_chk_fail_0012b0c8)();
  return;
}


lui gp,0x11
addiu gp,gp,0x5b78
addu gp,gp,t9
addiu sp,sp,-0x68
lw t9,-0x7394(gp)
sw s1,0x44(sp)
lw s1,-0x7004(gp)
sw s0,0x40(sp)
or s0,a1,zero
li a1,0x3a
sw gp,0x20(sp)
sw s2,0x48(sp)
or s2,a0,zero
sw ra,0x64(sp)
sw s8,0x60(sp)
sw s7,0x5c(sp)
sw s6,0x58(sp)
sw s5,0x54(sp)
sw s4,0x50(sp)
sw s3,0x4c(sp)
sb zero,0x37(sp)
lw v0,0x0(s1)
sw v0,0x3c(sp)
jalr t9
_nop
beq v0,zero,0x0001c6cc
_lw gp,0x20(sp)
lw a1,-0x7fc4(gp)
addiu s4,s0,0x8
lw t9,-0x73b8(gp)
addiu s5,s0,0x4
addiu s3,sp,0x37
addiu a1,a1,-0x8ec
sw s3,0x10(sp)
or a3,s5,zero
or a2,s4,zero
or a0,s2,zero
jalr t9
_or s7,v0,zero
slti v0,v0,0x2
beq v0,zero,0x0001cc04
_lw gp,0x20(sp)
lw a1,-0x7fc4(gp)
addiu s8,s0,0x10
lw t9,-0x73b8(gp)
addiu s6,s0,0xc
sw s3,0x18(sp)
or a2,s8,zero
addiu a1,a1,-0x8e4
sw s5,0x14(sp)
sw s4,0x10(sp)
or a3,s6,zero
jalr t9
_or a0,s2,zero
slti v0,v0,0x4
bne v0,zero,0x0001cba8
_lw gp,0x20(sp)
lw v0,0x10(s0)
addiu v0,v0,-0x1
b 0x0001cc04
_sw v0,0x10(s0)
lw t9,-0x71fc(gp)
li a1,0x2d
jalr t9
_or a0,s2,zero
beq v0,zero,0x0001c77c
_lw gp,0x20(sp)
lw a1,-0x7fc4(gp)
addiu v0,s0,0x8
lw t9,-0x73b8(gp)
addiu s5,s0,0x14
addiu s6,s0,0x10
sw v0,0x14(sp)
addiu s3,s0,0xc
addiu s4,sp,0x37
addiu a1,a1,-0x8a0
sw s3,0x10(sp)
sw s4,0x18(sp)
or a3,s6,zero
or a2,s5,zero
jalr t9
_or a0,s2,zero
slti v0,v0,0x4
bne v0,zero,0x0001c74c
_lw gp,0x20(sp)
lw a0,0x14(s0)
lw v1,0x10(s0)
lbu v0,0x37(sp)
addiu a0,a0,-0x76c
addiu v1,v1,-0x1
sw a0,0x14(s0)
b 0x0001cb60
_sw v1,0x10(s0)
lw a1,-0x7fc4(gp)
or a3,s6,zero
lw t9,-0x73b8(gp)
or a2,s5,zero
sw s4,0x14(sp)
or a0,s2,zero
addiu a1,a1,-0x890
jalr t9
_sw s3,0x10(sp)
slti v0,v0,0x3
beq v0,zero,0x0001c72c
_lw gp,0x20(sp)
lbu v1,0x0(s2)
li v0,0x40
bne v1,v0,0x0001c850
_lw t9,-0x7e88(gp)
li a2,0xa
or a1,zero,zero
bal 0x0001d3ac
_addiu a0,s2,0x1
lw gp,0x20(sp)
sw v0,0x38(sp)
lw v0,-0x7f3c(gp)
lw v0,0x0(v0)
lw v0,0x0(v0)
bne v0,zero,0x0001cb90
_lw t9,-0x71e4(gp)
jalr t9
_addiu a0,sp,0x38
beq v0,zero,0x0001cb90
_lw gp,0x20(sp)
addiu v1,v0,0x20
lw a3,0x0(v0)
addiu v0,v0,0x10
addiu s0,s0,0x10
lw a2,-0xc(v0)
lw a1,-0x8(v0)
lw a0,-0x4(v0)
sw a3,-0x10(s0)
sw a2,-0xc(s0)
sw a1,-0x8(s0)
bne v0,v1,0x0001c7cc
_sw a0,-0x4(s0)
lw v1,0x4(v0)
lw a0,0x0(v0)
lw v0,0x8(v0)
sw v1,0x4(s0)
sw a0,0x0(s0)
sw v0,0x8(s0)
lw v1,0x3c(sp)
lw v0,0x0(s1)
bne v1,v0,0x0001cb78
_lw t9,-0x7088(gp)
lw ra,0x64(sp)
lw s8,0x60(sp)
lw s7,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x68
lw t9,-0x6ff0(gp)
li a1,0x2e
or a0,s2,zero
jalr t9
_lw s4,0x14(s0)
li v1,0x2
subu s5,v0,s2
bne s5,v1,0x0001c974
_lw gp,0x20(sp)
lw a1,-0x7fc4(gp)
addiu s3,sp,0x37
lw t9,-0x73b8(gp)
addiu a2,s0,0x4
or a3,s3,zero
addiu a1,a1,-0x878
jalr t9
_or a0,s2,zero
bgtz v0,0x0001c904
_lw gp,0x20(sp)
li v0,0xc
bne s5,v0,0x0001c964
_lw a1,-0x7fc4(gp)
addiu a0,s0,0x4
lw t9,-0x73b8(gp)
addiu v1,s0,0x8
addiu v0,s0,0xc
sw a0,0x18(sp)
addiu s3,sp,0x37
sw v1,0x14(sp)
addiu a3,s0,0x10
sw v0,0x10(sp)
addiu a2,s0,0x14
sw s3,0x1c(sp)
addiu a1,a1,-0x870
jalr t9
_or a0,s2,zero
slti v0,v0,0x5
bne v0,zero,0x0001c964
_lw gp,0x20(sp)
lw v1,0x14(s0)
lw v0,0x10(s0)
addiu v1,v1,-0x76c
addiu v0,v0,-0x1
sw v1,0x14(s0)
sw v0,0x10(s0)
lbu v1,0x37(sp)
li v0,0x2e
bne v1,v0,0x0001cb1c
_sw zero,0x0(s0)
lw t9,-0x71fc(gp)
li a1,0x2e
jalr t9
_or a0,s2,zero
or a3,s3,zero
lw gp,0x20(sp)
addiu a0,v0,0x1
or a2,s0,zero
lw a1,-0x7fc4(gp)
lw t9,-0x73b8(gp)
jalr t9
_addiu a1,a1,-0x8b4
li v1,0x1
bne v0,v1,0x0001c954
_lw gp,0x20(sp)
sb zero,0x37(sp)
lw v0,0x0(s0)
slti v0,v0,0x3d
bne v0,zero,0x0001cb1c
_nop
lw a0,-0x7e84(gp)
lw t9,-0x7f6c(gp)
bal 0x00019224
_or a1,s2,zero
li v0,0x4
bne s5,v0,0x0001c9c0
_lw a1,-0x7fc4(gp)
addiu s3,sp,0x37
lw t9,-0x73b8(gp)
addiu a3,s0,0x4
addiu a2,s0,0x8
sw s3,0x10(sp)
addiu a1,a1,-0x87b
jalr t9
_or a0,s2,zero
slti v0,v0,0x2
beq v0,zero,0x0001c904
_lw gp,0x20(sp)
li v0,0xc
bne s5,v0,0x0001c964
_lw a1,-0x7fc4(gp)
b 0x0001c8ac
_addiu a0,s0,0x4
li v0,0x6
bne s5,v0,0x0001ca10
_lw a1,-0x7fc4(gp)
addiu v0,s0,0x4
lw t9,-0x73b8(gp)
addiu s3,sp,0x37
addiu a3,s0,0x8
sw v0,0x10(sp)
addiu a2,s0,0xc
sw s3,0x14(sp)
addiu a1,a1,-0x87e
jalr t9
_or a0,s2,zero
slti v0,v0,0x3
beq v0,zero,0x0001c904
_lw gp,0x20(sp)
lw a0,-0x7e84(gp)
lw t9,-0x7f6c(gp)
bal 0x00019224
_or a1,s2,zero
li v0,0x8
bne s5,v0,0x0001ca68
_lw a1,-0x7fc4(gp)
addiu v1,s0,0x4
lw t9,-0x73b8(gp)
addiu v0,s0,0x8
addiu s3,sp,0x37
sw v1,0x14(sp)
addiu a3,s0,0xc
sw v0,0x10(sp)
addiu a2,s0,0x10
sw s3,0x18(sp)
addiu a1,a1,-0x881
jalr t9
_or a0,s2,zero
slti v0,v0,0x4
bne v0,zero,0x0001c964
_lw gp,0x20(sp)
lw v0,0x10(s0)
addiu v0,v0,-0x1
b 0x0001c904
_sw v0,0x10(s0)
li v0,0xa
bne s5,v0,0x0001c89c
_lw a1,-0x7fc4(gp)
addiu a0,s0,0x4
lw t9,-0x73b8(gp)
addiu v1,s0,0x8
addiu v0,s0,0xc
sw a0,0x18(sp)
addiu s3,sp,0x37
sw v1,0x14(sp)
addiu a3,s0,0x10
sw v0,0x10(sp)
addiu a2,s0,0x14
sw s3,0x1c(sp)
addiu a1,a1,-0x884
jalr t9
_or a0,s2,zero
slti v0,v0,0x5
bne v0,zero,0x0001c964
_lw gp,0x20(sp)
lw v1,0x10(s0)
slti v0,s4,0x32
addiu v1,v1,-0x1
bne v0,zero,0x0001c904
_sw v1,0x10(s0)
lui v0,0x51eb
lw v1,0x14(s0)
li a1,0x64
ori v0,v0,0x851f
multu s4,v0
addiu a0,s4,-0x32
mfhi v0
srl v0,v0,0x5
mul a2,v0,a1
addu v0,a2,v1
sltu a0,v0,a0
bne a0,zero,0x0001cb80
_or v1,v0,zero
sw v0,0x14(s0)
addiu s4,s4,0x32
sltu v0,s4,v0
beq v0,zero,0x0001c904
_addiu v1,v1,-0x64
b 0x0001c904
_sw v1,0x14(s0)
lw v0,0x4(s0)
slti v0,v0,0x3c
beq v0,zero,0x0001c968
_lw a0,-0x7e84(gp)
lw v0,0x8(s0)
slti v0,v0,0x18
beq v0,zero,0x0001c96c
_lw t9,-0x7f6c(gp)
lw v0,0xc(s0)
slti v0,v0,0x20
beq v0,zero,0x0001c96c
_nop
lw v0,0x10(s0)
slti v0,v0,0xc
beq v0,zero,0x0001c96c
_nop
lbu v0,0x37(sp)
bne v0,zero,0x0001c964
_nop
lw v1,0x3c(sp)
lw v0,0x0(s1)
beq v1,v0,0x0001c820
_lw t9,-0x7088(gp)
jalr t9
_nop
addiu v1,v0,0x64
sw v1,0x14(s0)
b 0x0001cb04
_or v0,v1,zero
li v0,0x31
lw a0,-0x7e84(gp)
lw t9,-0x7f6c(gp)
or a1,s2,zero
bal 0x00019224
_sb v0,0x37(sp)
lw a1,-0x7fc4(gp)
addiu v1,s0,0x14
lw t9,-0x73b8(gp)
or a3,s8,zero
or a2,v1,zero
sw v1,0x2c(sp)
addiu a1,a1,-0x8d4
sw s3,0x1c(sp)
sw s5,0x18(sp)
or a0,s2,zero
sw s4,0x14(sp)
jalr t9
_sw s6,0x10(sp)
slti v0,v0,0x5
lw gp,0x20(sp)
bne v0,zero,0x0001cc50
_lw v1,0x2c(sp)
lw v1,0x14(s0)
lw v0,0x10(s0)
addiu v1,v1,-0x76c
addiu v0,v0,-0x1
sw v1,0x14(s0)
sw v0,0x10(s0)
lbu v0,0x37(sp)
li v1,0x3a
bne v0,v1,0x0001cb60
_lw a1,-0x7fc4(gp)
addiu a0,s7,0x1
lw t9,-0x73b8(gp)
or a3,s3,zero
or a2,s0,zero
jalr t9
_addiu a1,a1,-0x8b4
li v1,0x1
bne v0,v1,0x0001cb5c
_lw gp,0x20(sp)
lw v1,0x3c(sp)
lw v0,0x0(s1)
beq v1,v0,0x0001c820
_lw t9,-0x7088(gp)
b 0x0001cb78
_nop
lw a1,-0x7fc4(gp)
or a3,s8,zero
lw t9,-0x73b8(gp)
or a2,v1,zero
sw s3,0x1c(sp)
or a0,s2,zero
addiu a1,a1,-0x8c0
sw s5,0x18(sp)
sw s4,0x14(sp)
jalr t9
_sw s6,0x10(sp)
slti v0,v0,0x5
beq v0,zero,0x0001cbec
_lw gp,0x20(sp)
lw a1,-0x7fc4(gp)
or a2,s0,zero
lw t9,-0x70b0(gp)
or a0,s2,zero
jalr t9
_addiu a1,a1,-0x8ac
beq v0,zero,0x0001c964
_lw gp,0x20(sp)
b 0x0001cb60
_lbu v0,0x0(v0)
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0001c9b8) */\n\nvoid FUN_0001c5d8(char *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  int *piVar6;\n  char cVar8;\n  char *pcVar7;\n  int iVar9;\n  int *piVar10;\n  int *unaff_s3;\n  int *unaff_s4;\n  int *unaff_s5;\n  int *unaff_s6;\n  int unaff_s7;\n  int *unaff_s8;\n  undefined1 local_31;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_31 = '\0';\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  if (iVar2 == 0) {\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }\n  else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }\n  while (cVar8 != '\0') {\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }\n  if (local_2c == *(int *)puVar1) {\n    return;\n  }\nLAB_0001cb78:\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return;\n}\n\n" comment (function_definition "void FUN_0001c5d8(char *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  int *piVar6;\n  char cVar8;\n  char *pcVar7;\n  int iVar9;\n  int *piVar10;\n  int *unaff_s3;\n  int *unaff_s4;\n  int *unaff_s5;\n  int *unaff_s6;\n  int unaff_s7;\n  int *unaff_s8;\n  undefined1 local_31;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_31 = '\0';\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  if (iVar2 == 0) {\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }\n  else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }\n  while (cVar8 != '\0') {\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }\n  if (local_2c == *(int *)puVar1) {\n    return;\n  }\nLAB_0001cb78:\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return;\n}" primitive_type (function_declarator "FUN_0001c5d8(char *param_1,int *param_2)" identifier (parameter_list "(char *param_1,int *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  int *piVar6;\n  char cVar8;\n  char *pcVar7;\n  int iVar9;\n  int *piVar10;\n  int *unaff_s3;\n  int *unaff_s4;\n  int *unaff_s5;\n  int *unaff_s6;\n  int unaff_s7;\n  int *unaff_s8;\n  undefined1 local_31;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_31 = '\0';\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  if (iVar2 == 0) {\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }\n  else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }\n  while (cVar8 != '\0') {\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }\n  if (local_2c == *(int *)puVar1) {\n    return;\n  }\nLAB_0001cb78:\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int unaff_s7;" primitive_type identifier ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined1 local_31;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "local_31 = '\0';" (assignment_expression "local_31 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);" (assignment_expression "iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" identifier = (call_expression "(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" (parenthesized_expression "(*(code *)PTR_strrchr_0012adbc)" ( (pointer_expression "*(code *)PTR_strrchr_0012adbc" * (cast_expression "(code *)PTR_strrchr_0012adbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x3a)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }\n  else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d)" identifier = (call_expression "(*(code *)PTR_strchr_0012af54)(param_1,0x2d)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x2d)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }" { (labeled_statement "LAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }" statement_identifier : (if_statement "if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }" if (parenthesized_expression "(*param_1 != '@')" ( (binary_expression "*param_1 != '@'" (pointer_expression "*param_1" * identifier) != (char_literal "'@'" ' character ')) )) (compound_statement "{\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }" { (expression_statement "unaff_s4 = (int *)param_2[5];" (assignment_expression "unaff_s4 = (int *)param_2[5]" identifier = (cast_expression "(int *)param_2[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);" (assignment_expression "iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e)" identifier = (call_expression "(*(code *)PTR_strchrnul_0012b160)(param_1,0x2e)" (parenthesized_expression "(*(code *)PTR_strchrnul_0012b160)" ( (pointer_expression "*(code *)PTR_strchrnul_0012b160" * (cast_expression "(code *)PTR_strchrnul_0012b160" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x2e)" ( identifier , number_literal )))) ;) (expression_statement "unaff_s5 = (int *)(iVar2 - (int)param_1);" (assignment_expression "unaff_s5 = (int *)(iVar2 - (int)param_1)" identifier = (cast_expression "(int *)(iVar2 - (int)param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 - (int)param_1)" ( (binary_expression "iVar2 - (int)param_1" identifier - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;" if (parenthesized_expression "(unaff_s5 != (int *)&SUB_00000002)" ( (binary_expression "unaff_s5 != (int *)&SUB_00000002" identifier != (cast_expression "(int *)&SUB_00000002" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_00000002" & identifier))) )) (goto_statement "goto LAB_0001c974;" goto statement_identifier ;)) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x878" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (0 < iVar2) goto LAB_0001c904;" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (goto_statement "goto LAB_0001c904;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c89c;" goto statement_identifier ;) }))) (expression_statement "local_30 = FUN_0001d3ac(param_1 + 1,0,10);" (assignment_expression "local_30 = FUN_0001d3ac(param_1 + 1,0,10)" identifier = (call_expression "FUN_0001d3ac(param_1 + 1,0,10)" identifier (argument_list "(param_1 + 1,0,10)" ( (binary_expression "param_1 + 1" identifier + number_literal) , number_literal , number_literal )))) ;) (if_statement "if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }" if (parenthesized_expression "((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0))" ( (binary_expression "(**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)" (parenthesized_expression "(**(int **)PTR_DAT_0012a214 == 0)" ( (binary_expression "**(int **)PTR_DAT_0012a214 == 0" (pointer_expression "**(int **)PTR_DAT_0012a214" * (pointer_expression "*(int **)PTR_DAT_0012a214" * (cast_expression "(int **)PTR_DAT_0012a214" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) == number_literal) )) && (parenthesized_expression "(piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)" ( (comma_expression "piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0" (assignment_expression "piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30)" identifier = (cast_expression "(int *)(*(code *)PTR_localtime_0012af6c)(&local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_localtime_0012af6c)(&local_30)" (parenthesized_expression "(*(code *)PTR_localtime_0012af6c)" ( (pointer_expression "*(code *)PTR_localtime_0012af6c" * (cast_expression "(code *)PTR_localtime_0012af6c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) , (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }" { (expression_statement "piVar5 = piVar6;" (assignment_expression "piVar5 = piVar6" identifier = identifier) ;) (do_statement "do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);" do (compound_statement "{\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        }" { (expression_statement "piVar10 = param_2;" (assignment_expression "piVar10 = param_2" identifier = identifier) ;) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" identifier = identifier) ;) (expression_statement "piVar5 = piVar4 + 4;" (assignment_expression "piVar5 = piVar4 + 4" identifier = (binary_expression "piVar4 + 4" identifier + number_literal)) ;) (expression_statement "iVar9 = piVar4[1];" (assignment_expression "iVar9 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = piVar4[2];" (assignment_expression "iVar3 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = piVar4[3];" (assignment_expression "iVar2 = piVar4[3]" identifier = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar10 = *piVar4;" (assignment_expression "*piVar10 = *piVar4" (pointer_expression "*piVar10" * identifier) = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "piVar10[1] = iVar9;" (assignment_expression "piVar10[1] = iVar9" (subscript_expression "piVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10[2] = iVar3;" (assignment_expression "piVar10[2] = iVar3" (subscript_expression "piVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10[3] = iVar2;" (assignment_expression "piVar10[3] = iVar2" (subscript_expression "piVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2 = piVar10 + 4;" (assignment_expression "param_2 = piVar10 + 4" identifier = (binary_expression "piVar10 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar5 != piVar6 + 8)" ( (binary_expression "piVar5 != piVar6 + 8" identifier != (binary_expression "piVar6 + 8" identifier + number_literal)) )) ;) (expression_statement "iVar3 = *piVar5;" (assignment_expression "iVar3 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "iVar2 = piVar4[6];" (assignment_expression "iVar2 = piVar4[6]" identifier = (subscript_expression "piVar4[6]" identifier [ number_literal ])) ;) (expression_statement "piVar10[5] = piVar4[5];" (assignment_expression "piVar10[5] = piVar4[5]" (subscript_expression "piVar10[5]" identifier [ number_literal ]) = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (expression_statement "piVar10[4] = iVar3;" (assignment_expression "piVar10[4] = iVar3" (subscript_expression "piVar10[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10[6] = iVar2;" (assignment_expression "piVar10[6] = iVar2" (subscript_expression "piVar10[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_2c == *(int *)puVar1) {\n          return;\n        }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_0001cb78;" goto statement_identifier ;) })) (expression_statement "local_31 = '1';" (assignment_expression "local_31 = '1'" identifier = (char_literal "'1'" ' character ')) ;) (expression_statement "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" (call_expression "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1)" identifier (argument_list "(PTR_s_invalid_date___s__0012a2cc,param_1)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = unaff_s7;" (assignment_expression "iVar2 = unaff_s7" identifier = identifier) ;) (labeled_statement "LAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8d4" identifier + number_literal) , (binary_expression "param_2 + 5" identifier + number_literal) , identifier , identifier , identifier , identifier , identifier )))) ;)) (if_statement "if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }" if (parenthesized_expression "((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3))" ( (binary_expression "(4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)" (parenthesized_expression "(4 < iVar3)" ( (binary_expression "4 < iVar3" number_literal < identifier) )) || (parenthesized_expression "(iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)" ( (comma_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8c0" identifier + number_literal) , (binary_expression "param_2 + 5" identifier + number_literal) , identifier , identifier , identifier , identifier , identifier )))) , (binary_expression "4 < iVar3" number_literal < identifier)) ))) )) (compound_statement "{\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }" { (expression_statement "param_2[5] = param_2[5] + -0x76c;" (assignment_expression "param_2[5] = param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (binary_expression "param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) (goto_statement "goto LAB_0001cc04;" goto statement_identifier ;) })) (expression_statement "pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" identifier = (cast_expression "(char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" (parenthesized_expression "(*(code *)PTR_strptime_0012b0a0)" ( (pointer_expression "*(code *)PTR_strptime_0012b0a0" * (cast_expression "(code *)PTR_strptime_0012b0a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8ac" identifier + number_literal) , identifier ))))) ;) (if_statement "if (pcVar7 == (char *)0x0) goto LAB_0001c96c;" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) }) (else_clause "else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }" else (compound_statement "{\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }" { (expression_statement "unaff_s5 = param_2 + 5;" (assignment_expression "unaff_s5 = param_2 + 5" identifier = (binary_expression "param_2 + 5" identifier + number_literal)) ;) (expression_statement "unaff_s6 = param_2 + 4;" (assignment_expression "unaff_s6 = param_2 + 4" identifier = (binary_expression "param_2 + 4" identifier + number_literal)) ;) (expression_statement "unaff_s3 = param_2 + 3;" (assignment_expression "unaff_s3 = param_2 + 3" identifier = (binary_expression "param_2 + 3" identifier + number_literal)) ;) (expression_statement "unaff_s4 = (int *)&local_31;" (assignment_expression "unaff_s4 = (int *)&local_31" identifier = (cast_expression "(int *)&local_31" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_31" & identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8a0" identifier + number_literal) , identifier , identifier , identifier , (binary_expression "param_2 + 2" identifier + number_literal) , identifier )))) ;) (if_statement "if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;" if (parenthesized_expression "((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3))" ( (binary_expression "(iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)" (parenthesized_expression "(iVar2 < 4)" ( (binary_expression "iVar2 < 4" identifier < number_literal) )) && (parenthesized_expression "(iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)" ( (comma_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x890" identifier + number_literal) , identifier , identifier , identifier , identifier )))) , (binary_expression "iVar2 < 3" identifier < number_literal)) ))) )) (goto_statement "goto LAB_0001c77c;" goto statement_identifier ;)) (expression_statement "param_2[5] = param_2[5] + -0x76c;" (assignment_expression "param_2[5] = param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (binary_expression "param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "cVar8 = local_31;" (assignment_expression "cVar8 = local_31" identifier = identifier) ;) }))) }) (else_clause "else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }" else (compound_statement "{\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }" { (expression_statement "unaff_s4 = param_2 + 2;" (assignment_expression "unaff_s4 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (expression_statement "unaff_s5 = param_2 + 1;" (assignment_expression "unaff_s5 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s3 = (int *)&local_31;" (assignment_expression "unaff_s3 = (int *)&local_31" identifier = (cast_expression "(int *)&local_31" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_31" & identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8ec" identifier + number_literal) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }" if (parenthesized_expression "(iVar3 < 2)" ( (binary_expression "iVar3 < 2" identifier < number_literal) )) (compound_statement "{\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }" { (expression_statement "unaff_s8 = param_2 + 4;" (assignment_expression "unaff_s8 = param_2 + 4" identifier = (binary_expression "param_2 + 4" identifier + number_literal)) ;) (expression_statement "unaff_s6 = param_2 + 3;" (assignment_expression "unaff_s6 = param_2 + 3" identifier = (binary_expression "param_2 + 3" identifier + number_literal)) ;) (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8e4" identifier + number_literal) , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 < 4) goto LAB_0001cba8;" if (parenthesized_expression "(iVar3 < 4)" ( (binary_expression "iVar3 < 4" identifier < number_literal) )) (goto_statement "goto LAB_0001cba8;" goto statement_identifier ;)) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) })) (labeled_statement "LAB_0001cc04:\n    cVar8 = local_31;" statement_identifier : (expression_statement "cVar8 = local_31;" (assignment_expression "cVar8 = local_31" identifier = identifier) ;)) (if_statement "if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }" if (parenthesized_expression "((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1))" ( (binary_expression "(local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)" (parenthesized_expression "(local_31 == ':')" ( (binary_expression "local_31 == ':'" identifier == (char_literal "':'" ' character ')) )) && (parenthesized_expression "(iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)" ( (comma_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3)" ( (binary_expression "iVar2 + 1" identifier + number_literal) , (binary_expression "PTR_UINT_0012a18c + -0x8b4" identifier + number_literal) , identifier , identifier )))) , (comma_expression "cVar8 = local_31,\n       iVar2 == 1" (assignment_expression "cVar8 = local_31" identifier = identifier) , (binary_expression "iVar2 == 1" identifier == number_literal))) ))) )) (compound_statement "{\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }" { (if_statement "if (local_2c == *(int *)puVar1) {\n        return;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_0001cb78;" goto statement_identifier ;) })) }))) (while_statement "while (cVar8 != '\0') {\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }" while (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }" { (labeled_statement "LAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" statement_identifier : (expression_statement "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" (call_expression "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1)" identifier (argument_list "(PTR_s_invalid_date___s__0012a2cc,param_1)" ( identifier , identifier ))) ;)) (labeled_statement "LAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" statement_identifier : (if_statement "if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" if (parenthesized_expression "(unaff_s5 == (int *)&DAT_00000004)" ( (binary_expression "unaff_s5 == (int *)&DAT_00000004" identifier == (cast_expression "(int *)&DAT_00000004" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000004" & identifier))) )) (compound_statement "{\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }" { (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x87b" identifier + number_literal) , (binary_expression "param_2 + 2" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (iVar2 < 2) goto LAB_0001c96c;" if (parenthesized_expression "(iVar2 < 2)" ( (binary_expression "iVar2 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) }) (else_clause "else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" else (compound_statement "{\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" { (if_statement "if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }" if (parenthesized_expression "(unaff_s5 == (int *)&DAT_00000006)" ( (binary_expression "unaff_s5 == (int *)&DAT_00000006" identifier == (cast_expression "(int *)&DAT_00000006" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000006" & identifier))) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }" { (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x87e" identifier + number_literal) , (binary_expression "param_2 + 3" identifier + number_literal) , (binary_expression "param_2 + 2" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (2 < iVar2) goto LAB_0001c904;" if (parenthesized_expression "(2 < iVar2)" ( (binary_expression "2 < iVar2" number_literal < identifier) )) (goto_statement "goto LAB_0001c904;" goto statement_identifier ;)) (expression_statement "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" (call_expression "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1)" identifier (argument_list "(PTR_s_invalid_date___s__0012a2cc,param_1)" ( identifier , identifier ))) ;) })) (if_statement "if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" if (parenthesized_expression "(unaff_s5 == (int *)&DAT_00000008)" ( (binary_expression "unaff_s5 == (int *)&DAT_00000008" identifier == (cast_expression "(int *)&DAT_00000008" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }" { (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x881" identifier + number_literal) , (binary_expression "param_2 + 4" identifier + number_literal) , (binary_expression "param_2 + 3" identifier + number_literal) , (binary_expression "param_2 + 2" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (iVar2 < 4) goto LAB_0001c96c;" if (parenthesized_expression "(iVar2 < 4)" ( (binary_expression "iVar2 < 4" identifier < number_literal) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" else (if_statement "if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" if (parenthesized_expression "(unaff_s5 == (int *)&DAT_0000000a)" ( (binary_expression "unaff_s5 == (int *)&DAT_0000000a" identifier == (cast_expression "(int *)&DAT_0000000a" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000a" & identifier))) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }" { (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x884" identifier + number_literal) , (binary_expression "param_2 + 5" identifier + number_literal) , (binary_expression "param_2 + 4" identifier + number_literal) , (binary_expression "param_2 + 3" identifier + number_literal) , (binary_expression "param_2 + 2" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (iVar2 < 5) goto LAB_0001c96c;" if (parenthesized_expression "(iVar2 < 5)" ( (binary_expression "iVar2 < 5" identifier < number_literal) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }" if (parenthesized_expression "(0x31 < (int)unaff_s4)" ( (binary_expression "0x31 < (int)unaff_s4" number_literal < (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }" { (expression_statement "piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);" (assignment_expression "piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5])" identifier = (cast_expression "(int *)(((uint)unaff_s4 / 100) * 100 + param_2[5])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)unaff_s4 / 100) * 100 + param_2[5])" ( (binary_expression "((uint)unaff_s4 / 100) * 100 + param_2[5]" (binary_expression "((uint)unaff_s4 / 100) * 100" (parenthesized_expression "((uint)unaff_s4 / 100)" ( (binary_expression "(uint)unaff_s4 / 100" (cast_expression "(uint)unaff_s4" ( (type_descriptor "uint" type_identifier) ) identifier) / number_literal) )) * number_literal) + (subscript_expression "param_2[5]" identifier [ number_literal ])) )))) ;) (if_statement "if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }" if (parenthesized_expression "(piVar6 < (int *)((int)unaff_s4 + -0x32))" ( (binary_expression "piVar6 < (int *)((int)unaff_s4 + -0x32)" identifier < (cast_expression "(int *)((int)unaff_s4 + -0x32)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + -0x32)" ( (binary_expression "(int)unaff_s4 + -0x32" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }" { (expression_statement "piVar6 = piVar6 + 0x19;" (assignment_expression "piVar6 = piVar6 + 0x19" identifier = (binary_expression "piVar6 + 0x19" identifier + number_literal)) ;) (expression_statement "param_2[5] = (int)piVar6;" (assignment_expression "param_2[5] = (int)piVar6" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            param_2[5] = (int)piVar6;\n          }" else (compound_statement "{\n            param_2[5] = (int)piVar6;\n          }" { (expression_statement "param_2[5] = (int)piVar6;" (assignment_expression "param_2[5] = (int)piVar6" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "unaff_s4 = (int *)((int)unaff_s4 + 0x32);" (assignment_expression "unaff_s4 = (int *)((int)unaff_s4 + 0x32)" identifier = (cast_expression "(int *)((int)unaff_s4 + 0x32)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x32)" ( (binary_expression "(int)unaff_s4 + 0x32" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }" if (parenthesized_expression "(unaff_s4 < piVar6)" ( (binary_expression "unaff_s4 < piVar6" identifier < identifier) )) (compound_statement "{\n            param_2[5] = (int)(piVar6 + -0x19);\n          }" { (expression_statement "param_2[5] = (int)(piVar6 + -0x19);" (assignment_expression "param_2[5] = (int)(piVar6 + -0x19)" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (cast_expression "(int)(piVar6 + -0x19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar6 + -0x19)" ( (binary_expression "piVar6 + -0x19" identifier + number_literal) )))) ;) })) })) }) (else_clause "else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" else (compound_statement "{\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" { (labeled_statement "LAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;" statement_identifier : (if_statement "if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;" if (parenthesized_expression "((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))" ( (binary_expression "(unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5)" (parenthesized_expression "(unaff_s5 != (int *)&DAT_0000000c)" ( (binary_expression "unaff_s5 != (int *)&DAT_0000000c" identifier != (cast_expression "(int *)&DAT_0000000c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000c" & identifier))) )) || (parenthesized_expression "(iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5)" ( (comma_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x870" identifier + number_literal) , (binary_expression "param_2 + 5" identifier + number_literal) , (binary_expression "param_2 + 4" identifier + number_literal) , (binary_expression "param_2 + 3" identifier + number_literal) , (binary_expression "param_2 + 2" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) , (binary_expression "iVar2 < 5" identifier < number_literal)) ))) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;))) (expression_statement "param_2[5] = param_2[5] + -0x76c;" (assignment_expression "param_2[5] = param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (binary_expression "param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) }))))) })))) (labeled_statement "LAB_0001c904:\n    *param_2 = 0;" statement_identifier : (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;)) (if_statement "if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }" if (parenthesized_expression "(local_31 == '.')" ( (binary_expression "local_31 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }" { (expression_statement "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e)" identifier = (call_expression "(*(code *)PTR_strchr_0012af54)(param_1,0x2e)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x2e)" ( identifier , number_literal )))) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)" ( (binary_expression "iVar2 + 1" identifier + number_literal) , (binary_expression "PTR_UINT_0012a18c + -0x8b4" identifier + number_literal) , identifier , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (iVar2 == 1) {\n        local_31 = '\0';\n      }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n        local_31 = '\0';\n      }" { (expression_statement "local_31 = '\0';" (assignment_expression "local_31 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if (0x3c < *param_2) goto LAB_0001c96c;" if (parenthesized_expression "(0x3c < *param_2)" ( (binary_expression "0x3c < *param_2" number_literal < (pointer_expression "*param_2" * identifier)) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) })) (if_statement "if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;" if (parenthesized_expression "((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4]))" ( (binary_expression "(((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])" (parenthesized_expression "(((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3]))" ( (binary_expression "((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])" (parenthesized_expression "((0x3b < param_2[1]) || (0x17 < param_2[2]))" ( (binary_expression "(0x3b < param_2[1]) || (0x17 < param_2[2])" (parenthesized_expression "(0x3b < param_2[1])" ( (binary_expression "0x3b < param_2[1]" number_literal < (subscript_expression "param_2[1]" identifier [ number_literal ])) )) || (parenthesized_expression "(0x17 < param_2[2])" ( (binary_expression "0x17 < param_2[2]" number_literal < (subscript_expression "param_2[2]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "(0x1f < param_2[3])" ( (binary_expression "0x1f < param_2[3]" number_literal < (subscript_expression "param_2[3]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "(cVar8 = local_31, 0xb < param_2[4])" ( (comma_expression "cVar8 = local_31, 0xb < param_2[4]" (assignment_expression "cVar8 = local_31" identifier = identifier) , (binary_expression "0xb < param_2[4]" number_literal < (subscript_expression "param_2[4]" identifier [ number_literal ]))) ))) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) })) (if_statement "if (local_2c == *(int *)puVar1) {\n    return;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_0001cb78:\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();" statement_identifier : (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Removing unreachable block (ram,0x0001c9b8) */\n\nvoid parse_datestr(char *date_str,tm *ptm)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  char cVar7;\n  undefined1 *puVar5;\n  char *pcVar6;\n  int iVar8;\n  tm *ptVar9;\n  int *unaff_s3;\n  int *unaff_s4;\n  int *piVar10;\n  int *piVar11;\n  char end;\n  time_t t;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  end = '\0';\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  iVar2 = (*(code *)PTR_strrchr_0012adbc)(date_str,0x3a);\n  if (iVar2 != 0) {\n    unaff_s4 = &ptm->tm_hour;\n    piVar4 = &ptm->tm_min;\n    unaff_s3 = (int *)&end;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8ec,unaff_s4,piVar4,unaff_s3);\n    if (iVar3 < 2) {\n      piVar11 = &ptm->tm_mon;\n      piVar10 = &ptm->tm_mday;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,\n                         unaff_s3);\n      if (iVar3 < 4) {\n        iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3);\n        if ((iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)) {\n          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;\n          if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }\n          goto LAB_0001c96c;\n        }\n        ptm->tm_year = ptm->tm_year + -0x76c;\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n      else {\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n    }\n    cVar7 = end;\n    if (end != ':') goto LAB_0001cb60;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n    cVar7 = end;\n    if (iVar2 != 1) goto LAB_0001cb60;\n    if (local_2c == *(int *)puVar1) {\n      return;\n    }\nLAB_0001cb78:\n    do {\n      puVar5 = (undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_0001cb80:\n      puVar5 = puVar5 + 100;\n      ptm->tm_year = (int)puVar5;\nLAB_0001cb04:\n      unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n      if (unaff_s4 < puVar5) {\n        ptm->tm_year = (int)(puVar5 + -100);\n      }\nLAB_0001c904:\n      ptm->tm_sec = 0;\n      if (end == '.') {\n        iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n        if (iVar2 == 1) {\n          end = '\0';\n        }\n        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;\n      }\n      if ((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||\n         (cVar7 = end, 0xb < ptm->tm_mon)) goto LAB_0001c96c;\nLAB_0001cb60:\n      if (cVar7 != '\0') goto LAB_0001c96c;\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n    } while( true );\n  }\n  iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2d);\n  if (iVar2 != 0) {\n    unaff_s3 = &ptm->tm_mday;\n    unaff_s4 = (int *)&end;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8a0,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                       &ptm->tm_hour,unaff_s4);\n    if ((3 < iVar2) ||\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4), 2 < iVar2)) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      cVar7 = end;\n      goto LAB_0001cb60;\n    }\n  }\n  if (*date_str == '@') {\n    t = bb_strtol(date_str + 1,(char **)0x0,10);\n    if ((**(int **)PTR_bb_errno_0012a214 != 0) ||\n       (piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t), piVar4 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n      end = '1';\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }\n    piVar10 = piVar4;\n    do {\n      ptVar9 = ptm;\n      piVar11 = piVar10;\n      piVar10 = piVar11 + 4;\n      ptm = (tm *)&ptVar9->tm_mon;\n      iVar8 = piVar11[1];\n      iVar3 = piVar11[2];\n      iVar2 = piVar11[3];\n      ptVar9->tm_sec = *piVar11;\n      ptVar9->tm_min = iVar8;\n      ptVar9->tm_hour = iVar3;\n      ptVar9->tm_mday = iVar2;\n    } while (piVar10 != piVar4 + 8);\n    iVar3 = *piVar10;\n    iVar2 = piVar11[6];\n    ptVar9->tm_year = piVar11[5];\n    *(int *)ptm = iVar3;\n    ptVar9->tm_wday = iVar2;\n    if (local_2c == *(int *)puVar1) {\n      return;\n    }\n    goto LAB_0001cb78;\n  }\n  unaff_s4 = (int *)ptm->tm_year;\n  iVar2 = (*(code *)PTR_strchrnul_0012b160)(date_str,0x2e);\n  iVar2 = iVar2 - (int)date_str;\n  if (iVar2 == 2) {\n    unaff_s3 = (int *)&end;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x878,&ptm->tm_min,unaff_s3);\n    if (0 < iVar3) goto LAB_0001c904;\n  }\n  else {\n    if (iVar2 == 4) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (1 < iVar2) goto LAB_0001c904;\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 6) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3);\n      if (2 < iVar2) goto LAB_0001c904;\n                    /* WARNING: Subroutine does not return */\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }\n    if (iVar2 == 8) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (3 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        goto LAB_0001c904;\n      }\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 10) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (4 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        if ((int)unaff_s4 < 0x32) goto LAB_0001c904;\n        puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);\n        if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;\n        ptm->tm_year = (int)puVar5;\n        goto LAB_0001cb04;\n      }\n      goto LAB_0001c96c;\n    }\n  }\n  if (iVar2 == 0xc) {\n    unaff_s3 = (int *)&end;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x870,&ptm->tm_year,&ptm->tm_mon,&ptm->tm_mday,\n                       &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n    if (4 < iVar2) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      goto LAB_0001c904;\n    }\n  }\nLAB_0001c96c:\n                    /* WARNING: Subroutine does not return */\n  bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n}\n\n" comment (function_definition "void parse_datestr(char *date_str,tm *ptm)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  char cVar7;\n  undefined1 *puVar5;\n  char *pcVar6;\n  int iVar8;\n  tm *ptVar9;\n  int *unaff_s3;\n  int *unaff_s4;\n  int *piVar10;\n  int *piVar11;\n  char end;\n  time_t t;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  end = '\0';\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  iVar2 = (*(code *)PTR_strrchr_0012adbc)(date_str,0x3a);\n  if (iVar2 != 0) {\n    unaff_s4 = &ptm->tm_hour;\n    piVar4 = &ptm->tm_min;\n    unaff_s3 = (int *)&end;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8ec,unaff_s4,piVar4,unaff_s3);\n    if (iVar3 < 2) {\n      piVar11 = &ptm->tm_mon;\n      piVar10 = &ptm->tm_mday;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,\n                         unaff_s3);\n      if (iVar3 < 4) {\n        iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3);\n        if ((iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)) {\n          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;\n          if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }\n          goto LAB_0001c96c;\n        }\n        ptm->tm_year = ptm->tm_year + -0x76c;\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n      else {\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n    }\n    cVar7 = end;\n    if (end != ':') goto LAB_0001cb60;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n    cVar7 = end;\n    if (iVar2 != 1) goto LAB_0001cb60;\n    if (local_2c == *(int *)puVar1) {\n      return;\n    }\nLAB_0001cb78:\n    do {\n      puVar5 = (undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_0001cb80:\n      puVar5 = puVar5 + 100;\n      ptm->tm_year = (int)puVar5;\nLAB_0001cb04:\n      unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n      if (unaff_s4 < puVar5) {\n        ptm->tm_year = (int)(puVar5 + -100);\n      }\nLAB_0001c904:\n      ptm->tm_sec = 0;\n      if (end == '.') {\n        iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n        if (iVar2 == 1) {\n          end = '\0';\n        }\n        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;\n      }\n      if ((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||\n         (cVar7 = end, 0xb < ptm->tm_mon)) goto LAB_0001c96c;\nLAB_0001cb60:\n      if (cVar7 != '\0') goto LAB_0001c96c;\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n    } while( true );\n  }\n  iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2d);\n  if (iVar2 != 0) {\n    unaff_s3 = &ptm->tm_mday;\n    unaff_s4 = (int *)&end;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8a0,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                       &ptm->tm_hour,unaff_s4);\n    if ((3 < iVar2) ||\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4), 2 < iVar2)) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      cVar7 = end;\n      goto LAB_0001cb60;\n    }\n  }\n  if (*date_str == '@') {\n    t = bb_strtol(date_str + 1,(char **)0x0,10);\n    if ((**(int **)PTR_bb_errno_0012a214 != 0) ||\n       (piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t), piVar4 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n      end = '1';\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }\n    piVar10 = piVar4;\n    do {\n      ptVar9 = ptm;\n      piVar11 = piVar10;\n      piVar10 = piVar11 + 4;\n      ptm = (tm *)&ptVar9->tm_mon;\n      iVar8 = piVar11[1];\n      iVar3 = piVar11[2];\n      iVar2 = piVar11[3];\n      ptVar9->tm_sec = *piVar11;\n      ptVar9->tm_min = iVar8;\n      ptVar9->tm_hour = iVar3;\n      ptVar9->tm_mday = iVar2;\n    } while (piVar10 != piVar4 + 8);\n    iVar3 = *piVar10;\n    iVar2 = piVar11[6];\n    ptVar9->tm_year = piVar11[5];\n    *(int *)ptm = iVar3;\n    ptVar9->tm_wday = iVar2;\n    if (local_2c == *(int *)puVar1) {\n      return;\n    }\n    goto LAB_0001cb78;\n  }\n  unaff_s4 = (int *)ptm->tm_year;\n  iVar2 = (*(code *)PTR_strchrnul_0012b160)(date_str,0x2e);\n  iVar2 = iVar2 - (int)date_str;\n  if (iVar2 == 2) {\n    unaff_s3 = (int *)&end;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x878,&ptm->tm_min,unaff_s3);\n    if (0 < iVar3) goto LAB_0001c904;\n  }\n  else {\n    if (iVar2 == 4) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (1 < iVar2) goto LAB_0001c904;\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 6) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3);\n      if (2 < iVar2) goto LAB_0001c904;\n                    /* WARNING: Subroutine does not return */\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }\n    if (iVar2 == 8) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (3 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        goto LAB_0001c904;\n      }\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 10) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (4 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        if ((int)unaff_s4 < 0x32) goto LAB_0001c904;\n        puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);\n        if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;\n        ptm->tm_year = (int)puVar5;\n        goto LAB_0001cb04;\n      }\n      goto LAB_0001c96c;\n    }\n  }\n  if (iVar2 == 0xc) {\n    unaff_s3 = (int *)&end;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x870,&ptm->tm_year,&ptm->tm_mon,&ptm->tm_mday,\n                       &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n    if (4 < iVar2) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      goto LAB_0001c904;\n    }\n  }\nLAB_0001c96c:\n                    /* WARNING: Subroutine does not return */\n  bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n}" primitive_type (function_declarator "parse_datestr(char *date_str,tm *ptm)" identifier (parameter_list "(char *date_str,tm *ptm)" ( (parameter_declaration "char *date_str" primitive_type (pointer_declarator "*date_str" * identifier)) , (parameter_declaration "tm *ptm" type_identifier (pointer_declarator "*ptm" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  char cVar7;\n  undefined1 *puVar5;\n  char *pcVar6;\n  int iVar8;\n  tm *ptVar9;\n  int *unaff_s3;\n  int *unaff_s4;\n  int *piVar10;\n  int *piVar11;\n  char end;\n  time_t t;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  end = '\0';\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  iVar2 = (*(code *)PTR_strrchr_0012adbc)(date_str,0x3a);\n  if (iVar2 != 0) {\n    unaff_s4 = &ptm->tm_hour;\n    piVar4 = &ptm->tm_min;\n    unaff_s3 = (int *)&end;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8ec,unaff_s4,piVar4,unaff_s3);\n    if (iVar3 < 2) {\n      piVar11 = &ptm->tm_mon;\n      piVar10 = &ptm->tm_mday;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,\n                         unaff_s3);\n      if (iVar3 < 4) {\n        iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3);\n        if ((iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)) {\n          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;\n          if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }\n          goto LAB_0001c96c;\n        }\n        ptm->tm_year = ptm->tm_year + -0x76c;\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n      else {\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n    }\n    cVar7 = end;\n    if (end != ':') goto LAB_0001cb60;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n    cVar7 = end;\n    if (iVar2 != 1) goto LAB_0001cb60;\n    if (local_2c == *(int *)puVar1) {\n      return;\n    }\nLAB_0001cb78:\n    do {\n      puVar5 = (undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_0001cb80:\n      puVar5 = puVar5 + 100;\n      ptm->tm_year = (int)puVar5;\nLAB_0001cb04:\n      unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n      if (unaff_s4 < puVar5) {\n        ptm->tm_year = (int)(puVar5 + -100);\n      }\nLAB_0001c904:\n      ptm->tm_sec = 0;\n      if (end == '.') {\n        iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n        if (iVar2 == 1) {\n          end = '\0';\n        }\n        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;\n      }\n      if ((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||\n         (cVar7 = end, 0xb < ptm->tm_mon)) goto LAB_0001c96c;\nLAB_0001cb60:\n      if (cVar7 != '\0') goto LAB_0001c96c;\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n    } while( true );\n  }\n  iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2d);\n  if (iVar2 != 0) {\n    unaff_s3 = &ptm->tm_mday;\n    unaff_s4 = (int *)&end;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8a0,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                       &ptm->tm_hour,unaff_s4);\n    if ((3 < iVar2) ||\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4), 2 < iVar2)) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      cVar7 = end;\n      goto LAB_0001cb60;\n    }\n  }\n  if (*date_str == '@') {\n    t = bb_strtol(date_str + 1,(char **)0x0,10);\n    if ((**(int **)PTR_bb_errno_0012a214 != 0) ||\n       (piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t), piVar4 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n      end = '1';\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }\n    piVar10 = piVar4;\n    do {\n      ptVar9 = ptm;\n      piVar11 = piVar10;\n      piVar10 = piVar11 + 4;\n      ptm = (tm *)&ptVar9->tm_mon;\n      iVar8 = piVar11[1];\n      iVar3 = piVar11[2];\n      iVar2 = piVar11[3];\n      ptVar9->tm_sec = *piVar11;\n      ptVar9->tm_min = iVar8;\n      ptVar9->tm_hour = iVar3;\n      ptVar9->tm_mday = iVar2;\n    } while (piVar10 != piVar4 + 8);\n    iVar3 = *piVar10;\n    iVar2 = piVar11[6];\n    ptVar9->tm_year = piVar11[5];\n    *(int *)ptm = iVar3;\n    ptVar9->tm_wday = iVar2;\n    if (local_2c == *(int *)puVar1) {\n      return;\n    }\n    goto LAB_0001cb78;\n  }\n  unaff_s4 = (int *)ptm->tm_year;\n  iVar2 = (*(code *)PTR_strchrnul_0012b160)(date_str,0x2e);\n  iVar2 = iVar2 - (int)date_str;\n  if (iVar2 == 2) {\n    unaff_s3 = (int *)&end;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x878,&ptm->tm_min,unaff_s3);\n    if (0 < iVar3) goto LAB_0001c904;\n  }\n  else {\n    if (iVar2 == 4) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (1 < iVar2) goto LAB_0001c904;\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 6) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3);\n      if (2 < iVar2) goto LAB_0001c904;\n                    /* WARNING: Subroutine does not return */\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }\n    if (iVar2 == 8) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (3 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        goto LAB_0001c904;\n      }\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 10) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (4 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        if ((int)unaff_s4 < 0x32) goto LAB_0001c904;\n        puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);\n        if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;\n        ptm->tm_year = (int)puVar5;\n        goto LAB_0001cb04;\n      }\n      goto LAB_0001c96c;\n    }\n  }\n  if (iVar2 == 0xc) {\n    unaff_s3 = (int *)&end;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x870,&ptm->tm_year,&ptm->tm_mon,&ptm->tm_mday,\n                       &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n    if (4 < iVar2) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      goto LAB_0001c904;\n    }\n  }\nLAB_0001c96c:\n                    /* WARNING: Subroutine does not return */\n  bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "tm *ptVar9;" type_identifier (pointer_declarator "*ptVar9" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "char end;" primitive_type identifier ;) (declaration "time_t t;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "end = '\0';" (assignment_expression "end = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_strrchr_0012adbc)(date_str,0x3a);" (assignment_expression "iVar2 = (*(code *)PTR_strrchr_0012adbc)(date_str,0x3a)" identifier = (call_expression "(*(code *)PTR_strrchr_0012adbc)(date_str,0x3a)" (parenthesized_expression "(*(code *)PTR_strrchr_0012adbc)" ( (pointer_expression "*(code *)PTR_strrchr_0012adbc" * (cast_expression "(code *)PTR_strrchr_0012adbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,0x3a)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n    unaff_s4 = &ptm->tm_hour;\n    piVar4 = &ptm->tm_min;\n    unaff_s3 = (int *)&end;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8ec,unaff_s4,piVar4,unaff_s3);\n    if (iVar3 < 2) {\n      piVar11 = &ptm->tm_mon;\n      piVar10 = &ptm->tm_mday;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,\n                         unaff_s3);\n      if (iVar3 < 4) {\n        iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3);\n        if ((iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)) {\n          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;\n          if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }\n          goto LAB_0001c96c;\n        }\n        ptm->tm_year = ptm->tm_year + -0x76c;\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n      else {\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n    }\n    cVar7 = end;\n    if (end != ':') goto LAB_0001cb60;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n    cVar7 = end;\n    if (iVar2 != 1) goto LAB_0001cb60;\n    if (local_2c == *(int *)puVar1) {\n      return;\n    }\nLAB_0001cb78:\n    do {\n      puVar5 = (undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_0001cb80:\n      puVar5 = puVar5 + 100;\n      ptm->tm_year = (int)puVar5;\nLAB_0001cb04:\n      unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n      if (unaff_s4 < puVar5) {\n        ptm->tm_year = (int)(puVar5 + -100);\n      }\nLAB_0001c904:\n      ptm->tm_sec = 0;\n      if (end == '.') {\n        iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n        if (iVar2 == 1) {\n          end = '\0';\n        }\n        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;\n      }\n      if ((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||\n         (cVar7 = end, 0xb < ptm->tm_mon)) goto LAB_0001c96c;\nLAB_0001cb60:\n      if (cVar7 != '\0') goto LAB_0001c96c;\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n    } while( true );\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s4 = &ptm->tm_hour;\n    piVar4 = &ptm->tm_min;\n    unaff_s3 = (int *)&end;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8ec,unaff_s4,piVar4,unaff_s3);\n    if (iVar3 < 2) {\n      piVar11 = &ptm->tm_mon;\n      piVar10 = &ptm->tm_mday;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,\n                         unaff_s3);\n      if (iVar3 < 4) {\n        iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3);\n        if ((iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)) {\n          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;\n          if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }\n          goto LAB_0001c96c;\n        }\n        ptm->tm_year = ptm->tm_year + -0x76c;\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n      else {\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n    }\n    cVar7 = end;\n    if (end != ':') goto LAB_0001cb60;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n    cVar7 = end;\n    if (iVar2 != 1) goto LAB_0001cb60;\n    if (local_2c == *(int *)puVar1) {\n      return;\n    }\nLAB_0001cb78:\n    do {\n      puVar5 = (undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_0001cb80:\n      puVar5 = puVar5 + 100;\n      ptm->tm_year = (int)puVar5;\nLAB_0001cb04:\n      unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n      if (unaff_s4 < puVar5) {\n        ptm->tm_year = (int)(puVar5 + -100);\n      }\nLAB_0001c904:\n      ptm->tm_sec = 0;\n      if (end == '.') {\n        iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n        if (iVar2 == 1) {\n          end = '\0';\n        }\n        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;\n      }\n      if ((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||\n         (cVar7 = end, 0xb < ptm->tm_mon)) goto LAB_0001c96c;\nLAB_0001cb60:\n      if (cVar7 != '\0') goto LAB_0001c96c;\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n    } while( true );\n  }" { (expression_statement "unaff_s4 = &ptm->tm_hour;" (assignment_expression "unaff_s4 = &ptm->tm_hour" identifier = (pointer_expression "&ptm->tm_hour" & (field_expression "ptm->tm_hour" identifier -> field_identifier))) ;) (expression_statement "piVar4 = &ptm->tm_min;" (assignment_expression "piVar4 = &ptm->tm_min" identifier = (pointer_expression "&ptm->tm_min" & (field_expression "ptm->tm_min" identifier -> field_identifier))) ;) (expression_statement "unaff_s3 = (int *)&end;" (assignment_expression "unaff_s3 = (int *)&end" identifier = (cast_expression "(int *)&end" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&end" & identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8ec,unaff_s4,piVar4,unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8ec,unaff_s4,piVar4,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8ec,unaff_s4,piVar4,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x8ec,unaff_s4,piVar4,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8ec" identifier + number_literal) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 < 2) {\n      piVar11 = &ptm->tm_mon;\n      piVar10 = &ptm->tm_mday;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,\n                         unaff_s3);\n      if (iVar3 < 4) {\n        iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3);\n        if ((iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)) {\n          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;\n          if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }\n          goto LAB_0001c96c;\n        }\n        ptm->tm_year = ptm->tm_year + -0x76c;\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n      else {\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n    }" if (parenthesized_expression "(iVar3 < 2)" ( (binary_expression "iVar3 < 2" identifier < number_literal) )) (compound_statement "{\n      piVar11 = &ptm->tm_mon;\n      piVar10 = &ptm->tm_mday;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,\n                         unaff_s3);\n      if (iVar3 < 4) {\n        iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3);\n        if ((iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)) {\n          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;\n          if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }\n          goto LAB_0001c96c;\n        }\n        ptm->tm_year = ptm->tm_year + -0x76c;\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n      else {\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n    }" { (expression_statement "piVar11 = &ptm->tm_mon;" (assignment_expression "piVar11 = &ptm->tm_mon" identifier = (pointer_expression "&ptm->tm_mon" & (field_expression "ptm->tm_mon" identifier -> field_identifier))) ;) (expression_statement "piVar10 = &ptm->tm_mday;" (assignment_expression "piVar10 = &ptm->tm_mday" identifier = (pointer_expression "&ptm->tm_mday" & (field_expression "ptm->tm_mday" identifier -> field_identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,\n                         unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,\n                         unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,\n                         unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x8e4,piVar11,piVar10,unaff_s4,piVar4,\n                         unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8e4" identifier + number_literal) , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 < 4) {\n        iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3);\n        if ((iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)) {\n          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;\n          if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }\n          goto LAB_0001c96c;\n        }\n        ptm->tm_year = ptm->tm_year + -0x76c;\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }\n      else {\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }" if (parenthesized_expression "(iVar3 < 4)" ( (binary_expression "iVar3 < 4" identifier < number_literal) )) (compound_statement "{\n        iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3);\n        if ((iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)) {\n          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;\n          if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }\n          goto LAB_0001c96c;\n        }\n        ptm->tm_year = ptm->tm_year + -0x76c;\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }" { (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x8d4,&ptm->tm_year,piVar11,piVar10,\n                           unaff_s4,piVar4,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8d4" identifier + number_literal) , (pointer_expression "&ptm->tm_year" & (field_expression "ptm->tm_year" identifier -> field_identifier)) , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if ((iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)) {\n          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;\n          if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }\n          goto LAB_0001c96c;\n        }" if (parenthesized_expression "((iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5))" ( (binary_expression "(iVar3 < 5) &&\n           (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)" (parenthesized_expression "(iVar3 < 5)" ( (binary_expression "iVar3 < 5" identifier < number_literal) )) && (parenthesized_expression "(iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5)" ( (comma_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3), iVar3 < 5" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                              (date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x8c0,&ptm->tm_year,piVar11,piVar10,\n                               unaff_s4,piVar4,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8c0" identifier + number_literal) , (pointer_expression "&ptm->tm_year" & (field_expression "ptm->tm_year" identifier -> field_identifier)) , identifier , identifier , identifier , identifier , identifier )))) , (binary_expression "iVar3 < 5" identifier < number_literal)) ))) )) (compound_statement "{\n          pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;\n          if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }\n          goto LAB_0001c96c;\n        }" { (expression_statement "pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)\n          ;" (assignment_expression "pcVar6 = (char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)" identifier = (cast_expression "(char *)(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strptime_0012b0a0)(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)" (parenthesized_expression "(*(code *)PTR_strptime_0012b0a0)" ( (pointer_expression "*(code *)PTR_strptime_0012b0a0" * (cast_expression "(code *)PTR_strptime_0012b0a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x8ac,ptm)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8ac" identifier + number_literal) , identifier ))))) ;) (if_statement "if (pcVar6 != (char *)0x0) {\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            cVar7 = *pcVar6;\n            goto LAB_0001cb60;\n          }" { (expression_statement "cVar7 = *pcVar6;" (assignment_expression "cVar7 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) (goto_statement "goto LAB_0001cb60;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;) })) (expression_statement "ptm->tm_year = ptm->tm_year + -0x76c;" (assignment_expression "ptm->tm_year = ptm->tm_year + -0x76c" (field_expression "ptm->tm_year" identifier -> field_identifier) = (binary_expression "ptm->tm_year + -0x76c" (field_expression "ptm->tm_year" identifier -> field_identifier) + number_literal)) ;) (expression_statement "ptm->tm_mon = ptm->tm_mon + -1;" (assignment_expression "ptm->tm_mon = ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) = (binary_expression "ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) + number_literal)) ;) }) (else_clause "else {\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }" else (compound_statement "{\n        ptm->tm_mon = ptm->tm_mon + -1;\n      }" { (expression_statement "ptm->tm_mon = ptm->tm_mon + -1;" (assignment_expression "ptm->tm_mon = ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) = (binary_expression "ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) + number_literal)) ;) }))) })) (expression_statement "cVar7 = end;" (assignment_expression "cVar7 = end" identifier = identifier) ;) (if_statement "if (end != ':') goto LAB_0001cb60;" if (parenthesized_expression "(end != ':')" ( (binary_expression "end != ':'" identifier != (char_literal "':'" ' character ')) )) (goto_statement "goto LAB_0001cb60;" goto statement_identifier ;)) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3)" ( (binary_expression "iVar2 + 1" identifier + number_literal) , (binary_expression "PTR_UINT_0012a18c + -0x8b4" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "cVar7 = end;" (assignment_expression "cVar7 = end" identifier = identifier) ;) (if_statement "if (iVar2 != 1) goto LAB_0001cb60;" if (parenthesized_expression "(iVar2 != 1)" ( (binary_expression "iVar2 != 1" identifier != number_literal) )) (goto_statement "goto LAB_0001cb60;" goto statement_identifier ;)) (if_statement "if (local_2c == *(int *)puVar1) {\n      return;\n    }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_0001cb78:\n    do {\n      puVar5 = (undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_0001cb80:\n      puVar5 = puVar5 + 100;\n      ptm->tm_year = (int)puVar5;\nLAB_0001cb04:\n      unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n      if (unaff_s4 < puVar5) {\n        ptm->tm_year = (int)(puVar5 + -100);\n      }\nLAB_0001c904:\n      ptm->tm_sec = 0;\n      if (end == '.') {\n        iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n        if (iVar2 == 1) {\n          end = '\0';\n        }\n        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;\n      }\n      if ((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||\n         (cVar7 = end, 0xb < ptm->tm_mon)) goto LAB_0001c96c;\nLAB_0001cb60:\n      if (cVar7 != '\0') goto LAB_0001c96c;\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n    } while( true );" statement_identifier : (do_statement "do {\n      puVar5 = (undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_0001cb80:\n      puVar5 = puVar5 + 100;\n      ptm->tm_year = (int)puVar5;\nLAB_0001cb04:\n      unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n      if (unaff_s4 < puVar5) {\n        ptm->tm_year = (int)(puVar5 + -100);\n      }\nLAB_0001c904:\n      ptm->tm_sec = 0;\n      if (end == '.') {\n        iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n        if (iVar2 == 1) {\n          end = '\0';\n        }\n        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;\n      }\n      if ((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||\n         (cVar7 = end, 0xb < ptm->tm_mon)) goto LAB_0001c96c;\nLAB_0001cb60:\n      if (cVar7 != '\0') goto LAB_0001c96c;\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n    } while( true );" do (compound_statement "{\n      puVar5 = (undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();\nLAB_0001cb80:\n      puVar5 = puVar5 + 100;\n      ptm->tm_year = (int)puVar5;\nLAB_0001cb04:\n      unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n      if (unaff_s4 < puVar5) {\n        ptm->tm_year = (int)(puVar5 + -100);\n      }\nLAB_0001c904:\n      ptm->tm_sec = 0;\n      if (end == '.') {\n        iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n        if (iVar2 == 1) {\n          end = '\0';\n        }\n        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;\n      }\n      if ((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||\n         (cVar7 = end, 0xb < ptm->tm_mon)) goto LAB_0001c96c;\nLAB_0001cb60:\n      if (cVar7 != '\0') goto LAB_0001c96c;\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n    }" { (expression_statement "puVar5 = (undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)();" (assignment_expression "puVar5 = (undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)()" identifier = (cast_expression "(undefined1 *)(*(code *)PTR___stack_chk_fail_0012b0c8)()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (labeled_statement "LAB_0001cb80:\n      puVar5 = puVar5 + 100;" statement_identifier : (expression_statement "puVar5 = puVar5 + 100;" (assignment_expression "puVar5 = puVar5 + 100" identifier = (binary_expression "puVar5 + 100" identifier + number_literal)) ;)) (expression_statement "ptm->tm_year = (int)puVar5;" (assignment_expression "ptm->tm_year = (int)puVar5" (field_expression "ptm->tm_year" identifier -> field_identifier) = (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_0001cb04:\n      unaff_s4 = (int *)((int)unaff_s4 + 0x32);" statement_identifier : (expression_statement "unaff_s4 = (int *)((int)unaff_s4 + 0x32);" (assignment_expression "unaff_s4 = (int *)((int)unaff_s4 + 0x32)" identifier = (cast_expression "(int *)((int)unaff_s4 + 0x32)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x32)" ( (binary_expression "(int)unaff_s4 + 0x32" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (if_statement "if (unaff_s4 < puVar5) {\n        ptm->tm_year = (int)(puVar5 + -100);\n      }" if (parenthesized_expression "(unaff_s4 < puVar5)" ( (binary_expression "unaff_s4 < puVar5" identifier < identifier) )) (compound_statement "{\n        ptm->tm_year = (int)(puVar5 + -100);\n      }" { (expression_statement "ptm->tm_year = (int)(puVar5 + -100);" (assignment_expression "ptm->tm_year = (int)(puVar5 + -100)" (field_expression "ptm->tm_year" identifier -> field_identifier) = (cast_expression "(int)(puVar5 + -100)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(puVar5 + -100)" ( (binary_expression "puVar5 + -100" identifier + number_literal) )))) ;) })) (labeled_statement "LAB_0001c904:\n      ptm->tm_sec = 0;" statement_identifier : (expression_statement "ptm->tm_sec = 0;" (assignment_expression "ptm->tm_sec = 0" (field_expression "ptm->tm_sec" identifier -> field_identifier) = number_literal) ;)) (if_statement "if (end == '.') {\n        iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n        if (iVar2 == 1) {\n          end = '\0';\n        }\n        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;\n      }" if (parenthesized_expression "(end == '.')" ( (binary_expression "end == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);\n        if (iVar2 == 1) {\n          end = '\0';\n        }\n        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;\n      }" { (expression_statement "iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2e)" identifier = (call_expression "(*(code *)PTR_strchr_0012af54)(date_str,0x2e)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,0x2e)" ( identifier , number_literal )))) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,ptm,unaff_s3)" ( (binary_expression "iVar2 + 1" identifier + number_literal) , (binary_expression "PTR_UINT_0012a18c + -0x8b4" identifier + number_literal) , identifier , identifier )))) ;) (if_statement "if (iVar2 == 1) {\n          end = '\0';\n        }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n          end = '\0';\n        }" { (expression_statement "end = '\0';" (assignment_expression "end = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if (0x3c < ptm->tm_sec) goto LAB_0001c96c;" if (parenthesized_expression "(0x3c < ptm->tm_sec)" ( (binary_expression "0x3c < ptm->tm_sec" number_literal < (field_expression "ptm->tm_sec" identifier -> field_identifier)) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) })) (if_statement "if ((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||\n         (cVar7 = end, 0xb < ptm->tm_mon)) goto LAB_0001c96c;" if (parenthesized_expression "((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||\n         (cVar7 = end, 0xb < ptm->tm_mon))" ( (binary_expression "(((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||\n         (cVar7 = end, 0xb < ptm->tm_mon)" (parenthesized_expression "(((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday))" ( (binary_expression "((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)" (parenthesized_expression "((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour))" ( (binary_expression "(0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)" (parenthesized_expression "(0x3b < ptm->tm_min)" ( (binary_expression "0x3b < ptm->tm_min" number_literal < (field_expression "ptm->tm_min" identifier -> field_identifier)) )) || (parenthesized_expression "(0x17 < ptm->tm_hour)" ( (binary_expression "0x17 < ptm->tm_hour" number_literal < (field_expression "ptm->tm_hour" identifier -> field_identifier)) ))) )) || (parenthesized_expression "(0x1f < ptm->tm_mday)" ( (binary_expression "0x1f < ptm->tm_mday" number_literal < (field_expression "ptm->tm_mday" identifier -> field_identifier)) ))) )) || (parenthesized_expression "(cVar7 = end, 0xb < ptm->tm_mon)" ( (comma_expression "cVar7 = end, 0xb < ptm->tm_mon" (assignment_expression "cVar7 = end" identifier = identifier) , (binary_expression "0xb < ptm->tm_mon" number_literal < (field_expression "ptm->tm_mon" identifier -> field_identifier))) ))) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) (labeled_statement "LAB_0001cb60:\n      if (cVar7 != '\0') goto LAB_0001c96c;" statement_identifier : (if_statement "if (cVar7 != '\0') goto LAB_0001c96c;" if (parenthesized_expression "(cVar7 != '\0')" ( (binary_expression "cVar7 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;))) (if_statement "if (local_2c == *(int *)puVar1) {\n        return;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })) (expression_statement "iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2d);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_0012af54)(date_str,0x2d)" identifier = (call_expression "(*(code *)PTR_strchr_0012af54)(date_str,0x2d)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,0x2d)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n    unaff_s3 = &ptm->tm_mday;\n    unaff_s4 = (int *)&end;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8a0,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                       &ptm->tm_hour,unaff_s4);\n    if ((3 < iVar2) ||\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4), 2 < iVar2)) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      cVar7 = end;\n      goto LAB_0001cb60;\n    }\n  }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s3 = &ptm->tm_mday;\n    unaff_s4 = (int *)&end;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8a0,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                       &ptm->tm_hour,unaff_s4);\n    if ((3 < iVar2) ||\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4), 2 < iVar2)) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      cVar7 = end;\n      goto LAB_0001cb60;\n    }\n  }" { (expression_statement "unaff_s3 = &ptm->tm_mday;" (assignment_expression "unaff_s3 = &ptm->tm_mday" identifier = (pointer_expression "&ptm->tm_mday" & (field_expression "ptm->tm_mday" identifier -> field_identifier))) ;) (expression_statement "unaff_s4 = (int *)&end;" (assignment_expression "unaff_s4 = (int *)&end" identifier = (cast_expression "(int *)&end" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&end" & identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8a0,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                       &ptm->tm_hour,unaff_s4);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8a0,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                       &ptm->tm_hour,unaff_s4)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x8a0,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                       &ptm->tm_hour,unaff_s4)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x8a0,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                       &ptm->tm_hour,unaff_s4)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8a0" identifier + number_literal) , (pointer_expression "&ptm->tm_year" & (field_expression "ptm->tm_year" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_mon" & (field_expression "ptm->tm_mon" identifier -> field_identifier)) , identifier , (pointer_expression "&ptm->tm_hour" & (field_expression "ptm->tm_hour" identifier -> field_identifier)) , identifier )))) ;) (if_statement "if ((3 < iVar2) ||\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4), 2 < iVar2)) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      cVar7 = end;\n      goto LAB_0001cb60;\n    }" if (parenthesized_expression "((3 < iVar2) ||\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4), 2 < iVar2))" ( (binary_expression "(3 < iVar2) ||\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4), 2 < iVar2)" (parenthesized_expression "(3 < iVar2)" ( (binary_expression "3 < iVar2" number_literal < identifier) )) || (parenthesized_expression "(iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4), 2 < iVar2)" ( (comma_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4), 2 < iVar2" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,\n                           unaff_s4)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x890" identifier + number_literal) , (pointer_expression "&ptm->tm_year" & (field_expression "ptm->tm_year" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_mon" & (field_expression "ptm->tm_mon" identifier -> field_identifier)) , identifier , identifier )))) , (binary_expression "2 < iVar2" number_literal < identifier)) ))) )) (compound_statement "{\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      cVar7 = end;\n      goto LAB_0001cb60;\n    }" { (expression_statement "ptm->tm_year = ptm->tm_year + -0x76c;" (assignment_expression "ptm->tm_year = ptm->tm_year + -0x76c" (field_expression "ptm->tm_year" identifier -> field_identifier) = (binary_expression "ptm->tm_year + -0x76c" (field_expression "ptm->tm_year" identifier -> field_identifier) + number_literal)) ;) (expression_statement "ptm->tm_mon = ptm->tm_mon + -1;" (assignment_expression "ptm->tm_mon = ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) = (binary_expression "ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) + number_literal)) ;) (expression_statement "cVar7 = end;" (assignment_expression "cVar7 = end" identifier = identifier) ;) (goto_statement "goto LAB_0001cb60;" goto statement_identifier ;) })) })) (if_statement "if (*date_str == '@') {\n    t = bb_strtol(date_str + 1,(char **)0x0,10);\n    if ((**(int **)PTR_bb_errno_0012a214 != 0) ||\n       (piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t), piVar4 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n      end = '1';\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }\n    piVar10 = piVar4;\n    do {\n      ptVar9 = ptm;\n      piVar11 = piVar10;\n      piVar10 = piVar11 + 4;\n      ptm = (tm *)&ptVar9->tm_mon;\n      iVar8 = piVar11[1];\n      iVar3 = piVar11[2];\n      iVar2 = piVar11[3];\n      ptVar9->tm_sec = *piVar11;\n      ptVar9->tm_min = iVar8;\n      ptVar9->tm_hour = iVar3;\n      ptVar9->tm_mday = iVar2;\n    } while (piVar10 != piVar4 + 8);\n    iVar3 = *piVar10;\n    iVar2 = piVar11[6];\n    ptVar9->tm_year = piVar11[5];\n    *(int *)ptm = iVar3;\n    ptVar9->tm_wday = iVar2;\n    if (local_2c == *(int *)puVar1) {\n      return;\n    }\n    goto LAB_0001cb78;\n  }" if (parenthesized_expression "(*date_str == '@')" ( (binary_expression "*date_str == '@'" (pointer_expression "*date_str" * identifier) == (char_literal "'@'" ' character ')) )) (compound_statement "{\n    t = bb_strtol(date_str + 1,(char **)0x0,10);\n    if ((**(int **)PTR_bb_errno_0012a214 != 0) ||\n       (piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t), piVar4 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n      end = '1';\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }\n    piVar10 = piVar4;\n    do {\n      ptVar9 = ptm;\n      piVar11 = piVar10;\n      piVar10 = piVar11 + 4;\n      ptm = (tm *)&ptVar9->tm_mon;\n      iVar8 = piVar11[1];\n      iVar3 = piVar11[2];\n      iVar2 = piVar11[3];\n      ptVar9->tm_sec = *piVar11;\n      ptVar9->tm_min = iVar8;\n      ptVar9->tm_hour = iVar3;\n      ptVar9->tm_mday = iVar2;\n    } while (piVar10 != piVar4 + 8);\n    iVar3 = *piVar10;\n    iVar2 = piVar11[6];\n    ptVar9->tm_year = piVar11[5];\n    *(int *)ptm = iVar3;\n    ptVar9->tm_wday = iVar2;\n    if (local_2c == *(int *)puVar1) {\n      return;\n    }\n    goto LAB_0001cb78;\n  }" { (expression_statement "t = bb_strtol(date_str + 1,(char **)0x0,10);" (assignment_expression "t = bb_strtol(date_str + 1,(char **)0x0,10)" identifier = (call_expression "bb_strtol(date_str + 1,(char **)0x0,10)" identifier (argument_list "(date_str + 1,(char **)0x0,10)" ( (binary_expression "date_str + 1" identifier + number_literal) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (if_statement "if ((**(int **)PTR_bb_errno_0012a214 != 0) ||\n       (piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t), piVar4 == (int *)0x0)) {\n                    /* WARNING: Subroutine does not return */\n      end = '1';\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }" if (parenthesized_expression "((**(int **)PTR_bb_errno_0012a214 != 0) ||\n       (piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t), piVar4 == (int *)0x0))" ( (binary_expression "(**(int **)PTR_bb_errno_0012a214 != 0) ||\n       (piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t), piVar4 == (int *)0x0)" (parenthesized_expression "(**(int **)PTR_bb_errno_0012a214 != 0)" ( (binary_expression "**(int **)PTR_bb_errno_0012a214 != 0" (pointer_expression "**(int **)PTR_bb_errno_0012a214" * (pointer_expression "*(int **)PTR_bb_errno_0012a214" * (cast_expression "(int **)PTR_bb_errno_0012a214" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) != number_literal) )) || (parenthesized_expression "(piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t), piVar4 == (int *)0x0)" ( (comma_expression "piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t), piVar4 == (int *)0x0" (assignment_expression "piVar4 = (int *)(*(code *)PTR_localtime_0012af6c)(&t)" identifier = (cast_expression "(int *)(*(code *)PTR_localtime_0012af6c)(&t)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_localtime_0012af6c)(&t)" (parenthesized_expression "(*(code *)PTR_localtime_0012af6c)" ( (pointer_expression "*(code *)PTR_localtime_0012af6c" * (cast_expression "(code *)PTR_localtime_0012af6c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&t)" ( (pointer_expression "&t" & identifier) ))))) , (binary_expression "piVar4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      end = '1';\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }" { comment (expression_statement "end = '1';" (assignment_expression "end = '1'" identifier = (char_literal "'1'" ' character ')) ;) (expression_statement "bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);" (call_expression "bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str)" identifier (argument_list "(PTR_bb_msg_invalid_date_0012a2cc,date_str)" ( identifier , identifier ))) ;) })) (expression_statement "piVar10 = piVar4;" (assignment_expression "piVar10 = piVar4" identifier = identifier) ;) (do_statement "do {\n      ptVar9 = ptm;\n      piVar11 = piVar10;\n      piVar10 = piVar11 + 4;\n      ptm = (tm *)&ptVar9->tm_mon;\n      iVar8 = piVar11[1];\n      iVar3 = piVar11[2];\n      iVar2 = piVar11[3];\n      ptVar9->tm_sec = *piVar11;\n      ptVar9->tm_min = iVar8;\n      ptVar9->tm_hour = iVar3;\n      ptVar9->tm_mday = iVar2;\n    } while (piVar10 != piVar4 + 8);" do (compound_statement "{\n      ptVar9 = ptm;\n      piVar11 = piVar10;\n      piVar10 = piVar11 + 4;\n      ptm = (tm *)&ptVar9->tm_mon;\n      iVar8 = piVar11[1];\n      iVar3 = piVar11[2];\n      iVar2 = piVar11[3];\n      ptVar9->tm_sec = *piVar11;\n      ptVar9->tm_min = iVar8;\n      ptVar9->tm_hour = iVar3;\n      ptVar9->tm_mday = iVar2;\n    }" { (expression_statement "ptVar9 = ptm;" (assignment_expression "ptVar9 = ptm" identifier = identifier) ;) (expression_statement "piVar11 = piVar10;" (assignment_expression "piVar11 = piVar10" identifier = identifier) ;) (expression_statement "piVar10 = piVar11 + 4;" (assignment_expression "piVar10 = piVar11 + 4" identifier = (binary_expression "piVar11 + 4" identifier + number_literal)) ;) (expression_statement "ptm = (tm *)&ptVar9->tm_mon;" (assignment_expression "ptm = (tm *)&ptVar9->tm_mon" identifier = (cast_expression "(tm *)&ptVar9->tm_mon" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ptVar9->tm_mon" & (field_expression "ptVar9->tm_mon" identifier -> field_identifier)))) ;) (expression_statement "iVar8 = piVar11[1];" (assignment_expression "iVar8 = piVar11[1]" identifier = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = piVar11[2];" (assignment_expression "iVar3 = piVar11[2]" identifier = (subscript_expression "piVar11[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = piVar11[3];" (assignment_expression "iVar2 = piVar11[3]" identifier = (subscript_expression "piVar11[3]" identifier [ number_literal ])) ;) (expression_statement "ptVar9->tm_sec = *piVar11;" (assignment_expression "ptVar9->tm_sec = *piVar11" (field_expression "ptVar9->tm_sec" identifier -> field_identifier) = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "ptVar9->tm_min = iVar8;" (assignment_expression "ptVar9->tm_min = iVar8" (field_expression "ptVar9->tm_min" identifier -> field_identifier) = identifier) ;) (expression_statement "ptVar9->tm_hour = iVar3;" (assignment_expression "ptVar9->tm_hour = iVar3" (field_expression "ptVar9->tm_hour" identifier -> field_identifier) = identifier) ;) (expression_statement "ptVar9->tm_mday = iVar2;" (assignment_expression "ptVar9->tm_mday = iVar2" (field_expression "ptVar9->tm_mday" identifier -> field_identifier) = identifier) ;) }) while (parenthesized_expression "(piVar10 != piVar4 + 8)" ( (binary_expression "piVar10 != piVar4 + 8" identifier != (binary_expression "piVar4 + 8" identifier + number_literal)) )) ;) (expression_statement "iVar3 = *piVar10;" (assignment_expression "iVar3 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "iVar2 = piVar11[6];" (assignment_expression "iVar2 = piVar11[6]" identifier = (subscript_expression "piVar11[6]" identifier [ number_literal ])) ;) (expression_statement "ptVar9->tm_year = piVar11[5];" (assignment_expression "ptVar9->tm_year = piVar11[5]" (field_expression "ptVar9->tm_year" identifier -> field_identifier) = (subscript_expression "piVar11[5]" identifier [ number_literal ])) ;) (expression_statement "*(int *)ptm = iVar3;" (assignment_expression "*(int *)ptm = iVar3" (pointer_expression "*(int *)ptm" * (cast_expression "(int *)ptm" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "ptVar9->tm_wday = iVar2;" (assignment_expression "ptVar9->tm_wday = iVar2" (field_expression "ptVar9->tm_wday" identifier -> field_identifier) = identifier) ;) (if_statement "if (local_2c == *(int *)puVar1) {\n      return;\n    }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_0001cb78;" goto statement_identifier ;) })) (expression_statement "unaff_s4 = (int *)ptm->tm_year;" (assignment_expression "unaff_s4 = (int *)ptm->tm_year" identifier = (cast_expression "(int *)ptm->tm_year" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "ptm->tm_year" identifier -> field_identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_strchrnul_0012b160)(date_str,0x2e);" (assignment_expression "iVar2 = (*(code *)PTR_strchrnul_0012b160)(date_str,0x2e)" identifier = (call_expression "(*(code *)PTR_strchrnul_0012b160)(date_str,0x2e)" (parenthesized_expression "(*(code *)PTR_strchrnul_0012b160)" ( (pointer_expression "*(code *)PTR_strchrnul_0012b160" * (cast_expression "(code *)PTR_strchrnul_0012b160" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,0x2e)" ( identifier , number_literal )))) ;) (expression_statement "iVar2 = iVar2 - (int)date_str;" (assignment_expression "iVar2 = iVar2 - (int)date_str" identifier = (binary_expression "iVar2 - (int)date_str" identifier - (cast_expression "(int)date_str" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (iVar2 == 2) {\n    unaff_s3 = (int *)&end;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x878,&ptm->tm_min,unaff_s3);\n    if (0 < iVar3) goto LAB_0001c904;\n  }\n  else {\n    if (iVar2 == 4) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (1 < iVar2) goto LAB_0001c904;\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 6) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3);\n      if (2 < iVar2) goto LAB_0001c904;\n                    /* WARNING: Subroutine does not return */\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }\n    if (iVar2 == 8) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (3 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        goto LAB_0001c904;\n      }\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 10) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (4 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        if ((int)unaff_s4 < 0x32) goto LAB_0001c904;\n        puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);\n        if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;\n        ptm->tm_year = (int)puVar5;\n        goto LAB_0001cb04;\n      }\n      goto LAB_0001c96c;\n    }\n  }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n    unaff_s3 = (int *)&end;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x878,&ptm->tm_min,unaff_s3);\n    if (0 < iVar3) goto LAB_0001c904;\n  }" { (expression_statement "unaff_s3 = (int *)&end;" (assignment_expression "unaff_s3 = (int *)&end" identifier = (cast_expression "(int *)&end" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&end" & identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x878,&ptm->tm_min,unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x878,&ptm->tm_min,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x878,&ptm->tm_min,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x878,&ptm->tm_min,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x878" identifier + number_literal) , (pointer_expression "&ptm->tm_min" & (field_expression "ptm->tm_min" identifier -> field_identifier)) , identifier )))) ;) (if_statement "if (0 < iVar3) goto LAB_0001c904;" if (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) (goto_statement "goto LAB_0001c904;" goto statement_identifier ;)) }) (else_clause "else {\n    if (iVar2 == 4) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (1 < iVar2) goto LAB_0001c904;\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 6) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3);\n      if (2 < iVar2) goto LAB_0001c904;\n                    /* WARNING: Subroutine does not return */\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }\n    if (iVar2 == 8) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (3 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        goto LAB_0001c904;\n      }\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 10) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (4 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        if ((int)unaff_s4 < 0x32) goto LAB_0001c904;\n        puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);\n        if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;\n        ptm->tm_year = (int)puVar5;\n        goto LAB_0001cb04;\n      }\n      goto LAB_0001c96c;\n    }\n  }" else (compound_statement "{\n    if (iVar2 == 4) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (1 < iVar2) goto LAB_0001c904;\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 6) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3);\n      if (2 < iVar2) goto LAB_0001c904;\n                    /* WARNING: Subroutine does not return */\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }\n    if (iVar2 == 8) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (3 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        goto LAB_0001c904;\n      }\n      goto LAB_0001c96c;\n    }\n    if (iVar2 == 10) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (4 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        if ((int)unaff_s4 < 0x32) goto LAB_0001c904;\n        puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);\n        if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;\n        ptm->tm_year = (int)puVar5;\n        goto LAB_0001cb04;\n      }\n      goto LAB_0001c96c;\n    }\n  }" { (if_statement "if (iVar2 == 4) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (1 < iVar2) goto LAB_0001c904;\n      goto LAB_0001c96c;\n    }" if (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) )) (compound_statement "{\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (1 < iVar2) goto LAB_0001c904;\n      goto LAB_0001c96c;\n    }" { (expression_statement "unaff_s3 = (int *)&end;" (assignment_expression "unaff_s3 = (int *)&end" identifier = (cast_expression "(int *)&end" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&end" & identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x87b" identifier + number_literal) , (pointer_expression "&ptm->tm_hour" & (field_expression "ptm->tm_hour" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_min" & (field_expression "ptm->tm_min" identifier -> field_identifier)) , identifier )))) ;) (if_statement "if (1 < iVar2) goto LAB_0001c904;" if (parenthesized_expression "(1 < iVar2)" ( (binary_expression "1 < iVar2" number_literal < identifier) )) (goto_statement "goto LAB_0001c904;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;) })) (if_statement "if (iVar2 == 6) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3);\n      if (2 < iVar2) goto LAB_0001c904;\n                    /* WARNING: Subroutine does not return */\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }" if (parenthesized_expression "(iVar2 == 6)" ( (binary_expression "iVar2 == 6" identifier == number_literal) )) (compound_statement "{\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3);\n      if (2 < iVar2) goto LAB_0001c904;\n                    /* WARNING: Subroutine does not return */\n      bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);\n    }" { (expression_statement "unaff_s3 = (int *)&end;" (assignment_expression "unaff_s3 = (int *)&end" identifier = (cast_expression "(int *)&end" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&end" & identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x87e,&ptm->tm_mday,&ptm->tm_hour,\n                         &ptm->tm_min,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x87e" identifier + number_literal) , (pointer_expression "&ptm->tm_mday" & (field_expression "ptm->tm_mday" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_hour" & (field_expression "ptm->tm_hour" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_min" & (field_expression "ptm->tm_min" identifier -> field_identifier)) , identifier )))) ;) (if_statement "if (2 < iVar2) goto LAB_0001c904;" if (parenthesized_expression "(2 < iVar2)" ( (binary_expression "2 < iVar2" number_literal < identifier) )) (goto_statement "goto LAB_0001c904;" goto statement_identifier ;)) comment (expression_statement "bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);" (call_expression "bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str)" identifier (argument_list "(PTR_bb_msg_invalid_date_0012a2cc,date_str)" ( identifier , identifier ))) ;) })) (if_statement "if (iVar2 == 8) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (3 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        goto LAB_0001c904;\n      }\n      goto LAB_0001c96c;\n    }" if (parenthesized_expression "(iVar2 == 8)" ( (binary_expression "iVar2 == 8" identifier == number_literal) )) (compound_statement "{\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (3 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        goto LAB_0001c904;\n      }\n      goto LAB_0001c96c;\n    }" { (expression_statement "unaff_s3 = (int *)&end;" (assignment_expression "unaff_s3 = (int *)&end" identifier = (cast_expression "(int *)&end" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&end" & identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x881,&ptm->tm_mon,&ptm->tm_mday,\n                         &ptm->tm_hour,&ptm->tm_min,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x881" identifier + number_literal) , (pointer_expression "&ptm->tm_mon" & (field_expression "ptm->tm_mon" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_mday" & (field_expression "ptm->tm_mday" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_hour" & (field_expression "ptm->tm_hour" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_min" & (field_expression "ptm->tm_min" identifier -> field_identifier)) , identifier )))) ;) (if_statement "if (3 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        goto LAB_0001c904;\n      }" if (parenthesized_expression "(3 < iVar2)" ( (binary_expression "3 < iVar2" number_literal < identifier) )) (compound_statement "{\n        ptm->tm_mon = ptm->tm_mon + -1;\n        goto LAB_0001c904;\n      }" { (expression_statement "ptm->tm_mon = ptm->tm_mon + -1;" (assignment_expression "ptm->tm_mon = ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) = (binary_expression "ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) + number_literal)) ;) (goto_statement "goto LAB_0001c904;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;) })) (if_statement "if (iVar2 == 10) {\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (4 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        if ((int)unaff_s4 < 0x32) goto LAB_0001c904;\n        puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);\n        if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;\n        ptm->tm_year = (int)puVar5;\n        goto LAB_0001cb04;\n      }\n      goto LAB_0001c96c;\n    }" if (parenthesized_expression "(iVar2 == 10)" ( (binary_expression "iVar2 == 10" identifier == number_literal) )) (compound_statement "{\n      unaff_s3 = (int *)&end;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3);\n      if (4 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        if ((int)unaff_s4 < 0x32) goto LAB_0001c904;\n        puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);\n        if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;\n        ptm->tm_year = (int)puVar5;\n        goto LAB_0001cb04;\n      }\n      goto LAB_0001c96c;\n    }" { (expression_statement "unaff_s3 = (int *)&end;" (assignment_expression "unaff_s3 = (int *)&end" identifier = (cast_expression "(int *)&end" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&end" & identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x884,&ptm->tm_year,&ptm->tm_mon,\n                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x884" identifier + number_literal) , (pointer_expression "&ptm->tm_year" & (field_expression "ptm->tm_year" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_mon" & (field_expression "ptm->tm_mon" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_mday" & (field_expression "ptm->tm_mday" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_hour" & (field_expression "ptm->tm_hour" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_min" & (field_expression "ptm->tm_min" identifier -> field_identifier)) , identifier )))) ;) (if_statement "if (4 < iVar2) {\n        ptm->tm_mon = ptm->tm_mon + -1;\n        if ((int)unaff_s4 < 0x32) goto LAB_0001c904;\n        puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);\n        if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;\n        ptm->tm_year = (int)puVar5;\n        goto LAB_0001cb04;\n      }" if (parenthesized_expression "(4 < iVar2)" ( (binary_expression "4 < iVar2" number_literal < identifier) )) (compound_statement "{\n        ptm->tm_mon = ptm->tm_mon + -1;\n        if ((int)unaff_s4 < 0x32) goto LAB_0001c904;\n        puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);\n        if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;\n        ptm->tm_year = (int)puVar5;\n        goto LAB_0001cb04;\n      }" { (expression_statement "ptm->tm_mon = ptm->tm_mon + -1;" (assignment_expression "ptm->tm_mon = ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) = (binary_expression "ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) + number_literal)) ;) (if_statement "if ((int)unaff_s4 < 0x32) goto LAB_0001c904;" if (parenthesized_expression "((int)unaff_s4 < 0x32)" ( (binary_expression "(int)unaff_s4 < 0x32" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0001c904;" goto statement_identifier ;)) (expression_statement "puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year);" (assignment_expression "puVar5 = (undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year)" identifier = (cast_expression "(undefined1 *)(((uint)unaff_s4 / 100) * 100 + ptm->tm_year)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)unaff_s4 / 100) * 100 + ptm->tm_year)" ( (binary_expression "((uint)unaff_s4 / 100) * 100 + ptm->tm_year" (binary_expression "((uint)unaff_s4 / 100) * 100" (parenthesized_expression "((uint)unaff_s4 / 100)" ( (binary_expression "(uint)unaff_s4 / 100" (cast_expression "(uint)unaff_s4" ( (type_descriptor "uint" type_identifier) ) identifier) / number_literal) )) * number_literal) + (field_expression "ptm->tm_year" identifier -> field_identifier)) )))) ;) (if_statement "if (puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)) goto LAB_0001cb80;" if (parenthesized_expression "(puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U))" ( (binary_expression "puVar5 < (undefined1 *)((int)unaff_s4 - 0x32U)" identifier < (cast_expression "(undefined1 *)((int)unaff_s4 - 0x32U)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 - 0x32U)" ( (binary_expression "(int)unaff_s4 - 0x32U" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) - number_literal) )))) )) (goto_statement "goto LAB_0001cb80;" goto statement_identifier ;)) (expression_statement "ptm->tm_year = (int)puVar5;" (assignment_expression "ptm->tm_year = (int)puVar5" (field_expression "ptm->tm_year" identifier -> field_identifier) = (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0001cb04;" goto statement_identifier ;) })) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;) })) }))) (if_statement "if (iVar2 == 0xc) {\n    unaff_s3 = (int *)&end;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x870,&ptm->tm_year,&ptm->tm_mon,&ptm->tm_mday,\n                       &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n    if (4 < iVar2) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      goto LAB_0001c904;\n    }\n  }" if (parenthesized_expression "(iVar2 == 0xc)" ( (binary_expression "iVar2 == 0xc" identifier == number_literal) )) (compound_statement "{\n    unaff_s3 = (int *)&end;\n    iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x870,&ptm->tm_year,&ptm->tm_mon,&ptm->tm_mday,\n                       &ptm->tm_hour,&ptm->tm_min,unaff_s3);\n    if (4 < iVar2) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      goto LAB_0001c904;\n    }\n  }" { (expression_statement "unaff_s3 = (int *)&end;" (assignment_expression "unaff_s3 = (int *)&end" identifier = (cast_expression "(int *)&end" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&end" & identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x870,&ptm->tm_year,&ptm->tm_mon,&ptm->tm_mday,\n                       &ptm->tm_hour,&ptm->tm_min,unaff_s3);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x870,&ptm->tm_year,&ptm->tm_mon,&ptm->tm_mday,\n                       &ptm->tm_hour,&ptm->tm_min,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                      (date_str,PTR_UINT_0012a18c + -0x870,&ptm->tm_year,&ptm->tm_mon,&ptm->tm_mday,\n                       &ptm->tm_hour,&ptm->tm_min,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(date_str,PTR_UINT_0012a18c + -0x870,&ptm->tm_year,&ptm->tm_mon,&ptm->tm_mday,\n                       &ptm->tm_hour,&ptm->tm_min,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x870" identifier + number_literal) , (pointer_expression "&ptm->tm_year" & (field_expression "ptm->tm_year" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_mon" & (field_expression "ptm->tm_mon" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_mday" & (field_expression "ptm->tm_mday" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_hour" & (field_expression "ptm->tm_hour" identifier -> field_identifier)) , (pointer_expression "&ptm->tm_min" & (field_expression "ptm->tm_min" identifier -> field_identifier)) , identifier )))) ;) (if_statement "if (4 < iVar2) {\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      goto LAB_0001c904;\n    }" if (parenthesized_expression "(4 < iVar2)" ( (binary_expression "4 < iVar2" number_literal < identifier) )) (compound_statement "{\n      ptm->tm_year = ptm->tm_year + -0x76c;\n      ptm->tm_mon = ptm->tm_mon + -1;\n      goto LAB_0001c904;\n    }" { (expression_statement "ptm->tm_year = ptm->tm_year + -0x76c;" (assignment_expression "ptm->tm_year = ptm->tm_year + -0x76c" (field_expression "ptm->tm_year" identifier -> field_identifier) = (binary_expression "ptm->tm_year + -0x76c" (field_expression "ptm->tm_year" identifier -> field_identifier) + number_literal)) ;) (expression_statement "ptm->tm_mon = ptm->tm_mon + -1;" (assignment_expression "ptm->tm_mon = ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) = (binary_expression "ptm->tm_mon + -1" (field_expression "ptm->tm_mon" identifier -> field_identifier) + number_literal)) ;) (goto_statement "goto LAB_0001c904;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0001c96c:\n                    /* WARNING: Subroutine does not return */\n  bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);" statement_identifier : comment (expression_statement "bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str);" (call_expression "bb_error_msg_and_die(PTR_bb_msg_invalid_date_0012a2cc,date_str)" identifier (argument_list "(PTR_bb_msg_invalid_date_0012a2cc,date_str)" ( identifier , identifier ))) ;)) })))
(translation_unit "void FUN_0001c5d8(char *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  int *piVar6;\n  char cVar8;\n  char *pcVar7;\n  int iVar9;\n  int *piVar10;\n  int *unaff_s3;\n  int *unaff_s4;\n  int *unaff_s5;\n  int *unaff_s6;\n  int unaff_s7;\n  int *unaff_s8;\n  undefined1 local_31;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_31 = '\0';\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  if (iVar2 == 0) {\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }\n  else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }\n  while (cVar8 != '\0') {\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }\n  if (local_2c == *(int *)puVar1) {\n    return;\n  }\nLAB_0001cb78:\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return;\n}\n\n" (function_definition "void FUN_0001c5d8(char *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  int *piVar6;\n  char cVar8;\n  char *pcVar7;\n  int iVar9;\n  int *piVar10;\n  int *unaff_s3;\n  int *unaff_s4;\n  int *unaff_s5;\n  int *unaff_s6;\n  int unaff_s7;\n  int *unaff_s8;\n  undefined1 local_31;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_31 = '\0';\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  if (iVar2 == 0) {\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }\n  else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }\n  while (cVar8 != '\0') {\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }\n  if (local_2c == *(int *)puVar1) {\n    return;\n  }\nLAB_0001cb78:\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return;\n}" primitive_type (function_declarator "FUN_0001c5d8(char *param_1,int *param_2)" identifier (parameter_list "(char *param_1,int *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  int *piVar6;\n  char cVar8;\n  char *pcVar7;\n  int iVar9;\n  int *piVar10;\n  int *unaff_s3;\n  int *unaff_s4;\n  int *unaff_s5;\n  int *unaff_s6;\n  int unaff_s7;\n  int *unaff_s8;\n  undefined1 local_31;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_31 = '\0';\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  if (iVar2 == 0) {\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }\n  else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }\n  while (cVar8 != '\0') {\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }\n  if (local_2c == *(int *)puVar1) {\n    return;\n  }\nLAB_0001cb78:\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "char cVar8;" primitive_type identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "int *unaff_s4;" primitive_type (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int unaff_s7;" primitive_type identifier ;) (declaration "int *unaff_s8;" primitive_type (pointer_declarator "*unaff_s8" * identifier) ;) (declaration "undefined1 local_31;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "local_31 = '\0';" (assignment_expression "local_31 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);" (assignment_expression "iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" identifier = (call_expression "(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" (parenthesized_expression "(*(code *)PTR_strrchr_0012adbc)" ( (pointer_expression "*(code *)PTR_strrchr_0012adbc" * (cast_expression "(code *)PTR_strrchr_0012adbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x3a)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }\n  else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }" { (expression_statement "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d)" identifier = (call_expression "(*(code *)PTR_strchr_0012af54)(param_1,0x2d)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x2d)" ( identifier , number_literal )))) ;) (if_statement "if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }" { (labeled_statement "LAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }" statement_identifier : (if_statement "if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }" if (parenthesized_expression "(*param_1 != '@')" ( (binary_expression "*param_1 != '@'" (pointer_expression "*param_1" * identifier) != (char_literal "'@'" ' character ')) )) (compound_statement "{\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }" { (expression_statement "unaff_s4 = (int *)param_2[5];" (assignment_expression "unaff_s4 = (int *)param_2[5]" identifier = (cast_expression "(int *)param_2[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[5]" identifier [ number_literal ]))) ;) (expression_statement "iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);" (assignment_expression "iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e)" identifier = (call_expression "(*(code *)PTR_strchrnul_0012b160)(param_1,0x2e)" (parenthesized_expression "(*(code *)PTR_strchrnul_0012b160)" ( (pointer_expression "*(code *)PTR_strchrnul_0012b160" * (cast_expression "(code *)PTR_strchrnul_0012b160" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x2e)" ( identifier , number_literal )))) ;) (expression_statement "unaff_s5 = (int *)(iVar2 - (int)param_1);" (assignment_expression "unaff_s5 = (int *)(iVar2 - (int)param_1)" identifier = (cast_expression "(int *)(iVar2 - (int)param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 - (int)param_1)" ( (binary_expression "iVar2 - (int)param_1" identifier - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (if_statement "if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;" if (parenthesized_expression "(unaff_s5 != (int *)&SUB_00000002)" ( (binary_expression "unaff_s5 != (int *)&SUB_00000002" identifier != (cast_expression "(int *)&SUB_00000002" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&SUB_00000002" & identifier))) )) (goto_statement "goto LAB_0001c974;" goto statement_identifier ;)) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x878" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (0 < iVar2) goto LAB_0001c904;" if (parenthesized_expression "(0 < iVar2)" ( (binary_expression "0 < iVar2" number_literal < identifier) )) (goto_statement "goto LAB_0001c904;" goto statement_identifier ;)) (goto_statement "goto LAB_0001c89c;" goto statement_identifier ;) }))) (expression_statement "local_30 = FUN_0001d3ac(param_1 + 1,0,10);" (assignment_expression "local_30 = FUN_0001d3ac(param_1 + 1,0,10)" identifier = (call_expression "FUN_0001d3ac(param_1 + 1,0,10)" identifier (argument_list "(param_1 + 1,0,10)" ( (binary_expression "param_1 + 1" identifier + number_literal) , number_literal , number_literal )))) ;) (if_statement "if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }" if (parenthesized_expression "((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0))" ( (binary_expression "(**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)" (parenthesized_expression "(**(int **)PTR_DAT_0012a214 == 0)" ( (binary_expression "**(int **)PTR_DAT_0012a214 == 0" (pointer_expression "**(int **)PTR_DAT_0012a214" * (pointer_expression "*(int **)PTR_DAT_0012a214" * (cast_expression "(int **)PTR_DAT_0012a214" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) == number_literal) )) && (parenthesized_expression "(piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)" ( (comma_expression "piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0" (assignment_expression "piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30)" identifier = (cast_expression "(int *)(*(code *)PTR_localtime_0012af6c)(&local_30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_localtime_0012af6c)(&local_30)" (parenthesized_expression "(*(code *)PTR_localtime_0012af6c)" ( (pointer_expression "*(code *)PTR_localtime_0012af6c" * (cast_expression "(code *)PTR_localtime_0012af6c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_30)" ( (pointer_expression "&local_30" & identifier) ))))) , (binary_expression "piVar6 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }" { (expression_statement "piVar5 = piVar6;" (assignment_expression "piVar5 = piVar6" identifier = identifier) ;) (do_statement "do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);" do (compound_statement "{\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        }" { (expression_statement "piVar10 = param_2;" (assignment_expression "piVar10 = param_2" identifier = identifier) ;) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" identifier = identifier) ;) (expression_statement "piVar5 = piVar4 + 4;" (assignment_expression "piVar5 = piVar4 + 4" identifier = (binary_expression "piVar4 + 4" identifier + number_literal)) ;) (expression_statement "iVar9 = piVar4[1];" (assignment_expression "iVar9 = piVar4[1]" identifier = (subscript_expression "piVar4[1]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = piVar4[2];" (assignment_expression "iVar3 = piVar4[2]" identifier = (subscript_expression "piVar4[2]" identifier [ number_literal ])) ;) (expression_statement "iVar2 = piVar4[3];" (assignment_expression "iVar2 = piVar4[3]" identifier = (subscript_expression "piVar4[3]" identifier [ number_literal ])) ;) (expression_statement "*piVar10 = *piVar4;" (assignment_expression "*piVar10 = *piVar4" (pointer_expression "*piVar10" * identifier) = (pointer_expression "*piVar4" * identifier)) ;) (expression_statement "piVar10[1] = iVar9;" (assignment_expression "piVar10[1] = iVar9" (subscript_expression "piVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10[2] = iVar3;" (assignment_expression "piVar10[2] = iVar3" (subscript_expression "piVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10[3] = iVar2;" (assignment_expression "piVar10[3] = iVar2" (subscript_expression "piVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2 = piVar10 + 4;" (assignment_expression "param_2 = piVar10 + 4" identifier = (binary_expression "piVar10 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar5 != piVar6 + 8)" ( (binary_expression "piVar5 != piVar6 + 8" identifier != (binary_expression "piVar6 + 8" identifier + number_literal)) )) ;) (expression_statement "iVar3 = *piVar5;" (assignment_expression "iVar3 = *piVar5" identifier = (pointer_expression "*piVar5" * identifier)) ;) (expression_statement "iVar2 = piVar4[6];" (assignment_expression "iVar2 = piVar4[6]" identifier = (subscript_expression "piVar4[6]" identifier [ number_literal ])) ;) (expression_statement "piVar10[5] = piVar4[5];" (assignment_expression "piVar10[5] = piVar4[5]" (subscript_expression "piVar10[5]" identifier [ number_literal ]) = (subscript_expression "piVar4[5]" identifier [ number_literal ])) ;) (expression_statement "piVar10[4] = iVar3;" (assignment_expression "piVar10[4] = iVar3" (subscript_expression "piVar10[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10[6] = iVar2;" (assignment_expression "piVar10[6] = iVar2" (subscript_expression "piVar10[6]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_2c == *(int *)puVar1) {\n          return;\n        }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_0001cb78;" goto statement_identifier ;) })) (expression_statement "local_31 = '1';" (assignment_expression "local_31 = '1'" identifier = (char_literal "'1'" ' character ')) ;) (expression_statement "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" (call_expression "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1)" identifier (argument_list "(PTR_s_invalid_date___s__0012a2cc,param_1)" ( identifier , identifier ))) ;) (expression_statement "iVar2 = unaff_s7;" (assignment_expression "iVar2 = unaff_s7" identifier = identifier) ;) (labeled_statement "LAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);" statement_identifier : (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8d4" identifier + number_literal) , (binary_expression "param_2 + 5" identifier + number_literal) , identifier , identifier , identifier , identifier , identifier )))) ;)) (if_statement "if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }" if (parenthesized_expression "((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3))" ( (binary_expression "(4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)" (parenthesized_expression "(4 < iVar3)" ( (binary_expression "4 < iVar3" number_literal < identifier) )) || (parenthesized_expression "(iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)" ( (comma_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8c0" identifier + number_literal) , (binary_expression "param_2 + 5" identifier + number_literal) , identifier , identifier , identifier , identifier , identifier )))) , (binary_expression "4 < iVar3" number_literal < identifier)) ))) )) (compound_statement "{\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }" { (expression_statement "param_2[5] = param_2[5] + -0x76c;" (assignment_expression "param_2[5] = param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (binary_expression "param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) (goto_statement "goto LAB_0001cc04;" goto statement_identifier ;) })) (expression_statement "pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" identifier = (cast_expression "(char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" (parenthesized_expression "(*(code *)PTR_strptime_0012b0a0)" ( (pointer_expression "*(code *)PTR_strptime_0012b0a0" * (cast_expression "(code *)PTR_strptime_0012b0a0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8ac" identifier + number_literal) , identifier ))))) ;) (if_statement "if (pcVar7 == (char *)0x0) goto LAB_0001c96c;" if (parenthesized_expression "(pcVar7 == (char *)0x0)" ( (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" identifier = (pointer_expression "*pcVar7" * identifier)) ;) }) (else_clause "else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }" else (compound_statement "{\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }" { (expression_statement "unaff_s5 = param_2 + 5;" (assignment_expression "unaff_s5 = param_2 + 5" identifier = (binary_expression "param_2 + 5" identifier + number_literal)) ;) (expression_statement "unaff_s6 = param_2 + 4;" (assignment_expression "unaff_s6 = param_2 + 4" identifier = (binary_expression "param_2 + 4" identifier + number_literal)) ;) (expression_statement "unaff_s3 = param_2 + 3;" (assignment_expression "unaff_s3 = param_2 + 3" identifier = (binary_expression "param_2 + 3" identifier + number_literal)) ;) (expression_statement "unaff_s4 = (int *)&local_31;" (assignment_expression "unaff_s4 = (int *)&local_31" identifier = (cast_expression "(int *)&local_31" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_31" & identifier))) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8a0" identifier + number_literal) , identifier , identifier , identifier , (binary_expression "param_2 + 2" identifier + number_literal) , identifier )))) ;) (if_statement "if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;" if (parenthesized_expression "((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3))" ( (binary_expression "(iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)" (parenthesized_expression "(iVar2 < 4)" ( (binary_expression "iVar2 < 4" identifier < number_literal) )) && (parenthesized_expression "(iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)" ( (comma_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x890" identifier + number_literal) , identifier , identifier , identifier , identifier )))) , (binary_expression "iVar2 < 3" identifier < number_literal)) ))) )) (goto_statement "goto LAB_0001c77c;" goto statement_identifier ;)) (expression_statement "param_2[5] = param_2[5] + -0x76c;" (assignment_expression "param_2[5] = param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (binary_expression "param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "cVar8 = local_31;" (assignment_expression "cVar8 = local_31" identifier = identifier) ;) }))) }) (else_clause "else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }" else (compound_statement "{\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }" { (expression_statement "unaff_s4 = param_2 + 2;" (assignment_expression "unaff_s4 = param_2 + 2" identifier = (binary_expression "param_2 + 2" identifier + number_literal)) ;) (expression_statement "unaff_s5 = param_2 + 1;" (assignment_expression "unaff_s5 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "unaff_s3 = (int *)&local_31;" (assignment_expression "unaff_s3 = (int *)&local_31" identifier = (cast_expression "(int *)&local_31" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_31" & identifier))) ;) (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8ec" identifier + number_literal) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }" if (parenthesized_expression "(iVar3 < 2)" ( (binary_expression "iVar3 < 2" identifier < number_literal) )) (compound_statement "{\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }" { (expression_statement "unaff_s8 = param_2 + 4;" (assignment_expression "unaff_s8 = param_2 + 4" identifier = (binary_expression "param_2 + 4" identifier + number_literal)) ;) (expression_statement "unaff_s6 = param_2 + 3;" (assignment_expression "unaff_s6 = param_2 + 3" identifier = (binary_expression "param_2 + 3" identifier + number_literal)) ;) (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x8e4" identifier + number_literal) , identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar3 < 4) goto LAB_0001cba8;" if (parenthesized_expression "(iVar3 < 4)" ( (binary_expression "iVar3 < 4" identifier < number_literal) )) (goto_statement "goto LAB_0001cba8;" goto statement_identifier ;)) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) })) (labeled_statement "LAB_0001cc04:\n    cVar8 = local_31;" statement_identifier : (expression_statement "cVar8 = local_31;" (assignment_expression "cVar8 = local_31" identifier = identifier) ;)) (if_statement "if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }" if (parenthesized_expression "((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1))" ( (binary_expression "(local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)" (parenthesized_expression "(local_31 == ':')" ( (binary_expression "local_31 == ':'" identifier == (char_literal "':'" ' character ')) )) && (parenthesized_expression "(iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)" ( (comma_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3)" ( (binary_expression "iVar2 + 1" identifier + number_literal) , (binary_expression "PTR_UINT_0012a18c + -0x8b4" identifier + number_literal) , identifier , identifier )))) , (comma_expression "cVar8 = local_31,\n       iVar2 == 1" (assignment_expression "cVar8 = local_31" identifier = identifier) , (binary_expression "iVar2 == 1" identifier == number_literal))) ))) )) (compound_statement "{\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }" { (if_statement "if (local_2c == *(int *)puVar1) {\n        return;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (goto_statement "goto LAB_0001cb78;" goto statement_identifier ;) })) }))) (while_statement "while (cVar8 != '\0') {\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }" while (parenthesized_expression "(cVar8 != '\0')" ( (binary_expression "cVar8 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }" { (labeled_statement "LAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" statement_identifier : (expression_statement "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" (call_expression "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1)" identifier (argument_list "(PTR_s_invalid_date___s__0012a2cc,param_1)" ( identifier , identifier ))) ;)) (labeled_statement "LAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" statement_identifier : (if_statement "if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" if (parenthesized_expression "(unaff_s5 == (int *)&DAT_00000004)" ( (binary_expression "unaff_s5 == (int *)&DAT_00000004" identifier == (cast_expression "(int *)&DAT_00000004" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000004" & identifier))) )) (compound_statement "{\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }" { (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x87b" identifier + number_literal) , (binary_expression "param_2 + 2" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (iVar2 < 2) goto LAB_0001c96c;" if (parenthesized_expression "(iVar2 < 2)" ( (binary_expression "iVar2 < 2" identifier < number_literal) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) }) (else_clause "else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" else (compound_statement "{\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" { (if_statement "if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }" if (parenthesized_expression "(unaff_s5 == (int *)&DAT_00000006)" ( (binary_expression "unaff_s5 == (int *)&DAT_00000006" identifier == (cast_expression "(int *)&DAT_00000006" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000006" & identifier))) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }" { (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x87e" identifier + number_literal) , (binary_expression "param_2 + 3" identifier + number_literal) , (binary_expression "param_2 + 2" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (2 < iVar2) goto LAB_0001c904;" if (parenthesized_expression "(2 < iVar2)" ( (binary_expression "2 < iVar2" number_literal < identifier) )) (goto_statement "goto LAB_0001c904;" goto statement_identifier ;)) (expression_statement "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" (call_expression "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1)" identifier (argument_list "(PTR_s_invalid_date___s__0012a2cc,param_1)" ( identifier , identifier ))) ;) })) (if_statement "if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" if (parenthesized_expression "(unaff_s5 == (int *)&DAT_00000008)" ( (binary_expression "unaff_s5 == (int *)&DAT_00000008" identifier == (cast_expression "(int *)&DAT_00000008" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000008" & identifier))) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }" { (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x881" identifier + number_literal) , (binary_expression "param_2 + 4" identifier + number_literal) , (binary_expression "param_2 + 3" identifier + number_literal) , (binary_expression "param_2 + 2" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (iVar2 < 4) goto LAB_0001c96c;" if (parenthesized_expression "(iVar2 < 4)" ( (binary_expression "iVar2 < 4" identifier < number_literal) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" else (if_statement "if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" if (parenthesized_expression "(unaff_s5 == (int *)&DAT_0000000a)" ( (binary_expression "unaff_s5 == (int *)&DAT_0000000a" identifier == (cast_expression "(int *)&DAT_0000000a" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000a" & identifier))) )) (compound_statement "{\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }" { (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x884" identifier + number_literal) , (binary_expression "param_2 + 5" identifier + number_literal) , (binary_expression "param_2 + 4" identifier + number_literal) , (binary_expression "param_2 + 3" identifier + number_literal) , (binary_expression "param_2 + 2" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (iVar2 < 5) goto LAB_0001c96c;" if (parenthesized_expression "(iVar2 < 5)" ( (binary_expression "iVar2 < 5" identifier < number_literal) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }" if (parenthesized_expression "(0x31 < (int)unaff_s4)" ( (binary_expression "0x31 < (int)unaff_s4" number_literal < (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }" { (expression_statement "piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);" (assignment_expression "piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5])" identifier = (cast_expression "(int *)(((uint)unaff_s4 / 100) * 100 + param_2[5])" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)unaff_s4 / 100) * 100 + param_2[5])" ( (binary_expression "((uint)unaff_s4 / 100) * 100 + param_2[5]" (binary_expression "((uint)unaff_s4 / 100) * 100" (parenthesized_expression "((uint)unaff_s4 / 100)" ( (binary_expression "(uint)unaff_s4 / 100" (cast_expression "(uint)unaff_s4" ( (type_descriptor "uint" type_identifier) ) identifier) / number_literal) )) * number_literal) + (subscript_expression "param_2[5]" identifier [ number_literal ])) )))) ;) (if_statement "if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }" if (parenthesized_expression "(piVar6 < (int *)((int)unaff_s4 + -0x32))" ( (binary_expression "piVar6 < (int *)((int)unaff_s4 + -0x32)" identifier < (cast_expression "(int *)((int)unaff_s4 + -0x32)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + -0x32)" ( (binary_expression "(int)unaff_s4 + -0x32" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }" { (expression_statement "piVar6 = piVar6 + 0x19;" (assignment_expression "piVar6 = piVar6 + 0x19" identifier = (binary_expression "piVar6 + 0x19" identifier + number_literal)) ;) (expression_statement "param_2[5] = (int)piVar6;" (assignment_expression "param_2[5] = (int)piVar6" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n            param_2[5] = (int)piVar6;\n          }" else (compound_statement "{\n            param_2[5] = (int)piVar6;\n          }" { (expression_statement "param_2[5] = (int)piVar6;" (assignment_expression "param_2[5] = (int)piVar6" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (cast_expression "(int)piVar6" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "unaff_s4 = (int *)((int)unaff_s4 + 0x32);" (assignment_expression "unaff_s4 = (int *)((int)unaff_s4 + 0x32)" identifier = (cast_expression "(int *)((int)unaff_s4 + 0x32)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x32)" ( (binary_expression "(int)unaff_s4 + 0x32" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }" if (parenthesized_expression "(unaff_s4 < piVar6)" ( (binary_expression "unaff_s4 < piVar6" identifier < identifier) )) (compound_statement "{\n            param_2[5] = (int)(piVar6 + -0x19);\n          }" { (expression_statement "param_2[5] = (int)(piVar6 + -0x19);" (assignment_expression "param_2[5] = (int)(piVar6 + -0x19)" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (cast_expression "(int)(piVar6 + -0x19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar6 + -0x19)" ( (binary_expression "piVar6 + -0x19" identifier + number_literal) )))) ;) })) })) }) (else_clause "else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" else (compound_statement "{\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" { (labeled_statement "LAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;" statement_identifier : (if_statement "if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;" if (parenthesized_expression "((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))" ( (binary_expression "(unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5)" (parenthesized_expression "(unaff_s5 != (int *)&DAT_0000000c)" ( (binary_expression "unaff_s5 != (int *)&DAT_0000000c" identifier != (cast_expression "(int *)&DAT_0000000c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_0000000c" & identifier))) )) || (parenthesized_expression "(iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5)" ( (comma_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31)" ( identifier , (binary_expression "PTR_UINT_0012a18c + -0x870" identifier + number_literal) , (binary_expression "param_2 + 5" identifier + number_literal) , (binary_expression "param_2 + 4" identifier + number_literal) , (binary_expression "param_2 + 3" identifier + number_literal) , (binary_expression "param_2 + 2" identifier + number_literal) , (binary_expression "param_2 + 1" identifier + number_literal) , (pointer_expression "&local_31" & identifier) )))) , (binary_expression "iVar2 < 5" identifier < number_literal)) ))) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;))) (expression_statement "param_2[5] = param_2[5] + -0x76c;" (assignment_expression "param_2[5] = param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) = (binary_expression "param_2[5] + -0x76c" (subscript_expression "param_2[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) = (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" identifier [ number_literal ]) + number_literal)) ;) }))))) })))) (labeled_statement "LAB_0001c904:\n    *param_2 = 0;" statement_identifier : (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" * identifier) = number_literal) ;)) (if_statement "if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }" if (parenthesized_expression "(local_31 == '.')" ( (binary_expression "local_31 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }" { (expression_statement "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e)" identifier = (call_expression "(*(code *)PTR_strchr_0012af54)(param_1,0x2e)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" ( (pointer_expression "*(code *)PTR_strchr_0012af54" * (cast_expression "(code *)PTR_strchr_0012af54" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,0x2e)" ( identifier , number_literal )))) ;) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)" identifier = (call_expression "(*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" ( (pointer_expression "*(code *)PTR_sscanf_0012ad98" * (cast_expression "(code *)PTR_sscanf_0012ad98" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)" ( (binary_expression "iVar2 + 1" identifier + number_literal) , (binary_expression "PTR_UINT_0012a18c + -0x8b4" identifier + number_literal) , identifier , (pointer_expression "&local_31" & identifier) )))) ;) (if_statement "if (iVar2 == 1) {\n        local_31 = '\0';\n      }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n        local_31 = '\0';\n      }" { (expression_statement "local_31 = '\0';" (assignment_expression "local_31 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (if_statement "if (0x3c < *param_2) goto LAB_0001c96c;" if (parenthesized_expression "(0x3c < *param_2)" ( (binary_expression "0x3c < *param_2" number_literal < (pointer_expression "*param_2" * identifier)) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) })) (if_statement "if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;" if (parenthesized_expression "((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4]))" ( (binary_expression "(((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])" (parenthesized_expression "(((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3]))" ( (binary_expression "((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])" (parenthesized_expression "((0x3b < param_2[1]) || (0x17 < param_2[2]))" ( (binary_expression "(0x3b < param_2[1]) || (0x17 < param_2[2])" (parenthesized_expression "(0x3b < param_2[1])" ( (binary_expression "0x3b < param_2[1]" number_literal < (subscript_expression "param_2[1]" identifier [ number_literal ])) )) || (parenthesized_expression "(0x17 < param_2[2])" ( (binary_expression "0x17 < param_2[2]" number_literal < (subscript_expression "param_2[2]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "(0x1f < param_2[3])" ( (binary_expression "0x1f < param_2[3]" number_literal < (subscript_expression "param_2[3]" identifier [ number_literal ])) ))) )) || (parenthesized_expression "(cVar8 = local_31, 0xb < param_2[4])" ( (comma_expression "cVar8 = local_31, 0xb < param_2[4]" (assignment_expression "cVar8 = local_31" identifier = identifier) , (binary_expression "0xb < param_2[4]" number_literal < (subscript_expression "param_2[4]" identifier [ number_literal ]))) ))) )) (goto_statement "goto LAB_0001c96c;" goto statement_identifier ;)) })) (if_statement "if (local_2c == *(int *)puVar1) {\n    return;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_0001cb78:\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();" statement_identifier : (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , IDENT , IDENT )))) , (binary_expression LIT < IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT < LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , IDENT )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) }))) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / LIT) )) * LIT) + (subscript_expression IDENT [ LIT ])) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) , (binary_expression IDENT < LIT)) ))) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }))))) })))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) || (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) ))) )) || (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (subscript_expression IDENT [ LIT ]))) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;)) (return_statement return ;) })))
(function_definition "void FUN_0001c5d8(char *param_1,int *param_2)\n\n{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  int *piVar6;\n  char cVar8;\n  char *pcVar7;\n  int iVar9;\n  int *piVar10;\n  int *unaff_s3;\n  int *unaff_s4;\n  int *unaff_s5;\n  int *unaff_s6;\n  int unaff_s7;\n  int *unaff_s8;\n  undefined1 local_31;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_31 = '\0';\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  if (iVar2 == 0) {\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }\n  else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }\n  while (cVar8 != '\0') {\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }\n  if (local_2c == *(int *)puVar1) {\n    return;\n  }\nLAB_0001cb78:\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0001c5d8(char *param_1,int *param_2)" (identifier "FUN_0001c5d8") (parameter_list "(char *param_1,int *param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  int *piVar6;\n  char cVar8;\n  char *pcVar7;\n  int iVar9;\n  int *piVar10;\n  int *unaff_s3;\n  int *unaff_s4;\n  int *unaff_s5;\n  int *unaff_s6;\n  int unaff_s7;\n  int *unaff_s8;\n  undefined1 local_31;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0012b14c;\n  local_31 = '\0';\n  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;\n  iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);\n  if (iVar2 == 0) {\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }\n  else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }\n  while (cVar8 != '\0') {\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }\n  if (local_2c == *(int *)puVar1) {\n    return;\n  }\nLAB_0001cb78:\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  return;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "char cVar8;" (primitive_type "char") (identifier "cVar8") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int *unaff_s3;" (primitive_type "int") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "int *unaff_s4;" (primitive_type "int") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "int *unaff_s5;" (primitive_type "int") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "int *unaff_s6;" (primitive_type "int") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "int unaff_s7;" (primitive_type "int") (identifier "unaff_s7") (; ";")) (declaration "int *unaff_s8;" (primitive_type "int") (pointer_declarator "*unaff_s8" (* "*") (identifier "unaff_s8")) (; ";")) (declaration "undefined1 local_31;" (type_identifier "undefined1") (identifier "local_31") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0012b14c" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0012b14c")) (; ";")) (expression_statement "local_31 = '\0';" (assignment_expression "local_31 = '\0'" (identifier "local_31") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0012b14c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0012b14c")))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);" (assignment_expression "iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strrchr_0012adbc)(param_1,0x3a)" (parenthesized_expression "(*(code *)PTR_strrchr_0012adbc)" (( "(") (pointer_expression "*(code *)PTR_strrchr_0012adbc" (* "*") (cast_expression "(code *)PTR_strrchr_0012adbc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strrchr_0012adbc"))) () ")")) (argument_list "(param_1,0x3a)" (( "(") (identifier "param_1") (, ",") (number_literal "0x3a") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }\n  else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);\n    if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }\n  }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strchr_0012af54)(param_1,0x2d)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" (( "(") (pointer_expression "*(code *)PTR_strchr_0012af54" (* "*") (cast_expression "(code *)PTR_strchr_0012af54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchr_0012af54"))) () ")")) (argument_list "(param_1,0x2d)" (( "(") (identifier "param_1") (, ",") (number_literal "0x2d") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }\n    else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }\n      local_30 = FUN_0001d3ac(param_1 + 1,0,10);\n      if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }\n      local_31 = '1';\n      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      iVar2 = unaff_s7;\nLAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);\n      if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }\n      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);\n      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;\n      cVar8 = *pcVar7;\n    }" ({ "{") (labeled_statement "LAB_0001c77c:\n      if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }" (statement_identifier "LAB_0001c77c") (: ":") (if_statement "if (*param_1 != '@') {\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }" (if "if") (parenthesized_expression "(*param_1 != '@')" (( "(") (binary_expression "*param_1 != '@'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (!= "!=") (char_literal "'@'" (' "'") (character "@") (' "'"))) () ")")) (compound_statement "{\n        unaff_s4 = (int *)param_2[5];\n        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);\n        unaff_s5 = (int *)(iVar2 - (int)param_1);\n        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);\n        if (0 < iVar2) goto LAB_0001c904;\n        goto LAB_0001c89c;\n      }" ({ "{") (expression_statement "unaff_s4 = (int *)param_2[5];" (assignment_expression "unaff_s4 = (int *)param_2[5]" (identifier "unaff_s4") (= "=") (cast_expression "(int *)param_2[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);" (assignment_expression "iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strchrnul_0012b160)(param_1,0x2e)" (parenthesized_expression "(*(code *)PTR_strchrnul_0012b160)" (( "(") (pointer_expression "*(code *)PTR_strchrnul_0012b160" (* "*") (cast_expression "(code *)PTR_strchrnul_0012b160" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchrnul_0012b160"))) () ")")) (argument_list "(param_1,0x2e)" (( "(") (identifier "param_1") (, ",") (number_literal "0x2e") () ")")))) (; ";")) (expression_statement "unaff_s5 = (int *)(iVar2 - (int)param_1);" (assignment_expression "unaff_s5 = (int *)(iVar2 - (int)param_1)" (identifier "unaff_s5") (= "=") (cast_expression "(int *)(iVar2 - (int)param_1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 - (int)param_1)" (( "(") (binary_expression "iVar2 - (int)param_1" (identifier "iVar2") (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1"))) () ")")))) (; ";")) (if_statement "if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;" (if "if") (parenthesized_expression "(unaff_s5 != (int *)&SUB_00000002)" (( "(") (binary_expression "unaff_s5 != (int *)&SUB_00000002" (identifier "unaff_s5") (!= "!=") (cast_expression "(int *)&SUB_00000002" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&SUB_00000002" (& "&") (identifier "SUB_00000002")))) () ")")) (goto_statement "goto LAB_0001c974;" (goto "goto") (statement_identifier "LAB_0001c974") (; ";"))) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x878" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x878")) (, ",") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_31" (& "&") (identifier "local_31")) () ")")))) (; ";")) (if_statement "if (0 < iVar2) goto LAB_0001c904;" (if "if") (parenthesized_expression "(0 < iVar2)" (( "(") (binary_expression "0 < iVar2" (number_literal "0") (< "<") (identifier "iVar2")) () ")")) (goto_statement "goto LAB_0001c904;" (goto "goto") (statement_identifier "LAB_0001c904") (; ";"))) (goto_statement "goto LAB_0001c89c;" (goto "goto") (statement_identifier "LAB_0001c89c") (; ";")) (} "}")))) (expression_statement "local_30 = FUN_0001d3ac(param_1 + 1,0,10);" (assignment_expression "local_30 = FUN_0001d3ac(param_1 + 1,0,10)" (identifier "local_30") (= "=") (call_expression "FUN_0001d3ac(param_1 + 1,0,10)" (identifier "FUN_0001d3ac") (argument_list "(param_1 + 1,0,10)" (( "(") (binary_expression "param_1 + 1" (identifier "param_1") (+ "+") (number_literal "1")) (, ",") (number_literal "0") (, ",") (number_literal "10") () ")")))) (; ";")) (if_statement "if ((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }" (if "if") (parenthesized_expression "((**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0))" (( "(") (binary_expression "(**(int **)PTR_DAT_0012a214 == 0) &&\n         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)" (parenthesized_expression "(**(int **)PTR_DAT_0012a214 == 0)" (( "(") (binary_expression "**(int **)PTR_DAT_0012a214 == 0" (pointer_expression "**(int **)PTR_DAT_0012a214" (* "*") (pointer_expression "*(int **)PTR_DAT_0012a214" (* "*") (cast_expression "(int **)PTR_DAT_0012a214" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "PTR_DAT_0012a214")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)" (( "(") (comma_expression "piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0" (assignment_expression "piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30)" (identifier "piVar6") (= "=") (cast_expression "(int *)(*(code *)PTR_localtime_0012af6c)(&local_30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_localtime_0012af6c)(&local_30)" (parenthesized_expression "(*(code *)PTR_localtime_0012af6c)" (( "(") (pointer_expression "*(code *)PTR_localtime_0012af6c" (* "*") (cast_expression "(code *)PTR_localtime_0012af6c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_localtime_0012af6c"))) () ")")) (argument_list "(&local_30)" (( "(") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))))) (, ",") (binary_expression "piVar6 != (int *)0x0" (identifier "piVar6") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n        piVar5 = piVar6;\n        do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);\n        iVar3 = *piVar5;\n        iVar2 = piVar4[6];\n        piVar10[5] = piVar4[5];\n        piVar10[4] = iVar3;\n        piVar10[6] = iVar2;\n        if (local_2c == *(int *)puVar1) {\n          return;\n        }\n        goto LAB_0001cb78;\n      }" ({ "{") (expression_statement "piVar5 = piVar6;" (assignment_expression "piVar5 = piVar6" (identifier "piVar5") (= "=") (identifier "piVar6")) (; ";")) (do_statement "do {\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        } while (piVar5 != piVar6 + 8);" (do "do") (compound_statement "{\n          piVar10 = param_2;\n          piVar4 = piVar5;\n          piVar5 = piVar4 + 4;\n          iVar9 = piVar4[1];\n          iVar3 = piVar4[2];\n          iVar2 = piVar4[3];\n          *piVar10 = *piVar4;\n          piVar10[1] = iVar9;\n          piVar10[2] = iVar3;\n          piVar10[3] = iVar2;\n          param_2 = piVar10 + 4;\n        }" ({ "{") (expression_statement "piVar10 = param_2;" (assignment_expression "piVar10 = param_2" (identifier "piVar10") (= "=") (identifier "param_2")) (; ";")) (expression_statement "piVar4 = piVar5;" (assignment_expression "piVar4 = piVar5" (identifier "piVar4") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "piVar5 = piVar4 + 4;" (assignment_expression "piVar5 = piVar4 + 4" (identifier "piVar5") (= "=") (binary_expression "piVar4 + 4" (identifier "piVar4") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar9 = piVar4[1];" (assignment_expression "iVar9 = piVar4[1]" (identifier "iVar9") (= "=") (subscript_expression "piVar4[1]" (identifier "piVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "iVar3 = piVar4[2];" (assignment_expression "iVar3 = piVar4[2]" (identifier "iVar3") (= "=") (subscript_expression "piVar4[2]" (identifier "piVar4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "iVar2 = piVar4[3];" (assignment_expression "iVar2 = piVar4[3]" (identifier "iVar2") (= "=") (subscript_expression "piVar4[3]" (identifier "piVar4") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*piVar10 = *piVar4;" (assignment_expression "*piVar10 = *piVar4" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (pointer_expression "*piVar4" (* "*") (identifier "piVar4"))) (; ";")) (expression_statement "piVar10[1] = iVar9;" (assignment_expression "piVar10[1] = iVar9" (subscript_expression "piVar10[1]" (identifier "piVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "piVar10[2] = iVar3;" (assignment_expression "piVar10[2] = iVar3" (subscript_expression "piVar10[2]" (identifier "piVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "piVar10[3] = iVar2;" (assignment_expression "piVar10[3] = iVar2" (subscript_expression "piVar10[3]" (identifier "piVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "param_2 = piVar10 + 4;" (assignment_expression "param_2 = piVar10 + 4" (identifier "param_2") (= "=") (binary_expression "piVar10 + 4" (identifier "piVar10") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar5 != piVar6 + 8)" (( "(") (binary_expression "piVar5 != piVar6 + 8" (identifier "piVar5") (!= "!=") (binary_expression "piVar6 + 8" (identifier "piVar6") (+ "+") (number_literal "8"))) () ")")) (; ";")) (expression_statement "iVar3 = *piVar5;" (assignment_expression "iVar3 = *piVar5" (identifier "iVar3") (= "=") (pointer_expression "*piVar5" (* "*") (identifier "piVar5"))) (; ";")) (expression_statement "iVar2 = piVar4[6];" (assignment_expression "iVar2 = piVar4[6]" (identifier "iVar2") (= "=") (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "piVar10[5] = piVar4[5];" (assignment_expression "piVar10[5] = piVar4[5]" (subscript_expression "piVar10[5]" (identifier "piVar10") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "piVar4[5]" (identifier "piVar4") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "piVar10[4] = iVar3;" (assignment_expression "piVar10[4] = iVar3" (subscript_expression "piVar10[4]" (identifier "piVar10") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "piVar10[6] = iVar2;" (assignment_expression "piVar10[6] = iVar2" (subscript_expression "piVar10[6]" (identifier "piVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar2")) (; ";")) (if_statement "if (local_2c == *(int *)puVar1) {\n          return;\n        }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar1)" (( "(") (binary_expression "local_2c == *(int *)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_0001cb78;" (goto "goto") (statement_identifier "LAB_0001cb78") (; ";")) (} "}"))) (expression_statement "local_31 = '1';" (assignment_expression "local_31 = '1'" (identifier "local_31") (= "=") (char_literal "'1'" (' "'") (character "1") (' "'"))) (; ";")) (expression_statement "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" (call_expression "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1)" (identifier "FUN_00019224") (argument_list "(PTR_s_invalid_date___s__0012a2cc,param_1)" (( "(") (identifier "PTR_s_invalid_date___s__0012a2cc") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "iVar2 = unaff_s7;" (assignment_expression "iVar2 = unaff_s7" (identifier "iVar2") (= "=") (identifier "unaff_s7")) (; ";")) (labeled_statement "LAB_0001cba8:\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);" (statement_identifier "LAB_0001cba8") (: ":") (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,\n                         unaff_s5,unaff_s3)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x8d4" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x8d4")) (, ",") (binary_expression "param_2 + 5" (identifier "param_2") (+ "+") (number_literal "5")) (, ",") (identifier "unaff_s8") (, ",") (identifier "unaff_s6") (, ",") (identifier "unaff_s4") (, ",") (identifier "unaff_s5") (, ",") (identifier "unaff_s3") () ")")))) (; ";"))) (if_statement "if ((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }" (if "if") (parenthesized_expression "((4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3))" (( "(") (binary_expression "(4 < iVar3) ||\n         (iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)" (parenthesized_expression "(4 < iVar3)" (( "(") (binary_expression "4 < iVar3" (number_literal "4") (< "<") (identifier "iVar3")) () ")")) (|| "||") (parenthesized_expression "(iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)" (( "(") (comma_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,\n                             unaff_s4,unaff_s5,unaff_s3)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x8c0" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x8c0")) (, ",") (binary_expression "param_2 + 5" (identifier "param_2") (+ "+") (number_literal "5")) (, ",") (identifier "unaff_s8") (, ",") (identifier "unaff_s6") (, ",") (identifier "unaff_s4") (, ",") (identifier "unaff_s5") (, ",") (identifier "unaff_s3") () ")")))) (, ",") (binary_expression "4 < iVar3" (number_literal "4") (< "<") (identifier "iVar3"))) () ")"))) () ")")) (compound_statement "{\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n        goto LAB_0001cc04;\n      }" ({ "{") (expression_statement "param_2[5] = param_2[5] + -0x76c;" (assignment_expression "param_2[5] = param_2[5] + -0x76c" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "param_2[5] + -0x76c" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "-0x76c"))) (; ";")) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (goto_statement "goto LAB_0001cc04;" (goto "goto") (statement_identifier "LAB_0001cc04") (; ";")) (} "}"))) (expression_statement "pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);" (assignment_expression "pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" (identifier "pcVar7") (= "=") (cast_expression "(char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" (parenthesized_expression "(*(code *)PTR_strptime_0012b0a0)" (( "(") (pointer_expression "*(code *)PTR_strptime_0012b0a0" (* "*") (cast_expression "(code *)PTR_strptime_0012b0a0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strptime_0012b0a0"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8ac,param_2)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x8ac" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x8ac")) (, ",") (identifier "param_2") () ")"))))) (; ";")) (if_statement "if (pcVar7 == (char *)0x0) goto LAB_0001c96c;" (if "if") (parenthesized_expression "(pcVar7 == (char *)0x0)" (( "(") (binary_expression "pcVar7 == (char *)0x0" (identifier "pcVar7") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0001c96c;" (goto "goto") (statement_identifier "LAB_0001c96c") (; ";"))) (expression_statement "cVar8 = *pcVar7;" (assignment_expression "cVar8 = *pcVar7" (identifier "cVar8") (= "=") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7"))) (; ";")) (} "}")) (else_clause "else {\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }" (else "else") (compound_statement "{\n      unaff_s5 = param_2 + 5;\n      unaff_s6 = param_2 + 4;\n      unaff_s3 = param_2 + 3;\n      unaff_s4 = (int *)&local_31;\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);\n      if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;\n      param_2[5] = param_2[5] + -0x76c;\n      param_2[4] = param_2[4] + -1;\n      cVar8 = local_31;\n    }" ({ "{") (expression_statement "unaff_s5 = param_2 + 5;" (assignment_expression "unaff_s5 = param_2 + 5" (identifier "unaff_s5") (= "=") (binary_expression "param_2 + 5" (identifier "param_2") (+ "+") (number_literal "5"))) (; ";")) (expression_statement "unaff_s6 = param_2 + 4;" (assignment_expression "unaff_s6 = param_2 + 4" (identifier "unaff_s6") (= "=") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "unaff_s3 = param_2 + 3;" (assignment_expression "unaff_s3 = param_2 + 3" (identifier "unaff_s3") (= "=") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "unaff_s4 = (int *)&local_31;" (assignment_expression "unaff_s4 = (int *)&local_31" (identifier "unaff_s4") (= "=") (cast_expression "(int *)&local_31" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_31" (& "&") (identifier "local_31")))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,\n                         unaff_s4)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x8a0" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x8a0")) (, ",") (identifier "unaff_s5") (, ",") (identifier "unaff_s6") (, ",") (identifier "unaff_s3") (, ",") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2")) (, ",") (identifier "unaff_s4") () ")")))) (; ";")) (if_statement "if ((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)) goto LAB_0001c77c;" (if "if") (parenthesized_expression "((iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3))" (( "(") (binary_expression "(iVar2 < 4) &&\n         (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)" (parenthesized_expression "(iVar2 < 4)" (( "(") (binary_expression "iVar2 < 4" (identifier "iVar2") (< "<") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3)" (( "(") (comma_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)\n         , iVar2 < 3" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x890" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x890")) (, ",") (identifier "unaff_s5") (, ",") (identifier "unaff_s6") (, ",") (identifier "unaff_s3") (, ",") (identifier "unaff_s4") () ")")))) (, ",") (binary_expression "iVar2 < 3" (identifier "iVar2") (< "<") (number_literal "3"))) () ")"))) () ")")) (goto_statement "goto LAB_0001c77c;" (goto "goto") (statement_identifier "LAB_0001c77c") (; ";"))) (expression_statement "param_2[5] = param_2[5] + -0x76c;" (assignment_expression "param_2[5] = param_2[5] + -0x76c" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "param_2[5] + -0x76c" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "-0x76c"))) (; ";")) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar8 = local_31;" (assignment_expression "cVar8 = local_31" (identifier "cVar8") (= "=") (identifier "local_31")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }" (else "else") (compound_statement "{\n    unaff_s4 = param_2 + 2;\n    unaff_s5 = param_2 + 1;\n    unaff_s3 = (int *)&local_31;\n    iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);\n    if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }\nLAB_0001cc04:\n    cVar8 = local_31;\n    if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }\n  }" ({ "{") (expression_statement "unaff_s4 = param_2 + 2;" (assignment_expression "unaff_s4 = param_2 + 2" (identifier "unaff_s4") (= "=") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "unaff_s5 = param_2 + 1;" (assignment_expression "unaff_s5 = param_2 + 1" (identifier "unaff_s5") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "unaff_s3 = (int *)&local_31;" (assignment_expression "unaff_s3 = (int *)&local_31" (identifier "unaff_s3") (= "=") (cast_expression "(int *)&local_31" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_31" (& "&") (identifier "local_31")))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x8ec" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x8ec")) (, ",") (identifier "unaff_s4") (, ",") (identifier "unaff_s5") (, ",") (identifier "unaff_s3") () ")")))) (; ";")) (if_statement "if (iVar3 < 2) {\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }" (if "if") (parenthesized_expression "(iVar3 < 2)" (( "(") (binary_expression "iVar3 < 2" (identifier "iVar3") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      unaff_s8 = param_2 + 4;\n      unaff_s6 = param_2 + 3;\n      iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);\n      if (iVar3 < 4) goto LAB_0001cba8;\n      param_2[4] = param_2[4] + -1;\n    }" ({ "{") (expression_statement "unaff_s8 = param_2 + 4;" (assignment_expression "unaff_s8 = param_2 + 4" (identifier "unaff_s8") (= "=") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "unaff_s6 = param_2 + 3;" (assignment_expression "unaff_s6 = param_2 + 3" (identifier "unaff_s6") (= "=") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3);" (assignment_expression "iVar3 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,\n                         unaff_s3)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x8e4" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x8e4")) (, ",") (identifier "unaff_s8") (, ",") (identifier "unaff_s6") (, ",") (identifier "unaff_s4") (, ",") (identifier "unaff_s5") (, ",") (identifier "unaff_s3") () ")")))) (; ";")) (if_statement "if (iVar3 < 4) goto LAB_0001cba8;" (if "if") (parenthesized_expression "(iVar3 < 4)" (( "(") (binary_expression "iVar3 < 4" (identifier "iVar3") (< "<") (number_literal "4")) () ")")) (goto_statement "goto LAB_0001cba8;" (goto "goto") (statement_identifier "LAB_0001cba8") (; ";"))) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (labeled_statement "LAB_0001cc04:\n    cVar8 = local_31;" (statement_identifier "LAB_0001cc04") (: ":") (expression_statement "cVar8 = local_31;" (assignment_expression "cVar8 = local_31" (identifier "cVar8") (= "=") (identifier "local_31")) (; ";"))) (if_statement "if ((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)) {\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }" (if "if") (parenthesized_expression "((local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1))" (( "(") (binary_expression "(local_31 == ':') &&\n       (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)" (parenthesized_expression "(local_31 == ':')" (( "(") (binary_expression "local_31 == ':'" (identifier "local_31") (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1)" (( "(") (comma_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,\n       iVar2 == 1" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3)" (( "(") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) (, ",") (binary_expression "PTR_UINT_0012a18c + -0x8b4" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x8b4")) (, ",") (identifier "param_2") (, ",") (identifier "unaff_s3") () ")")))) (, ",") (comma_expression "cVar8 = local_31,\n       iVar2 == 1" (assignment_expression "cVar8 = local_31" (identifier "cVar8") (= "=") (identifier "local_31")) (, ",") (binary_expression "iVar2 == 1" (identifier "iVar2") (== "==") (number_literal "1")))) () ")"))) () ")")) (compound_statement "{\n      if (local_2c == *(int *)puVar1) {\n        return;\n      }\n      goto LAB_0001cb78;\n    }" ({ "{") (if_statement "if (local_2c == *(int *)puVar1) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar1)" (( "(") (binary_expression "local_2c == *(int *)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_0001cb78;" (goto "goto") (statement_identifier "LAB_0001cb78") (; ";")) (} "}"))) (} "}")))) (while_statement "while (cVar8 != '\0') {\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }" (while "while") (parenthesized_expression "(cVar8 != '\0')" (( "(") (binary_expression "cVar8 != '\0'" (identifier "cVar8") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\nLAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }\nLAB_0001c904:\n    *param_2 = 0;\n    if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }\n    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;\n  }" ({ "{") (labeled_statement "LAB_0001c96c:\n    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" (statement_identifier "LAB_0001c96c") (: ":") (expression_statement "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" (call_expression "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1)" (identifier "FUN_00019224") (argument_list "(PTR_s_invalid_date___s__0012a2cc,param_1)" (( "(") (identifier "PTR_s_invalid_date___s__0012a2cc") (, ",") (identifier "param_1") () ")"))) (; ";"))) (labeled_statement "LAB_0001c974:\n    if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" (statement_identifier "LAB_0001c974") (: ":") (if_statement "if (unaff_s5 == (int *)&DAT_00000004) {\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }\n    else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" (if "if") (parenthesized_expression "(unaff_s5 == (int *)&DAT_00000004)" (( "(") (binary_expression "unaff_s5 == (int *)&DAT_00000004" (identifier "unaff_s5") (== "==") (cast_expression "(int *)&DAT_00000004" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000004" (& "&") (identifier "DAT_00000004")))) () ")")) (compound_statement "{\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);\n      if (iVar2 < 2) goto LAB_0001c96c;\n    }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x87b" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x87b")) (, ",") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2")) (, ",") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_31" (& "&") (identifier "local_31")) () ")")))) (; ";")) (if_statement "if (iVar2 < 2) goto LAB_0001c96c;" (if "if") (parenthesized_expression "(iVar2 < 2)" (( "(") (binary_expression "iVar2 < 2" (identifier "iVar2") (< "<") (number_literal "2")) () ")")) (goto_statement "goto LAB_0001c96c;" (goto "goto") (statement_identifier "LAB_0001c96c") (; ";"))) (} "}")) (else_clause "else {\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" (else "else") (compound_statement "{\n      if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }\n      if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }\n    }" ({ "{") (if_statement "if (unaff_s5 == (int *)&DAT_00000006) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }" (if "if") (parenthesized_expression "(unaff_s5 == (int *)&DAT_00000006)" (( "(") (binary_expression "unaff_s5 == (int *)&DAT_00000006" (identifier "unaff_s5") (== "==") (cast_expression "(int *)&DAT_00000006" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000006" (& "&") (identifier "DAT_00000006")))) () ")")) (compound_statement "{\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);\n        if (2 < iVar2) goto LAB_0001c904;\n        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);\n      }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,\n                           &local_31)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x87e" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x87e")) (, ",") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) (, ",") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2")) (, ",") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_31" (& "&") (identifier "local_31")) () ")")))) (; ";")) (if_statement "if (2 < iVar2) goto LAB_0001c904;" (if "if") (parenthesized_expression "(2 < iVar2)" (( "(") (binary_expression "2 < iVar2" (number_literal "2") (< "<") (identifier "iVar2")) () ")")) (goto_statement "goto LAB_0001c904;" (goto "goto") (statement_identifier "LAB_0001c904") (; ";"))) (expression_statement "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);" (call_expression "FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1)" (identifier "FUN_00019224") (argument_list "(PTR_s_invalid_date___s__0012a2cc,param_1)" (( "(") (identifier "PTR_s_invalid_date___s__0012a2cc") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (if_statement "if (unaff_s5 == (int *)&DAT_00000008) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }\n      else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" (if "if") (parenthesized_expression "(unaff_s5 == (int *)&DAT_00000008)" (( "(") (binary_expression "unaff_s5 == (int *)&DAT_00000008" (identifier "unaff_s5") (== "==") (cast_expression "(int *)&DAT_00000008" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_00000008" (& "&") (identifier "DAT_00000008")))) () ")")) (compound_statement "{\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);\n        if (iVar2 < 4) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n      }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,\n                           param_2 + 1,&local_31)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x881" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x881")) (, ",") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) (, ",") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) (, ",") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2")) (, ",") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_31" (& "&") (identifier "local_31")) () ")")))) (; ";")) (if_statement "if (iVar2 < 4) goto LAB_0001c96c;" (if "if") (parenthesized_expression "(iVar2 < 4)" (( "(") (binary_expression "iVar2 < 4" (identifier "iVar2") (< "<") (number_literal "4")) () ")")) (goto_statement "goto LAB_0001c96c;" (goto "goto") (statement_identifier "LAB_0001c96c") (; ";"))) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" (else "else") (if_statement "if (unaff_s5 == (int *)&DAT_0000000a) {\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }\n      else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" (if "if") (parenthesized_expression "(unaff_s5 == (int *)&DAT_0000000a)" (( "(") (binary_expression "unaff_s5 == (int *)&DAT_0000000a" (identifier "unaff_s5") (== "==") (cast_expression "(int *)&DAT_0000000a" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a")))) () ")")) (compound_statement "{\n        iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);\n        if (iVar2 < 5) goto LAB_0001c96c;\n        param_2[4] = param_2[4] + -1;\n        if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }\n      }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31);" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,\n                           param_2 + 2,param_2 + 1,&local_31)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x884" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x884")) (, ",") (binary_expression "param_2 + 5" (identifier "param_2") (+ "+") (number_literal "5")) (, ",") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) (, ",") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) (, ",") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2")) (, ",") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_31" (& "&") (identifier "local_31")) () ")")))) (; ";")) (if_statement "if (iVar2 < 5) goto LAB_0001c96c;" (if "if") (parenthesized_expression "(iVar2 < 5)" (( "(") (binary_expression "iVar2 < 5" (identifier "iVar2") (< "<") (number_literal "5")) () ")")) (goto_statement "goto LAB_0001c96c;" (goto "goto") (statement_identifier "LAB_0001c96c") (; ";"))) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (0x31 < (int)unaff_s4) {\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }" (if "if") (parenthesized_expression "(0x31 < (int)unaff_s4)" (( "(") (binary_expression "0x31 < (int)unaff_s4" (number_literal "0x31") (< "<") (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4"))) () ")")) (compound_statement "{\n          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);\n          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }\n          unaff_s4 = (int *)((int)unaff_s4 + 0x32);\n          if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }\n        }" ({ "{") (expression_statement "piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);" (assignment_expression "piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5])" (identifier "piVar6") (= "=") (cast_expression "(int *)(((uint)unaff_s4 / 100) * 100 + param_2[5])" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((uint)unaff_s4 / 100) * 100 + param_2[5])" (( "(") (binary_expression "((uint)unaff_s4 / 100) * 100 + param_2[5]" (binary_expression "((uint)unaff_s4 / 100) * 100" (parenthesized_expression "((uint)unaff_s4 / 100)" (( "(") (binary_expression "(uint)unaff_s4 / 100" (cast_expression "(uint)unaff_s4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "unaff_s4")) (/ "/") (number_literal "100")) () ")")) (* "*") (number_literal "100")) (+ "+") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]"))) () ")")))) (; ";")) (if_statement "if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }\n          else {\n            param_2[5] = (int)piVar6;\n          }" (if "if") (parenthesized_expression "(piVar6 < (int *)((int)unaff_s4 + -0x32))" (( "(") (binary_expression "piVar6 < (int *)((int)unaff_s4 + -0x32)" (identifier "piVar6") (< "<") (cast_expression "(int *)((int)unaff_s4 + -0x32)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + -0x32)" (( "(") (binary_expression "(int)unaff_s4 + -0x32" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "-0x32")) () ")")))) () ")")) (compound_statement "{\n            piVar6 = piVar6 + 0x19;\n            param_2[5] = (int)piVar6;\n          }" ({ "{") (expression_statement "piVar6 = piVar6 + 0x19;" (assignment_expression "piVar6 = piVar6 + 0x19" (identifier "piVar6") (= "=") (binary_expression "piVar6 + 0x19" (identifier "piVar6") (+ "+") (number_literal "0x19"))) (; ";")) (expression_statement "param_2[5] = (int)piVar6;" (assignment_expression "param_2[5] = (int)piVar6" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (} "}")) (else_clause "else {\n            param_2[5] = (int)piVar6;\n          }" (else "else") (compound_statement "{\n            param_2[5] = (int)piVar6;\n          }" ({ "{") (expression_statement "param_2[5] = (int)piVar6;" (assignment_expression "param_2[5] = (int)piVar6" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int)piVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar6"))) (; ";")) (} "}")))) (expression_statement "unaff_s4 = (int *)((int)unaff_s4 + 0x32);" (assignment_expression "unaff_s4 = (int *)((int)unaff_s4 + 0x32)" (identifier "unaff_s4") (= "=") (cast_expression "(int *)((int)unaff_s4 + 0x32)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x32)" (( "(") (binary_expression "(int)unaff_s4 + 0x32" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x32")) () ")")))) (; ";")) (if_statement "if (unaff_s4 < piVar6) {\n            param_2[5] = (int)(piVar6 + -0x19);\n          }" (if "if") (parenthesized_expression "(unaff_s4 < piVar6)" (( "(") (binary_expression "unaff_s4 < piVar6" (identifier "unaff_s4") (< "<") (identifier "piVar6")) () ")")) (compound_statement "{\n            param_2[5] = (int)(piVar6 + -0x19);\n          }" ({ "{") (expression_statement "param_2[5] = (int)(piVar6 + -0x19);" (assignment_expression "param_2[5] = (int)(piVar6 + -0x19)" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(int)(piVar6 + -0x19)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar6 + -0x19)" (( "(") (binary_expression "piVar6 + -0x19" (identifier "piVar6") (+ "+") (number_literal "-0x19")) () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" (else "else") (compound_statement "{\nLAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;\n        param_2[5] = param_2[5] + -0x76c;\n        param_2[4] = param_2[4] + -1;\n      }" ({ "{") (labeled_statement "LAB_0001c89c:\n        if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;" (statement_identifier "LAB_0001c89c") (: ":") (if_statement "if ((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))\n        goto LAB_0001c96c;" (if "if") (parenthesized_expression "((unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))" (( "(") (binary_expression "(unaff_s5 != (int *)&DAT_0000000c) ||\n           (iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5)" (parenthesized_expression "(unaff_s5 != (int *)&DAT_0000000c)" (( "(") (binary_expression "unaff_s5 != (int *)&DAT_0000000c" (identifier "unaff_s5") (!= "!=") (cast_expression "(int *)&DAT_0000000c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_0000000c" (& "&") (identifier "DAT_0000000c")))) () ")")) (|| "||") (parenthesized_expression "(iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5)" (( "(") (comma_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)\n                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,\n                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_UINT_0012a18c + -0x870" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x870")) (, ",") (binary_expression "param_2 + 5" (identifier "param_2") (+ "+") (number_literal "5")) (, ",") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) (, ",") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3")) (, ",") (binary_expression "param_2 + 2" (identifier "param_2") (+ "+") (number_literal "2")) (, ",") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_31" (& "&") (identifier "local_31")) () ")")))) (, ",") (binary_expression "iVar2 < 5" (identifier "iVar2") (< "<") (number_literal "5"))) () ")"))) () ")")) (goto_statement "goto LAB_0001c96c;" (goto "goto") (statement_identifier "LAB_0001c96c") (; ";")))) (expression_statement "param_2[5] = param_2[5] + -0x76c;" (assignment_expression "param_2[5] = param_2[5] + -0x76c" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "param_2[5] + -0x76c" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "-0x76c"))) (; ";")) (expression_statement "param_2[4] = param_2[4] + -1;" (assignment_expression "param_2[4] = param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "param_2[4] + -1" (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}")))))) (} "}"))))) (labeled_statement "LAB_0001c904:\n    *param_2 = 0;" (statement_identifier "LAB_0001c904") (: ":") (expression_statement "*param_2 = 0;" (assignment_expression "*param_2 = 0" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (number_literal "0")) (; ";"))) (if_statement "if (local_31 == '.') {\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }" (if "if") (parenthesized_expression "(local_31 == '.')" (( "(") (binary_expression "local_31 == '.'" (identifier "local_31") (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);\n      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;\n      if (iVar2 == 1) {\n        local_31 = '\0';\n      }\n      if (0x3c < *param_2) goto LAB_0001c96c;\n    }" ({ "{") (expression_statement "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);" (assignment_expression "iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_strchr_0012af54)(param_1,0x2e)" (parenthesized_expression "(*(code *)PTR_strchr_0012af54)" (( "(") (pointer_expression "*(code *)PTR_strchr_0012af54" (* "*") (cast_expression "(code *)PTR_strchr_0012af54" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strchr_0012af54"))) () ")")) (argument_list "(param_1,0x2e)" (( "(") (identifier "param_1") (, ",") (number_literal "0x2e") () ")")))) (; ";")) (expression_statement "iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)\n      ;" (assignment_expression "iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)" (identifier "iVar2") (= "=") (call_expression "(*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)" (parenthesized_expression "(*(code *)PTR_sscanf_0012ad98)" (( "(") (pointer_expression "*(code *)PTR_sscanf_0012ad98" (* "*") (cast_expression "(code *)PTR_sscanf_0012ad98" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sscanf_0012ad98"))) () ")")) (argument_list "(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)" (( "(") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) (, ",") (binary_expression "PTR_UINT_0012a18c + -0x8b4" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "-0x8b4")) (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_31" (& "&") (identifier "local_31")) () ")")))) (; ";")) (if_statement "if (iVar2 == 1) {\n        local_31 = '\0';\n      }" (if "if") (parenthesized_expression "(iVar2 == 1)" (( "(") (binary_expression "iVar2 == 1" (identifier "iVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        local_31 = '\0';\n      }" ({ "{") (expression_statement "local_31 = '\0';" (assignment_expression "local_31 = '\0'" (identifier "local_31") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (if_statement "if (0x3c < *param_2) goto LAB_0001c96c;" (if "if") (parenthesized_expression "(0x3c < *param_2)" (( "(") (binary_expression "0x3c < *param_2" (number_literal "0x3c") (< "<") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) () ")")) (goto_statement "goto LAB_0001c96c;" (goto "goto") (statement_identifier "LAB_0001c96c") (; ";"))) (} "}"))) (if_statement "if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;" (if "if") (parenthesized_expression "((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4]))" (( "(") (binary_expression "(((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||\n       (cVar8 = local_31, 0xb < param_2[4])" (parenthesized_expression "(((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3]))" (( "(") (binary_expression "((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])" (parenthesized_expression "((0x3b < param_2[1]) || (0x17 < param_2[2]))" (( "(") (binary_expression "(0x3b < param_2[1]) || (0x17 < param_2[2])" (parenthesized_expression "(0x3b < param_2[1])" (( "(") (binary_expression "0x3b < param_2[1]" (number_literal "0x3b") (< "<") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) () ")")) (|| "||") (parenthesized_expression "(0x17 < param_2[2])" (( "(") (binary_expression "0x17 < param_2[2]" (number_literal "0x17") (< "<") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(0x1f < param_2[3])" (( "(") (binary_expression "0x1f < param_2[3]" (number_literal "0x1f") (< "<") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(cVar8 = local_31, 0xb < param_2[4])" (( "(") (comma_expression "cVar8 = local_31, 0xb < param_2[4]" (assignment_expression "cVar8 = local_31" (identifier "cVar8") (= "=") (identifier "local_31")) (, ",") (binary_expression "0xb < param_2[4]" (number_literal "0xb") (< "<") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")))) () ")"))) () ")")) (goto_statement "goto LAB_0001c96c;" (goto "goto") (statement_identifier "LAB_0001c96c") (; ";"))) (} "}"))) (if_statement "if (local_2c == *(int *)puVar1) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar1)" (( "(") (binary_expression "local_2c == *(int *)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0001cb78:\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();" (statement_identifier "LAB_0001cb78") (: ":") (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0012b0c8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Removing unreachable block (ram,0x0001c9b8) */

void function_1(char *var_11,type_1 *ptm)

{
  type_2 *puVar1;
  int var_1;
  int var_3;
  int *var_12;
  char var_9;
  type_3 *var_7;
  char *var_4;
  int iVar8;
  type_1 *ptVar9;
  int *unaff_s3;
  int *var_8;
  int *var_15;
  int *var_14;
  char var_5;
  type_4 t;
  int var_6;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  var_5 = '\0';
  var_6 = *(int *)PTR___stack_chk_guard_0012b14c;
  var_1 = (*(type_5 *)PTR_strrchr_0012adbc)(var_11,0x3a);
  if (var_1 != 0) {
    var_8 = &ptm->tm_hour;
    var_12 = &ptm->tm_min;
    unaff_s3 = (int *)&var_5;
    var_3 = (*(type_5 *)PTR_sscanf_0012ad98)
                      (var_11,var_2 + -0x8ec,var_8,var_12,unaff_s3);
    if (var_3 < 2) {
      var_14 = &ptm->tm_mon;
      var_15 = &ptm->tm_mday;
      var_3 = (*(type_5 *)PTR_sscanf_0012ad98)
                        (var_11,var_2 + -0x8e4,var_14,var_15,var_8,var_12,
                         unaff_s3);
      if (var_3 < 4) {
        var_3 = (*(type_5 *)PTR_sscanf_0012ad98)
                          (var_11,var_2 + -0x8d4,&ptm->tm_year,var_14,var_15,
                           var_8,var_12,unaff_s3);
        if ((var_3 < 5) &&
           (var_3 = (*(type_5 *)PTR_sscanf_0012ad98)
                              (var_11,var_2 + -0x8c0,&ptm->tm_year,var_14,var_15,
                               var_8,var_12,unaff_s3), var_3 < 5)) {
          var_4 = (char *)(*(type_5 *)PTR_strptime_0012b0a0)(var_11,var_2 + -0x8ac,ptm)
          ;
          if (var_4 != (char *)0x0) {
            var_9 = *var_4;
            goto LAB_0001cb60;
          }
          goto LAB_0001c96c;
        }
        ptm->tm_year = ptm->tm_year + -0x76c;
        ptm->tm_mon = ptm->tm_mon + -1;
      }
      else {
        ptm->tm_mon = ptm->tm_mon + -1;
      }
    }
    var_9 = var_5;
    if (var_5 != ':') goto LAB_0001cb60;
    var_1 = (*(type_5 *)PTR_sscanf_0012ad98)(var_1 + 1,var_2 + -0x8b4,ptm,unaff_s3);
    var_9 = var_5;
    if (var_1 != 1) goto LAB_0001cb60;
    if (var_6 == *(int *)puVar1) {
      return;
    }
LAB_0001cb78:
    do {
      var_7 = (type_3 *)(*(type_5 *)PTR___stack_chk_fail_0012b0c8)();
LAB_0001cb80:
      var_7 = var_7 + 100;
      ptm->tm_year = (int)var_7;
LAB_0001cb04:
      var_8 = (int *)((int)var_8 + 0x32);
      if (var_8 < var_7) {
        ptm->tm_year = (int)(var_7 + -100);
      }
LAB_0001c904:
      ptm->tm_sec = 0;
      if (var_5 == '.') {
        var_1 = (*(type_5 *)PTR_strchr_0012af54)(var_11,0x2e);
        var_1 = (*(type_5 *)PTR_sscanf_0012ad98)(var_1 + 1,var_2 + -0x8b4,ptm,unaff_s3);
        if (var_1 == 1) {
          var_5 = '\0';
        }
        if (0x3c < ptm->tm_sec) goto LAB_0001c96c;
      }
      if ((((0x3b < ptm->tm_min) || (0x17 < ptm->tm_hour)) || (0x1f < ptm->tm_mday)) ||
         (var_9 = var_5, 0xb < ptm->tm_mon)) goto LAB_0001c96c;
LAB_0001cb60:
      if (var_9 != '\0') goto LAB_0001c96c;
      if (var_6 == *(int *)puVar1) {
        return;
      }
    } while( true );
  }
  var_1 = (*(type_5 *)PTR_strchr_0012af54)(var_11,0x2d);
  if (var_1 != 0) {
    unaff_s3 = &ptm->tm_mday;
    var_8 = (int *)&var_5;
    var_1 = (*(type_5 *)PTR_sscanf_0012ad98)
                      (var_11,var_2 + -0x8a0,&ptm->tm_year,&ptm->tm_mon,unaff_s3,
                       &ptm->tm_hour,var_8);
    if ((3 < var_1) ||
       (var_1 = (*(type_5 *)PTR_sscanf_0012ad98)
                          (var_11,var_2 + -0x890,&ptm->tm_year,&ptm->tm_mon,unaff_s3,
                           var_8), 2 < var_1)) {
      ptm->tm_year = ptm->tm_year + -0x76c;
      ptm->tm_mon = ptm->tm_mon + -1;
      var_9 = var_5;
      goto LAB_0001cb60;
    }
  }
  if (*var_11 == '@') {
    t = var_10(var_11 + 1,(char **)0x0,10);
    if ((**(int **)PTR_bb_errno_0012a214 != 0) ||
       (var_12 = (int *)(*(type_5 *)PTR_localtime_0012af6c)(&t), var_12 == (int *)0x0)) {
                    /* WARNING: Subroutine does not return */
      var_5 = '1';
      var_13(PTR_bb_msg_invalid_date_0012a2cc,var_11);
    }
    var_15 = var_12;
    do {
      ptVar9 = ptm;
      var_14 = var_15;
      var_15 = var_14 + 4;
      ptm = (type_1 *)&ptVar9->tm_mon;
      iVar8 = var_14[1];
      var_3 = var_14[2];
      var_1 = var_14[3];
      ptVar9->tm_sec = *var_14;
      ptVar9->tm_min = iVar8;
      ptVar9->tm_hour = var_3;
      ptVar9->tm_mday = var_1;
    } while (var_15 != var_12 + 8);
    var_3 = *var_15;
    var_1 = var_14[6];
    ptVar9->tm_year = var_14[5];
    *(int *)ptm = var_3;
    ptVar9->tm_wday = var_1;
    if (var_6 == *(int *)puVar1) {
      return;
    }
    goto LAB_0001cb78;
  }
  var_8 = (int *)ptm->tm_year;
  var_1 = (*(type_5 *)PTR_strchrnul_0012b160)(var_11,0x2e);
  var_1 = var_1 - (int)var_11;
  if (var_1 == 2) {
    unaff_s3 = (int *)&var_5;
    var_3 = (*(type_5 *)PTR_sscanf_0012ad98)
                      (var_11,var_2 + -0x878,&ptm->tm_min,unaff_s3);
    if (0 < var_3) goto LAB_0001c904;
  }
  else {
    if (var_1 == 4) {
      unaff_s3 = (int *)&var_5;
      var_1 = (*(type_5 *)PTR_sscanf_0012ad98)
                        (var_11,var_2 + -0x87b,&ptm->tm_hour,&ptm->tm_min,unaff_s3);
      if (1 < var_1) goto LAB_0001c904;
      goto LAB_0001c96c;
    }
    if (var_1 == 6) {
      unaff_s3 = (int *)&var_5;
      var_1 = (*(type_5 *)PTR_sscanf_0012ad98)
                        (var_11,var_2 + -0x87e,&ptm->tm_mday,&ptm->tm_hour,
                         &ptm->tm_min,unaff_s3);
      if (2 < var_1) goto LAB_0001c904;
                    /* WARNING: Subroutine does not return */
      var_13(PTR_bb_msg_invalid_date_0012a2cc,var_11);
    }
    if (var_1 == 8) {
      unaff_s3 = (int *)&var_5;
      var_1 = (*(type_5 *)PTR_sscanf_0012ad98)
                        (var_11,var_2 + -0x881,&ptm->tm_mon,&ptm->tm_mday,
                         &ptm->tm_hour,&ptm->tm_min,unaff_s3);
      if (3 < var_1) {
        ptm->tm_mon = ptm->tm_mon + -1;
        goto LAB_0001c904;
      }
      goto LAB_0001c96c;
    }
    if (var_1 == 10) {
      unaff_s3 = (int *)&var_5;
      var_1 = (*(type_5 *)PTR_sscanf_0012ad98)
                        (var_11,var_2 + -0x884,&ptm->tm_year,&ptm->tm_mon,
                         &ptm->tm_mday,&ptm->tm_hour,&ptm->tm_min,unaff_s3);
      if (4 < var_1) {
        ptm->tm_mon = ptm->tm_mon + -1;
        if ((int)var_8 < 0x32) goto LAB_0001c904;
        var_7 = (type_3 *)(((type_6)var_8 / 100) * 100 + ptm->tm_year);
        if (var_7 < (type_3 *)((int)var_8 - 0x32U)) goto LAB_0001cb80;
        ptm->tm_year = (int)var_7;
        goto LAB_0001cb04;
      }
      goto LAB_0001c96c;
    }
  }
  if (var_1 == 0xc) {
    unaff_s3 = (int *)&var_5;
    var_1 = (*(type_5 *)PTR_sscanf_0012ad98)
                      (var_11,var_2 + -0x870,&ptm->tm_year,&ptm->tm_mon,&ptm->tm_mday,
                       &ptm->tm_hour,&ptm->tm_min,unaff_s3);
    if (4 < var_1) {
      ptm->tm_year = ptm->tm_year + -0x76c;
      ptm->tm_mon = ptm->tm_mon + -1;
      goto LAB_0001c904;
    }
  }
LAB_0001c96c:
                    /* WARNING: Subroutine does not return */
  var_13(PTR_bb_msg_invalid_date_0012a2cc,var_11);
}


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

/* WARNING: Removing unreachable block (ram,0x0001c9b8) */

void MASKED(char *param_1,int *param_2)

{
  undefined *puVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  int *piVar5;
  int *piVar6;
  char cVar8;
  char *pcVar7;
  int iVar9;
  int *piVar10;
  int *unaff_s3;
  int *unaff_s4;
  int *unaff_s5;
  int *unaff_s6;
  int unaff_s7;
  int *unaff_s8;
  undefined1 local_31;
  undefined4 local_30;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0012b14c;
  local_31 = '\0';
  local_2c = *(int *)PTR___stack_chk_guard_0012b14c;
  iVar2 = (*(code *)PTR_strrchr_0012adbc)(param_1,0x3a);
  if (iVar2 == 0) {
    iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2d);
    if (iVar2 == 0) {
LAB_0001c77c:
      if (*param_1 != '@') {
        unaff_s4 = (int *)param_2[5];
        iVar2 = (*(code *)PTR_strchrnul_0012b160)(param_1,0x2e);
        unaff_s5 = (int *)(iVar2 - (int)param_1);
        if (unaff_s5 != (int *)&SUB_00000002) goto LAB_0001c974;
        iVar2 = (*(code *)PTR_sscanf_0012ad98)
                          (param_1,PTR_UINT_0012a18c + -0x878,param_2 + 1,&local_31);
        if (0 < iVar2) goto LAB_0001c904;
        goto LAB_0001c89c;
      }
      local_30 = FUN_0001d3ac(param_1 + 1,0,10);
      if ((**(int **)PTR_DAT_0012a214 == 0) &&
         (piVar6 = (int *)(*(code *)PTR_localtime_0012af6c)(&local_30), piVar6 != (int *)0x0)) {
        piVar5 = piVar6;
        do {
          piVar10 = param_2;
          piVar4 = piVar5;
          piVar5 = piVar4 + 4;
          iVar9 = piVar4[1];
          iVar3 = piVar4[2];
          iVar2 = piVar4[3];
          *piVar10 = *piVar4;
          piVar10[1] = iVar9;
          piVar10[2] = iVar3;
          piVar10[3] = iVar2;
          param_2 = piVar10 + 4;
        } while (piVar5 != piVar6 + 8);
        iVar3 = *piVar5;
        iVar2 = piVar4[6];
        piVar10[5] = piVar4[5];
        piVar10[4] = iVar3;
        piVar10[6] = iVar2;
        if (local_2c == *(int *)puVar1) {
          return;
        }
        goto LAB_0001cb78;
      }
      local_31 = '1';
      FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);
      iVar2 = unaff_s7;
LAB_0001cba8:
      iVar3 = (*(code *)PTR_sscanf_0012ad98)
                        (param_1,PTR_UINT_0012a18c + -0x8d4,param_2 + 5,unaff_s8,unaff_s6,unaff_s4,
                         unaff_s5,unaff_s3);
      if ((4 < iVar3) ||
         (iVar3 = (*(code *)PTR_sscanf_0012ad98)
                            (param_1,PTR_UINT_0012a18c + -0x8c0,param_2 + 5,unaff_s8,unaff_s6,
                             unaff_s4,unaff_s5,unaff_s3), 4 < iVar3)) {
        param_2[5] = param_2[5] + -0x76c;
        param_2[4] = param_2[4] + -1;
        goto LAB_0001cc04;
      }
      pcVar7 = (char *)(*(code *)PTR_strptime_0012b0a0)(param_1,PTR_UINT_0012a18c + -0x8ac,param_2);
      if (pcVar7 == (char *)0x0) goto LAB_0001c96c;
      cVar8 = *pcVar7;
    }
    else {
      unaff_s5 = param_2 + 5;
      unaff_s6 = param_2 + 4;
      unaff_s3 = param_2 + 3;
      unaff_s4 = (int *)&local_31;
      iVar2 = (*(code *)PTR_sscanf_0012ad98)
                        (param_1,PTR_UINT_0012a18c + -0x8a0,unaff_s5,unaff_s6,unaff_s3,param_2 + 2,
                         unaff_s4);
      if ((iVar2 < 4) &&
         (iVar2 = (*(code *)PTR_sscanf_0012ad98)
                            (param_1,PTR_UINT_0012a18c + -0x890,unaff_s5,unaff_s6,unaff_s3,unaff_s4)
         , iVar2 < 3)) goto LAB_0001c77c;
      param_2[5] = param_2[5] + -0x76c;
      param_2[4] = param_2[4] + -1;
      cVar8 = local_31;
    }
  }
  else {
    unaff_s4 = param_2 + 2;
    unaff_s5 = param_2 + 1;
    unaff_s3 = (int *)&local_31;
    iVar3 = (*(code *)PTR_sscanf_0012ad98)
                      (param_1,PTR_UINT_0012a18c + -0x8ec,unaff_s4,unaff_s5,unaff_s3);
    if (iVar3 < 2) {
      unaff_s8 = param_2 + 4;
      unaff_s6 = param_2 + 3;
      iVar3 = (*(code *)PTR_sscanf_0012ad98)
                        (param_1,PTR_UINT_0012a18c + -0x8e4,unaff_s8,unaff_s6,unaff_s4,unaff_s5,
                         unaff_s3);
      if (iVar3 < 4) goto LAB_0001cba8;
      param_2[4] = param_2[4] + -1;
    }
LAB_0001cc04:
    cVar8 = local_31;
    if ((local_31 == ':') &&
       (iVar2 = (*(code *)PTR_sscanf_0012ad98)
                          (iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,unaff_s3), cVar8 = local_31,
       iVar2 == 1)) {
      if (local_2c == *(int *)puVar1) {
        return;
      }
      goto LAB_0001cb78;
    }
  }
  while (cVar8 != '\0') {
LAB_0001c96c:
    FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);
LAB_0001c974:
    if (unaff_s5 == (int *)&DAT_00000004) {
      iVar2 = (*(code *)PTR_sscanf_0012ad98)
                        (param_1,PTR_UINT_0012a18c + -0x87b,param_2 + 2,param_2 + 1,&local_31);
      if (iVar2 < 2) goto LAB_0001c96c;
    }
    else {
      if (unaff_s5 == (int *)&DAT_00000006) {
        iVar2 = (*(code *)PTR_sscanf_0012ad98)
                          (param_1,PTR_UINT_0012a18c + -0x87e,param_2 + 3,param_2 + 2,param_2 + 1,
                           &local_31);
        if (2 < iVar2) goto LAB_0001c904;
        FUN_00019224(PTR_s_invalid_date___s__0012a2cc,param_1);
      }
      if (unaff_s5 == (int *)&DAT_00000008) {
        iVar2 = (*(code *)PTR_sscanf_0012ad98)
                          (param_1,PTR_UINT_0012a18c + -0x881,param_2 + 4,param_2 + 3,param_2 + 2,
                           param_2 + 1,&local_31);
        if (iVar2 < 4) goto LAB_0001c96c;
        param_2[4] = param_2[4] + -1;
      }
      else if (unaff_s5 == (int *)&DAT_0000000a) {
        iVar2 = (*(code *)PTR_sscanf_0012ad98)
                          (param_1,PTR_UINT_0012a18c + -0x884,param_2 + 5,param_2 + 4,param_2 + 3,
                           param_2 + 2,param_2 + 1,&local_31);
        if (iVar2 < 5) goto LAB_0001c96c;
        param_2[4] = param_2[4] + -1;
        if (0x31 < (int)unaff_s4) {
          piVar6 = (int *)(((uint)unaff_s4 / 100) * 100 + param_2[5]);
          if (piVar6 < (int *)((int)unaff_s4 + -0x32)) {
            piVar6 = piVar6 + 0x19;
            param_2[5] = (int)piVar6;
          }
          else {
            param_2[5] = (int)piVar6;
          }
          unaff_s4 = (int *)((int)unaff_s4 + 0x32);
          if (unaff_s4 < piVar6) {
            param_2[5] = (int)(piVar6 + -0x19);
          }
        }
      }
      else {
LAB_0001c89c:
        if ((unaff_s5 != (int *)&DAT_0000000c) ||
           (iVar2 = (*(code *)PTR_sscanf_0012ad98)
                              (param_1,PTR_UINT_0012a18c + -0x870,param_2 + 5,param_2 + 4,
                               param_2 + 3,param_2 + 2,param_2 + 1,&local_31), iVar2 < 5))
        goto LAB_0001c96c;
        param_2[5] = param_2[5] + -0x76c;
        param_2[4] = param_2[4] + -1;
      }
    }
LAB_0001c904:
    *param_2 = 0;
    if (local_31 == '.') {
      iVar2 = (*(code *)PTR_strchr_0012af54)(param_1,0x2e);
      iVar2 = (*(code *)PTR_sscanf_0012ad98)(iVar2 + 1,PTR_UINT_0012a18c + -0x8b4,param_2,&local_31)
      ;
      if (iVar2 == 1) {
        local_31 = '\0';
      }
      if (0x3c < *param_2) goto LAB_0001c96c;
    }
    if ((((0x3b < param_2[1]) || (0x17 < param_2[2])) || (0x1f < param_2[3])) ||
       (cVar8 = local_31, 0xb < param_2[4])) goto LAB_0001c96c;
  }
  if (local_2c == *(int *)puVar1) {
    return;
  }
LAB_0001cb78:
  (*(code *)PTR___stack_chk_fail_0012b0c8)();
  return;
}

