
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int utimecmpat(int dfd,char *dst_name,stat *dst_stat,stat *src_stat,int options)

{
  int iVar1;
  uint uVar2;
  int iVar3;
  undefined4 uVar4;
  uint uVar5;
  Hash_table *table;
  uint uVar6;
  int iVar7;
  fs_res *entry;
  int iVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int in_GS_OFFSET;
  uint local_f0;
  int local_e8;
  uint local_dc;
  fs_res *local_d8;
  uint local_d4;
  int local_d0;
  uint local_c4;
  fs_res tmp_dst_res;
  stat dst_status;
  timespec timespec [2];
  
  iVar1 = (dst_stat->st_mtim).tv_nsec;
  uVar2 = (dst_stat->st_mtim).tv_sec;
  iVar3 = *(int *)(in_GS_OFFSET + 0x14);
  local_f0 = (src_stat->st_mtim).tv_sec;
  local_e8 = (src_stat->st_mtim).tv_nsec;
  uVar10 = options & 1;
  if (uVar10 == 0) {
LAB_00021808:
    if ((int)local_f0 <= (int)uVar2) {
      uVar10 = 1;
      if (local_f0 != uVar2) goto LAB_00021740;
      if (local_e8 <= iVar1) {
        uVar10 = (uint)(local_e8 < iVar1);
        goto LAB_00021740;
      }
    }
  }
  else {
    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {
      uVar10 = 0;
      goto LAB_00021740;
    }
    if ((int)(local_f0 - 1) <= (int)uVar2) {
      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;
      if ((utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&
         (utimecmpat::lexical_block_10::ht =
               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,
                               (Hash_data_freer)PTR_free_00038fa8),
         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)) {
LAB_0002187f:
        local_d8 = &tmp_dst_res;
        tmp_dst_res.resolution = 2000000000;
        tmp_dst_res.exact = false;
        local_d4 = 2000000000;
      }
      else {
        table = utimecmpat::lexical_block_10::ht;
        entry = utimecmpat::lexical_block_10::new_dst_res;
        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {
          entry = (fs_res *)malloc(0x10);
          utimecmpat::lexical_block_10::new_dst_res = entry;
          if (entry != (fs_res *)0x0) {
            entry->resolution = 2000000000;
            entry->exact = false;
            goto LAB_0002179a;
          }
LAB_00021cde:
          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;
          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);
          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);
          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;
        }
        else {
LAB_0002179a:
          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);
          *(int *)&entry->dev = (int)dst_stat->st_dev;
          *(undefined4 *)((int)&entry->dev + 4) = uVar4;
          local_d8 = (fs_res *)hash_insert(table,entry);
          if (local_d8 == (fs_res *)0x0) {
            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;
            goto LAB_00021cde;
          }
          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {
            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;
          }
        }
        local_d4 = local_d8->resolution;
        if (local_d8->exact != false) {
          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);
          local_e8 = local_e8 - local_e8 % (int)local_d4;
          goto LAB_00021808;
        }
      }
      iVar7 = (dst_stat->st_atim).tv_nsec;
      iVar8 = iVar7 / 10;
      iVar11 = (dst_stat->st_ctim).tv_nsec;
      iVar9 = (iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f);
      iVar11 = iVar1 / 10;
      if (iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)) {
        uVar5 = (dst_stat->st_atim).tv_sec;
        local_c4 = 0;
        uVar6 = local_f0;
        if ((int)local_d4 < 0xb) {
          local_dc = 10;
          local_d8->resolution = 10;
        }
        else {
          local_d0 = 8;
          local_dc = 10;
          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {
            do {
              local_dc = local_dc * 10;
              iVar8 = iVar8 / 10;
              iVar9 = iVar9 / 10;
              iVar11 = iVar11 / 10;
              if (((int)local_d4 <= (int)local_dc) ||
                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {
                local_d8->resolution = local_dc;
                local_c4 = (uint)(local_dc == 2000000000);
                uVar6 = ~local_c4 & local_f0;
                goto LAB_00021ac2;
              }
              local_d0 = local_d0 + -1;
            } while (local_d0 != 0);
            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {
              local_d8->resolution = 2000000000;
              local_dc = 2000000000;
              uVar6 = local_f0 & 0xfffffffe;
              local_c4 = uVar10;
            }
            else {
              local_dc = 1000000000;
              local_d8->resolution = 1000000000;
              local_c4 = 0;
            }
          }
          else {
            local_d8->resolution = 10;
          }
        }
LAB_00021ac2:
        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))
        goto LAB_00021740;
        if (((int)uVar2 < (int)uVar6) ||
           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;
        timespec[1].tv_sec = local_c4 | uVar2;
        timespec[1].tv_nsec = iVar1 + local_dc / 9;
        timespec[0].tv_sec = uVar5;
        timespec[0].tv_nsec = iVar7;
        iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);
        if (iVar7 != 0) {
LAB_00021d8a:
          uVar10 = 0xfffffffe;
          goto LAB_00021740;
        }
        iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);
        local_d4 = dst_status.st_mtim.tv_sec;
        if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||
            iVar7 != 0) {
          timespec[1].tv_sec = uVar2;
          timespec[1].tv_nsec = iVar1;
          utimensat(dfd,dst_name,(timespec *)timespec,0x100);
          if (iVar7 != 0) goto LAB_00021d8a;
          local_d4 = dst_status.st_mtim.tv_sec;
        }
        iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;
        if (iVar7 == (iVar7 / 10) * 10) {
          if (local_dc == 10) {
            uVar10 = 10;
          }
          else {
            iVar11 = 9;
            uVar10 = 10;
            do {
              iVar7 = iVar7 / 10;
              if (iVar7 != (iVar7 / 10) * 10) break;
              iVar11 = iVar11 + -1;
              if (iVar11 == 0) {
                uVar10 = 2000000000;
                break;
              }
              uVar10 = uVar10 * 10;
            } while (uVar10 != local_dc);
          }
        }
        local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);
        local_e8 = local_e8 - local_e8 % (int)uVar10;
      }
      local_d8->resolution = uVar10;
      local_d8->exact = true;
      goto LAB_00021808;
    }
  }
LAB_00021830:
  uVar10 = 0xffffffff;
LAB_00021740:
  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return uVar10;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

uint FUN_000216c0(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)

{
  int iVar1;
  uint uVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int in_GS_OFFSET;
  uint local_f0;
  int local_e8;
  uint local_dc;
  undefined4 *local_d8;
  uint local_d4;
  int local_d0;
  uint local_c4;
  undefined4 local_a0;
  undefined4 local_9c;
  undefined4 local_98;
  undefined1 local_94;
  stat64 local_90;
  timespec local_30;
  uint local_28;
  int local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x216c9;
  iVar1 = param_3[0x13];
  uVar2 = param_3[0x12];
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_f0 = *(uint *)(param_4 + 0x48);
  local_e8 = *(int *)(param_4 + 0x4c);
  param_5 = param_5 & 1;
  if (param_5 == 0) {
LAB_00021808:
    if ((int)local_f0 <= (int)uVar2) {
      param_5 = 1;
      if (local_f0 != uVar2) goto LAB_00021740;
      if (local_e8 <= iVar1) {
        param_5 = (uint)(local_e8 < iVar1);
        goto LAB_00021740;
      }
    }
  }
  else {
    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {
      param_5 = 0;
      goto LAB_00021740;
    }
    if ((int)(local_f0 - 1) <= (int)uVar2) {
      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;
      if ((DAT_00039874 == 0) &&
         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),
         DAT_00039874 == 0)) {
LAB_0002187f:
        local_d8 = &local_a0;
        local_98 = 2000000000;
        local_94 = 0;
        local_d4 = 2000000000;
      }
      else {
        iVar6 = DAT_00039874;
        puVar7 = DAT_00039870;
        if (DAT_00039870 == (undefined4 *)0x0) {
          puVar7 = (undefined4 *)malloc(0x10);
          DAT_00039870 = puVar7;
          if (puVar7 != (undefined4 *)0x0) {
            puVar7[2] = 2000000000;
            *(undefined1 *)(puVar7 + 3) = 0;
            goto LAB_0002179a;
          }
LAB_00021cde:
          local_a0 = *param_3;
          local_9c = param_3[1];
          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);
          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;
        }
        else {
LAB_0002179a:
          uVar3 = param_3[1];
          *puVar7 = *param_3;
          puVar7[1] = uVar3;
          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);
          if (local_d8 == (undefined4 *)0x0) {
            if (DAT_00039874 == 0) goto LAB_0002187f;
            goto LAB_00021cde;
          }
          if (DAT_00039870 == local_d8) {
            DAT_00039870 = (undefined4 *)0x0;
          }
        }
        local_d4 = local_d8[2];
        if (*(char *)(local_d8 + 3) != '\0') {
          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);
          local_e8 = local_e8 - local_e8 % (int)local_d4;
          goto LAB_00021808;
        }
      }
      iVar6 = param_3[0x11];
      iVar8 = iVar6 / 10;
      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -
              ((int)param_3[0x15] >> 0x1f);
      iVar10 = iVar1 / 10;
      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {
        uVar4 = param_3[0x10];
        local_c4 = 0;
        uVar5 = local_f0;
        if ((int)local_d4 < 0xb) {
          local_dc = 10;
          local_d8[2] = 10;
        }
        else {
          local_d0 = 8;
          local_dc = 10;
          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {
            do {
              local_dc = local_dc * 10;
              iVar8 = iVar8 / 10;
              iVar9 = iVar9 / 10;
              iVar10 = iVar10 / 10;
              if (((int)local_d4 <= (int)local_dc) ||
                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {
                local_d8[2] = local_dc;
                local_c4 = (uint)(local_dc == 2000000000);
                uVar5 = ~local_c4 & local_f0;
                goto LAB_00021ac2;
              }
              local_d0 = local_d0 + -1;
            } while (local_d0 != 0);
            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {
              local_d8[2] = 2000000000;
              local_dc = 2000000000;
              uVar5 = local_f0 & 0xfffffffe;
              local_c4 = param_5;
            }
            else {
              local_dc = 1000000000;
              local_d8[2] = 1000000000;
              local_c4 = 0;
            }
          }
          else {
            local_d8[2] = 10;
          }
        }
LAB_00021ac2:
        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))
        goto LAB_00021740;
        if (((int)uVar2 < (int)uVar5) ||
           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;
        local_28 = local_c4 | uVar2;
        local_24 = iVar1 + local_dc / 9;
        local_30.tv_sec = uVar4;
        local_30.tv_nsec = iVar6;
        iVar6 = utimensat(param_1,param_2,&local_30,0x100);
        if (iVar6 != 0) {
LAB_00021d8a:
          param_5 = 0xfffffffe;
          goto LAB_00021740;
        }
        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);
        local_d4 = local_90.st_mtim.tv_sec;
        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {
          local_28 = uVar2;
          local_24 = iVar1;
          utimensat(param_1,param_2,&local_30,0x100);
          if (iVar6 != 0) goto LAB_00021d8a;
          local_d4 = local_90.st_mtim.tv_sec;
        }
        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;
        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {
          if (local_dc == 10) {
            param_5 = 10;
          }
          else {
            iVar6 = 9;
            param_5 = 10;
            do {
              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;
              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;
              iVar6 = iVar6 + -1;
              if (iVar6 == 0) {
                param_5 = 2000000000;
                break;
              }
              param_5 = param_5 * 10;
            } while (param_5 != local_dc);
          }
        }
        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);
        local_e8 = local_e8 - local_e8 % (int)param_5;
      }
      local_d8[2] = param_5;
      *(undefined1 *)(local_d8 + 3) = 1;
      goto LAB_00021808;
    }
  }
LAB_00021830:
  param_5 = 0xffffffff;
LAB_00021740:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0002bfb0();
  }
  return param_5;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000132d0
ADD EBX,0x17937
SUB ESP,0xec
MOV EAX,dword ptr [ESP + 0x104]
MOV ESI,dword ptr [ESP + 0x108]
MOV EBP,dword ptr [ESP + 0x110]
MOV EDX,dword ptr [ESI + 0x4c]
MOV ECX,dword ptr [ESI + 0x48]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0x10c]
MOV EDI,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0xdc],EDI
XOR EDI,EDI
MOV EDI,dword ptr [EAX + 0x48]
MOV EAX,dword ptr [EAX + 0x4c]
MOV dword ptr [ESP + 0x18],EDX
MOV dword ptr [ESP + 0xc],EDI
MOV dword ptr [ESP + 0x14],EAX
AND EBP,0x1
JZ 0x00021808
MOV EDI,EAX
CMP ECX,dword ptr [ESP + 0xc]
SETZ byte ptr [ESP + 0x10]
MOVZX EAX,byte ptr [ESP + 0x10]
CMP EDX,EDI
JNZ 0x00021768
TEST AL,AL
JZ 0x00021768
XOR EBP,EBP
MOV EBX,dword ptr [ESP + 0xdc]
XOR EBX,dword ptr GS:[0x14]
MOV EAX,EBP
JNZ 0x00021e1e
ADD ESP,0xec
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [ESP + 0xc]
LEA EAX,[EDI + -0x1]
CMP EAX,ECX
JG 0x00021830
LEA EAX,[ECX + -0x1]
CMP EAX,EDI
JG 0x00021740
MOV EDI,dword ptr [EBX + 0x874]
TEST EDI,EDI
JZ 0x00021840
MOV EAX,dword ptr [EBX + 0x870]
TEST EAX,EAX
JZ 0x00021c90
MOV dword ptr [ESP + 0x20],ECX
MOV EDX,dword ptr [ESI]
SUB ESP,0x8
MOV ECX,dword ptr [ESI + 0x4]
MOV dword ptr [EAX],EDX
MOV dword ptr [EAX + 0x4],ECX
PUSH EAX
PUSH EDI
CALL 0x0001e400
MOV dword ptr [ESP + 0x34],EAX
ADD ESP,0x10
TEST EAX,EAX
MOV ECX,dword ptr [ESP + 0x20]
JZ 0x00021cd0
CMP dword ptr [EBX + 0x870],EAX
JZ 0x00021d20
MOV EDI,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [EDI + 0x8]
CMP byte ptr [EDI + 0xc],0x0
MOV dword ptr [ESP + 0x28],EAX
JZ 0x00021898
MOV EBX,EAX
XOR EAX,EAX
CMP EBX,0x77359400
SETZ AL
NOT EAX
AND dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x14]
CDQ
IDIV EBX
SUB dword ptr [ESP + 0x14],EDX
LEA ESI,[ESI]
CMP dword ptr [ESP + 0xc],ECX
JG 0x00021830
MOV EBP,0x1
JNZ 0x00021740
MOV EBX,dword ptr [ESP + 0x18]
CMP dword ptr [ESP + 0x14],EBX
JG 0x00021830
SETL AL
MOVZX EAX,AL
MOV EBP,EAX
JMP 0x00021740
MOV EBP,0xffffffff
JMP 0x00021740
MOV dword ptr [ESP + 0x20],ECX
LEA EAX,[EBX + 0xfffe86a0]
SUB ESP,0xc
PUSH dword ptr [EBX + 0xffffffa8]
PUSH EAX
LEA EAX,[EBX + 0xfffe8670]
PUSH EAX
PUSH 0x0
PUSH 0x10
CALL 0x0001dd30
ADD ESP,0x20
MOV ECX,dword ptr [ESP + 0x20]
TEST EAX,EAX
MOV EDI,EAX
MOV dword ptr [EBX + 0x874],EAX
JNZ 0x0002178c
LEA EDX,[ESP + 0x5c]
MOV dword ptr [ESP + 0x64],0x77359400
MOV byte ptr [ESP + 0x68],0x0
MOV dword ptr [ESP + 0x28],0x77359400
MOV dword ptr [ESP + 0x24],EDX
MOV EDI,dword ptr [ESI + 0x44]
MOV EAX,0x66666667
IMUL EDI
MOV EAX,EDI
MOV dword ptr [ESP + 0x3c],EDI
SAR EAX,0x1f
SAR EDX,0x2
SUB EDX,EAX
LEA EAX,[EDX + EDX*0x4]
MOV dword ptr [ESP + 0x30],EDX
ADD EAX,EAX
SUB EDI,EAX
MOV EAX,0x66666667
IMUL dword ptr [ESI + 0x54]
MOV EAX,dword ptr [ESI + 0x54]
SAR EAX,0x1f
SAR EDX,0x2
SUB EDX,EAX
LEA EAX,[EDX + EDX*0x4]
MOV dword ptr [ESP + 0x20],EDX
MOV EDX,dword ptr [ESI + 0x54]
ADD EAX,EAX
SUB EDX,EAX
MOV EAX,EDX
OR EAX,EDI
MOV EDI,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x2c],EAX
MOV EAX,0x66666667
IMUL EDI
MOV EAX,EDI
SAR EAX,0x1f
SAR EDX,0x2
SUB EDX,EAX
LEA EAX,[EDX + EDX*0x4]
MOV dword ptr [ESP + 0x34],EDX
ADD EAX,EAX
SUB EDI,EAX
MOV EDX,EDI
OR EDX,dword ptr [ESP + 0x2c]
MOV dword ptr [ESP + 0x38],EDX
JNZ 0x00021c80
MOV EAX,dword ptr [ESP + 0x20]
MOV EDI,dword ptr [ESI + 0x40]
MOV EDX,dword ptr [ESP + 0x30]
CMP dword ptr [ESP + 0x28],0xa
MOV dword ptr [ESP + 0x44],EAX
MOV EAX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x4c],EDI
MOV dword ptr [ESP + 0x40],EDX
MOV dword ptr [ESP + 0x48],EAX
JLE 0x00021d94
MOV EDI,dword ptr [ESP + 0x30]
MOV EAX,0x66666667
MOV dword ptr [ESP + 0x2c],0x8
IMUL EDI
MOV EAX,EDI
SAR EAX,0x1f
SAR EDX,0x2
SUB EDX,EAX
LEA EAX,[EDX + EDX*0x4]
ADD EAX,EAX
SUB EDI,EAX
MOV EAX,0x66666667
IMUL dword ptr [ESP + 0x20]
MOV EAX,dword ptr [ESP + 0x20]
SAR EAX,0x1f
SAR EDX,0x2
SUB EDX,EAX
LEA EAX,[EDX + EDX*0x4]
MOV EDX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x20],0xa
ADD EAX,EAX
SUB EDX,EAX
MOV EAX,EDX
OR EAX,EDI
MOV EDI,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x30],EAX
MOV EAX,0x66666667
IMUL EDI
MOV EAX,EDI
SAR EAX,0x1f
SAR EDX,0x2
SUB EDX,EAX
LEA EAX,[EDX + EDX*0x4]
ADD EAX,EAX
SUB EDI,EAX
MOV EAX,dword ptr [ESP + 0x30]
OR EAX,EDI
JNZ 0x00021db0
MOV dword ptr [ESP + 0x34],ECX
MOV ECX,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x40],EBP
MOV EDI,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x48],ESI
MOV ESI,dword ptr [ESP + 0x44]
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x20]
LEA EAX,[EAX + EAX*0x4]
LEA EBP,[EAX + EAX*0x1]
MOV EAX,0x66666667
IMUL ECX
SAR ECX,0x1f
MOV EAX,0x66666667
MOV dword ptr [ESP + 0x30],EBP
MOV dword ptr [ESP + 0x20],EBP
SAR EDX,0x2
SUB EDX,ECX
MOV ECX,EDX
IMUL ESI
SAR ESI,0x1f
MOV EAX,0x66666667
SAR EDX,0x2
SUB EDX,ESI
MOV ESI,EDX
IMUL EDI
SAR EDI,0x1f
SAR EDX,0x2
SUB EDX,EDI
MOV EDI,EDX
CMP EBP,dword ptr [ESP + 0x28]
JGE 0x00021d30
MOV EAX,0x66666667
MOV EBP,ECX
IMUL ECX
MOV EAX,ECX
SAR EAX,0x1f
SAR EDX,0x2
SUB EDX,EAX
LEA EAX,[EDX + EDX*0x4]
ADD EAX,EAX
SUB EBP,EAX
MOV EAX,0x66666667
IMUL ESI
MOV EAX,ESI
SAR EAX,0x1f
SAR EDX,0x2
SUB EDX,EAX
LEA EAX,[EDX + EDX*0x4]
MOV EDX,ESI
ADD EAX,EAX
SUB EDX,EAX
MOV EAX,0x66666667
OR EBP,EDX
IMUL EDI
MOV EAX,EDI
SAR EAX,0x1f
SAR EDX,0x2
SUB EDX,EAX
LEA EAX,[EDX + EDX*0x4]
MOV EDX,EDI
ADD EAX,EAX
SUB EDX,EAX
OR EBP,EDX
JNZ 0x00021d30
SUB dword ptr [ESP + 0x2c],0x1
JNZ 0x000219d8
MOV ECX,dword ptr [ESP + 0x34]
MOV ESI,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x38],EBP
MOV EAX,dword ptr [ESP + 0x4c]
MOV EBP,dword ptr [ESP + 0x40]
OR EAX,ECX
OR EAX,dword ptr [ESI + 0x50]
TEST AL,0x1
MOV EAX,dword ptr [ESP + 0x24]
JZ 0x00021d60
MOV dword ptr [ESP + 0x20],0x3b9aca00
MOV dword ptr [EAX + 0x8],0x3b9aca00
MOV EAX,dword ptr [ESP + 0xc]
CMP ECX,dword ptr [ESP + 0xc]
JG 0x00021740
MOV EDI,dword ptr [ESP + 0x14]
CMP dword ptr [ESP + 0x18],EDI
JL 0x00021ae1
CMP byte ptr [ESP + 0x10],0x0
JNZ 0x00021740
CMP ECX,EAX
JL 0x00021830
JNZ 0x00021b04
MOV EAX,dword ptr [ESP + 0x14]
CDQ
IDIV dword ptr [ESP + 0x20]
MOV EAX,dword ptr [ESP + 0x14]
SUB EAX,EDX
CMP EAX,dword ptr [ESP + 0x18]
JG 0x00021830
MOV EAX,dword ptr [ESP + 0x4c]
MOV EDX,0x38e38e39
MOV dword ptr [ESP + 0x10],ECX
MOV dword ptr [ESP + 0xcc],EAX
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0xd0],EAX
MOV EAX,dword ptr [ESP + 0x38]
OR EAX,ECX
MOV dword ptr [ESP + 0xd4],EAX
MOV EAX,dword ptr [ESP + 0x20]
MUL EDX
MOV EAX,dword ptr [ESP + 0x18]
SHR EDX,0x1
ADD EAX,EDX
MOV dword ptr [ESP + 0xd8],EAX
PUSH 0x100
LEA ESI,[ESP + 0xd0]
PUSH ESI
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x10c]
CALL 0x00012060
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JNZ 0x00021d8a
MOV dword ptr [ESP + 0x2c],ECX
SUB ESP,0xc
PUSH 0x100
LEA EAX,[ESP + 0x7c]
PUSH EAX
PUSH dword ptr [ESP + 0x30]
PUSH dword ptr [ESP + 0x118]
PUSH 0x3
CALL 0x000122a0
MOV ECX,dword ptr [ESP + 0xd4]
MOV EDX,dword ptr [ESP + 0xd8]
MOV dword ptr [ESP + 0x30],EAX
MOV EDI,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x48],ECX
MOV EAX,ECX
MOV ECX,dword ptr [ESP + 0x4c]
ADD ESP,0x20
XOR EDI,EDX
XOR EAX,ECX
OR EAX,EDI
OR EAX,dword ptr [ESP + 0x10]
JNZ 0x00021dc4
MOV EAX,dword ptr [ESP + 0x28]
AND EAX,0x1
IMUL EAX,EAX,0x3b9aca00
LEA ESI,[EAX + EDX*0x1]
MOV EDX,0x66666667
MOV EAX,ESI
IMUL EDX
MOV EAX,EDX
MOV EDX,ESI
SAR EAX,0x2
SAR EDX,0x1f
SUB EAX,EDX
LEA EAX,[EAX + EAX*0x4]
ADD EAX,EAX
CMP ESI,EAX
JNZ 0x00021c5e
MOV EAX,dword ptr [ESP + 0x20]
CMP EAX,0xa
JZ 0x00021e23
MOV dword ptr [ESP + 0x10],ECX
MOV EDI,0x9
MOV EBP,0xa
MOV ECX,EAX
MOV EBX,0x66666667
JMP 0x00021c27
LEA EBP,[EBP + EBP*0x4]
ADD EBP,EBP
CMP EBP,ECX
JZ 0x00021e15
MOV EAX,ESI
SAR ESI,0x1f
IMUL EBX
SAR EDX,0x2
SUB EDX,ESI
MOV EAX,EDX
MOV ESI,EDX
IMUL EBX
MOV EAX,ESI
SAR EAX,0x1f
SAR EDX,0x2
SUB EDX,EAX
LEA EAX,[EDX + EDX*0x4]
ADD EAX,EAX
CMP ESI,EAX
JNZ 0x00021e15
SUB EDI,0x1
JNZ 0x00021c19
MOV ECX,dword ptr [ESP + 0x10]
MOV EBP,0x77359400
XOR EAX,EAX
CMP EBP,0x77359400
SETZ AL
NOT EAX
AND dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x14]
CDQ
IDIV EBP
SUB dword ptr [ESP + 0x14],EDX
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [EAX + 0x8],EBP
MOV byte ptr [EAX + 0xc],0x1
JMP 0x00021808
MOV dword ptr [ESP + 0x20],ECX
SUB ESP,0xc
MOV dword ptr [ESP + 0x30],EDI
PUSH 0x10
CALL 0x000123f0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x20]
TEST EAX,EAX
MOV dword ptr [EBX + 0x870],EAX
JZ 0x00021d7f
MOV dword ptr [EAX + 0x8],0x77359400
MOV EDI,dword ptr [ESP + 0x24]
MOV byte ptr [EAX + 0xc],0x0
JMP 0x0002179a
MOV EAX,dword ptr [EBX + 0x874]
TEST EAX,EAX
JZ 0x0002187b
MOV dword ptr [ESP + 0x28],ECX
MOV EDX,dword ptr [ESI]
SUB ESP,0x8
MOV ECX,dword ptr [ESI + 0x4]
MOV dword ptr [ESP + 0x64],EDX
MOV dword ptr [ESP + 0x68],ECX
LEA EDX,[ESP + 0x64]
PUSH EDX
MOV dword ptr [ESP + 0x2c],EDX
PUSH EAX
CALL 0x0001dad0
MOV dword ptr [ESP + 0x34],EAX
ADD ESP,0x10
TEST EAX,EAX
MOV EDX,dword ptr [ESP + 0x20]
MOV ECX,dword ptr [ESP + 0x28]
JNZ 0x000217d1
JMP 0x0002187f
MOV dword ptr [EBX + 0x870],0x0
JMP 0x000217d1
MOV EAX,dword ptr [ESP + 0x30]
MOV ESI,dword ptr [ESP + 0x24]
MOV ECX,dword ptr [ESP + 0x34]
MOV EBP,dword ptr [ESP + 0x40]
CMP EAX,0x77359400
MOV dword ptr [ESI + 0x8],EAX
SETZ AL
MOVZX EAX,AL
MOV dword ptr [ESP + 0x38],EAX
NOT EAX
AND EAX,dword ptr [ESP + 0xc]
JMP 0x00021ac2
MOV dword ptr [EAX + 0x8],0x77359400
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x38],EBP
AND EAX,0xfffffffe
MOV dword ptr [ESP + 0x20],0x77359400
JMP 0x00021ac2
MOV EAX,dword ptr [EBX + 0x874]
JMP 0x00021cde
MOV EBP,0xfffffffe
JMP 0x00021740
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x20],0xa
MOV dword ptr [EAX + 0x8],0xa
MOV EAX,dword ptr [ESP + 0xc]
JMP 0x00021ac2
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [EAX + 0x8],0xa
MOV EAX,dword ptr [ESP + 0xc]
JMP 0x00021ac2
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0xd4],ECX
MOV dword ptr [ESP + 0x28],ECX
MOV dword ptr [ESP + 0xd8],EAX
PUSH 0x100
PUSH ESI
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x10c]
CALL 0x00012060
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x28]
CMP dword ptr [ESP + 0x10],0x0
JNZ 0x00021d8a
MOV EAX,dword ptr [ESP + 0xb4]
MOV EDX,dword ptr [ESP + 0xb8]
MOV dword ptr [ESP + 0x28],EAX
JMP 0x00021bc7
MOV ECX,dword ptr [ESP + 0x10]
JMP 0x00021c5e
CALL 0x0002bfb0
MOV EBP,0xa
JMP 0x00021c5e
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nuint FUN_000216c0(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  uint local_f0;\n  int local_e8;\n  uint local_dc;\n  undefined4 *local_d8;\n  uint local_d4;\n  int local_d0;\n  uint local_c4;\n  undefined4 local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined1 local_94;\n  stat64 local_90;\n  timespec local_30;\n  uint local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x216c9;\n  iVar1 = param_3[0x13];\n  uVar2 = param_3[0x12];\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_f0 = *(uint *)(param_4 + 0x48);\n  local_e8 = *(int *)(param_4 + 0x4c);\n  param_5 = param_5 & 1;\n  if (param_5 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }\nLAB_00021830:\n  param_5 = 0xffffffff;\nLAB_00021740:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002bfb0();\n  }\n  return param_5;\n}\n\n" comment (function_definition "uint FUN_000216c0(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  uint local_f0;\n  int local_e8;\n  uint local_dc;\n  undefined4 *local_d8;\n  uint local_d4;\n  int local_d0;\n  uint local_c4;\n  undefined4 local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined1 local_94;\n  stat64 local_90;\n  timespec local_30;\n  uint local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x216c9;\n  iVar1 = param_3[0x13];\n  uVar2 = param_3[0x12];\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_f0 = *(uint *)(param_4 + 0x48);\n  local_e8 = *(int *)(param_4 + 0x4c);\n  param_5 = param_5 & 1;\n  if (param_5 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }\nLAB_00021830:\n  param_5 = 0xffffffff;\nLAB_00021740:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002bfb0();\n  }\n  return param_5;\n}" type_identifier (function_declarator "FUN_000216c0(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)" identifier (parameter_list "(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  uint local_f0;\n  int local_e8;\n  uint local_dc;\n  undefined4 *local_d8;\n  uint local_d4;\n  int local_d0;\n  uint local_c4;\n  undefined4 local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined1 local_94;\n  stat64 local_90;\n  timespec local_30;\n  uint local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x216c9;\n  iVar1 = param_3[0x13];\n  uVar2 = param_3[0x12];\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_f0 = *(uint *)(param_4 + 0x48);\n  local_e8 = *(int *)(param_4 + 0x4c);\n  param_5 = param_5 & 1;\n  if (param_5 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }\nLAB_00021830:\n  param_5 = 0xffffffff;\nLAB_00021740:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002bfb0();\n  }\n  return param_5;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "undefined4 *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "uint local_d4;" type_identifier identifier ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "uint local_c4;" type_identifier identifier ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "undefined4 local_9c;" type_identifier identifier ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "undefined1 local_94;" type_identifier identifier ;) (declaration "stat64 local_90;" type_identifier identifier ;) (declaration "timespec local_30;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x216c9;" (assignment_expression "uStack_14 = 0x216c9" identifier = number_literal) ;) (expression_statement "iVar1 = param_3[0x13];" (assignment_expression "iVar1 = param_3[0x13]" identifier = (subscript_expression "param_3[0x13]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_3[0x12];" (assignment_expression "uVar2 = param_3[0x12]" identifier = (subscript_expression "param_3[0x12]" identifier [ number_literal ])) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_f0 = *(uint *)(param_4 + 0x48);" (assignment_expression "local_f0 = *(uint *)(param_4 + 0x48)" identifier = (pointer_expression "*(uint *)(param_4 + 0x48)" * (cast_expression "(uint *)(param_4 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x48)" ( (binary_expression "param_4 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "local_e8 = *(int *)(param_4 + 0x4c);" (assignment_expression "local_e8 = *(int *)(param_4 + 0x4c)" identifier = (pointer_expression "*(int *)(param_4 + 0x4c)" * (cast_expression "(int *)(param_4 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x4c)" ( (binary_expression "param_4 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "param_5 = param_5 & 1;" (assignment_expression "param_5 = param_5 & 1" identifier = (binary_expression "param_5 & 1" identifier & number_literal)) ;) (if_statement "if (param_5 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }" { (labeled_statement "LAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" statement_identifier : (if_statement "if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" if (parenthesized_expression "((int)local_f0 <= (int)uVar2)" ( (binary_expression "(int)local_f0 <= (int)uVar2" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" { (expression_statement "param_5 = 1;" (assignment_expression "param_5 = 1" identifier = number_literal) ;) (if_statement "if (local_f0 != uVar2) goto LAB_00021740;" if (parenthesized_expression "(local_f0 != uVar2)" ( (binary_expression "local_f0 != uVar2" identifier != identifier) )) (goto_statement "goto LAB_00021740;" goto statement_identifier ;)) (if_statement "if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }" if (parenthesized_expression "(local_e8 <= iVar1)" ( (binary_expression "local_e8 <= iVar1" identifier <= identifier) )) (compound_statement "{\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }" { (expression_statement "param_5 = (uint)(local_e8 < iVar1);" (assignment_expression "param_5 = (uint)(local_e8 < iVar1)" identifier = (call_expression "(uint)(local_e8 < iVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_e8 < iVar1)" ( (binary_expression "local_e8 < iVar1" identifier < identifier) )))) ;) (goto_statement "goto LAB_00021740;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }" else (compound_statement "{\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }" { (if_statement "if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }" if (parenthesized_expression "((iVar1 == local_e8) && (uVar2 == local_f0))" ( (binary_expression "(iVar1 == local_e8) && (uVar2 == local_f0)" (parenthesized_expression "(iVar1 == local_e8)" ( (binary_expression "iVar1 == local_e8" identifier == identifier) )) && (parenthesized_expression "(uVar2 == local_f0)" ( (binary_expression "uVar2 == local_f0" identifier == identifier) ))) )) (compound_statement "{\n      param_5 = 0;\n      goto LAB_00021740;\n    }" { (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00021740;" goto statement_identifier ;) })) (if_statement "if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }" if (parenthesized_expression "((int)(local_f0 - 1) <= (int)uVar2)" ( (binary_expression "(int)(local_f0 - 1) <= (int)uVar2" (cast_expression "(int)(local_f0 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_f0 - 1)" ( (binary_expression "local_f0 - 1" identifier - number_literal) ))) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }" { (if_statement "if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;" if (parenthesized_expression "((int)local_f0 < (int)(uVar2 - 1))" ( (binary_expression "(int)local_f0 < (int)(uVar2 - 1)" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uVar2 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 - 1)" ( (binary_expression "uVar2 - 1" identifier - number_literal) )))) )) (goto_statement "goto LAB_00021740;" goto statement_identifier ;)) (if_statement "if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" if (parenthesized_expression "((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0))" ( (binary_expression "(DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)" (parenthesized_expression "(DAT_00039874 == 0)" ( (binary_expression "DAT_00039874 == 0" identifier == number_literal) )) && (parenthesized_expression "(DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)" ( (comma_expression "DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0" (assignment_expression "DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8)" identifier = (call_expression "FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8)" identifier (argument_list "(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8)" ( number_literal , number_literal , identifier , identifier , identifier )))) , (binary_expression "DAT_00039874 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }" { (labeled_statement "LAB_0002187f:\n        local_d8 = &local_a0;" statement_identifier : (expression_statement "local_d8 = &local_a0;" (assignment_expression "local_d8 = &local_a0" identifier = (pointer_expression "&local_a0" & identifier)) ;)) (expression_statement "local_98 = 2000000000;" (assignment_expression "local_98 = 2000000000" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 2000000000;" (assignment_expression "local_d4 = 2000000000" identifier = number_literal) ;) }) (else_clause "else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" else (compound_statement "{\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" { (expression_statement "iVar6 = DAT_00039874;" (assignment_expression "iVar6 = DAT_00039874" identifier = identifier) ;) (expression_statement "puVar7 = DAT_00039870;" (assignment_expression "puVar7 = DAT_00039870" identifier = identifier) ;) (if_statement "if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }" if (parenthesized_expression "(DAT_00039870 == (undefined4 *)0x0)" ( (binary_expression "DAT_00039870 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }" { (expression_statement "puVar7 = (undefined4 *)malloc(0x10);" (assignment_expression "puVar7 = (undefined4 *)malloc(0x10)" identifier = (cast_expression "(undefined4 *)malloc(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "DAT_00039870 = puVar7;" (assignment_expression "DAT_00039870 = puVar7" identifier = identifier) ;) (if_statement "if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }" if (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }" { (expression_statement "puVar7[2] = 2000000000;" (assignment_expression "puVar7[2] = 2000000000" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 3)" * (cast_expression "(undefined1 *)(puVar7 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 3)" ( (binary_expression "puVar7 + 3" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002179a;" goto statement_identifier ;) })) (labeled_statement "LAB_00021cde:\n          local_a0 = *param_3;" statement_identifier : (expression_statement "local_a0 = *param_3;" (assignment_expression "local_a0 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (expression_statement "local_9c = param_3[1];" (assignment_expression "local_9c = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);" (assignment_expression "local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0)" identifier = (cast_expression "(undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001dad0(DAT_00039874,&local_a0)" identifier (argument_list "(DAT_00039874,&local_a0)" ( identifier , (pointer_expression "&local_a0" & identifier) ))))) ;) (if_statement "if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;" if (parenthesized_expression "(local_d8 == (undefined4 *)0x0)" ( (binary_expression "local_d8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002187f;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }" else (compound_statement "{\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }" { (labeled_statement "LAB_0002179a:\n          uVar3 = param_3[1];" statement_identifier : (expression_statement "uVar3 = param_3[1];" (assignment_expression "uVar3 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;)) (expression_statement "*puVar7 = *param_3;" (assignment_expression "*puVar7 = *param_3" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "puVar7[1] = uVar3;" (assignment_expression "puVar7[1] = uVar3" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);" (assignment_expression "local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7)" identifier = (cast_expression "(undefined4 *)FUN_0001e400(iVar6,puVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001e400(iVar6,puVar7)" identifier (argument_list "(iVar6,puVar7)" ( identifier , identifier ))))) ;) (if_statement "if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }" if (parenthesized_expression "(local_d8 == (undefined4 *)0x0)" ( (binary_expression "local_d8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }" { (if_statement "if (DAT_00039874 == 0) goto LAB_0002187f;" if (parenthesized_expression "(DAT_00039874 == 0)" ( (binary_expression "DAT_00039874 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002187f;" goto statement_identifier ;)) (goto_statement "goto LAB_00021cde;" goto statement_identifier ;) })) (if_statement "if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }" if (parenthesized_expression "(DAT_00039870 == local_d8)" ( (binary_expression "DAT_00039870 == local_d8" identifier == identifier) )) (compound_statement "{\n            DAT_00039870 = (undefined4 *)0x0;\n          }" { (expression_statement "DAT_00039870 = (undefined4 *)0x0;" (assignment_expression "DAT_00039870 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "local_d4 = local_d8[2];" (assignment_expression "local_d4 = local_d8[2]" identifier = (subscript_expression "local_d8[2]" identifier [ number_literal ])) ;) (if_statement "if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }" if (parenthesized_expression "(*(char *)(local_d8 + 3) != '\0')" ( (binary_expression "*(char *)(local_d8 + 3) != '\0'" (pointer_expression "*(char *)(local_d8 + 3)" * (cast_expression "(char *)(local_d8 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 3)" ( (binary_expression "local_d8 + 3" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }" { (expression_statement "local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);" (assignment_expression "local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000)" identifier = (binary_expression "local_f0 & ~(uint)(local_d4 == 2000000000)" identifier & (unary_expression "~(uint)(local_d4 == 2000000000)" ~ (call_expression "(uint)(local_d4 == 2000000000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d4 == 2000000000)" ( (binary_expression "local_d4 == 2000000000" identifier == number_literal) )))))) ;) (expression_statement "local_e8 = local_e8 - local_e8 % (int)local_d4;" (assignment_expression "local_e8 = local_e8 - local_e8 % (int)local_d4" identifier = (binary_expression "local_e8 - local_e8 % (int)local_d4" identifier - (binary_expression "local_e8 % (int)local_d4" identifier % (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (goto_statement "goto LAB_00021808;" goto statement_identifier ;) })) }))) (expression_statement "iVar6 = param_3[0x11];" (assignment_expression "iVar6 = param_3[0x11]" identifier = (subscript_expression "param_3[0x11]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = iVar6 / 10;" (assignment_expression "iVar8 = iVar6 / 10" identifier = (binary_expression "iVar6 / 10" identifier / number_literal)) ;) (expression_statement "iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);" (assignment_expression "iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f)" identifier = (binary_expression "((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f)" (parenthesized_expression "((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f))" ( (binary_expression "(int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)" (binary_expression "(int)param_3[0x15] / 10" (cast_expression "(int)param_3[0x15]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0x15]" identifier [ number_literal ])) / number_literal) + (parenthesized_expression "((int)param_3[0x15] >> 0x1f)" ( (binary_expression "(int)param_3[0x15] >> 0x1f" (cast_expression "(int)param_3[0x15]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0x15]" identifier [ number_literal ])) >> number_literal) ))) )) - (parenthesized_expression "((int)param_3[0x15] >> 0x1f)" ( (binary_expression "(int)param_3[0x15] >> 0x1f" (cast_expression "(int)param_3[0x15]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0x15]" identifier [ number_literal ])) >> number_literal) )))) ;) (expression_statement "iVar10 = iVar1 / 10;" (assignment_expression "iVar10 = iVar1 / 10" identifier = (binary_expression "iVar1 / 10" identifier / number_literal)) ;) (if_statement "if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }" if (parenthesized_expression "(iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0))" ( (binary_expression "iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)" (binary_expression "iVar1 % 10 == 0" (binary_expression "iVar1 % 10" identifier % number_literal) == number_literal) && (parenthesized_expression "(param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)" ( (binary_expression "param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0" (binary_expression "param_3[0x15] + iVar9 * -10 == 0" (binary_expression "param_3[0x15] + iVar9 * -10" (subscript_expression "param_3[0x15]" identifier [ number_literal ]) + (binary_expression "iVar9 * -10" identifier * number_literal)) == number_literal) && (binary_expression "iVar6 % 10 == 0" (binary_expression "iVar6 % 10" identifier % number_literal) == number_literal)) ))) )) (compound_statement "{\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }" { (expression_statement "uVar4 = param_3[0x10];" (assignment_expression "uVar4 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = local_f0;" (assignment_expression "uVar5 = local_f0" identifier = identifier) ;) (if_statement "if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }" if (parenthesized_expression "((int)local_d4 < 0xb)" ( (binary_expression "(int)local_d4 < 0xb" (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_dc = 10;\n          local_d8[2] = 10;\n        }" { (expression_statement "local_dc = 10;" (assignment_expression "local_dc = 10" identifier = number_literal) ;) (expression_statement "local_d8[2] = 10;" (assignment_expression "local_d8[2] = 10" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }" else (compound_statement "{\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }" { (expression_statement "local_d0 = 8;" (assignment_expression "local_d0 = 8" identifier = number_literal) ;) (expression_statement "local_dc = 10;" (assignment_expression "local_dc = 10" identifier = number_literal) ;) (if_statement "if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }" if (parenthesized_expression "((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0)" ( (binary_expression "(iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0" (parenthesized_expression "(iVar9 % 10 == 0 && iVar8 % 10 == 0)" ( (binary_expression "iVar9 % 10 == 0 && iVar8 % 10 == 0" (binary_expression "iVar9 % 10 == 0" (binary_expression "iVar9 % 10" identifier % number_literal) == number_literal) && (binary_expression "iVar8 % 10 == 0" (binary_expression "iVar8 % 10" identifier % number_literal) == number_literal)) )) && (binary_expression "iVar10 % 10 == 0" (binary_expression "iVar10 % 10" identifier % number_literal) == number_literal)) )) (compound_statement "{\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }" { (do_statement "do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);" do (compound_statement "{\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            }" { (expression_statement "local_dc = local_dc * 10;" (assignment_expression "local_dc = local_dc * 10" identifier = (binary_expression "local_dc * 10" identifier * number_literal)) ;) (expression_statement "iVar8 = iVar8 / 10;" (assignment_expression "iVar8 = iVar8 / 10" identifier = (binary_expression "iVar8 / 10" identifier / number_literal)) ;) (expression_statement "iVar9 = iVar9 / 10;" (assignment_expression "iVar9 = iVar9 / 10" identifier = (binary_expression "iVar9 / 10" identifier / number_literal)) ;) (expression_statement "iVar10 = iVar10 / 10;" (assignment_expression "iVar10 = iVar10 / 10" identifier = (binary_expression "iVar10 / 10" identifier / number_literal)) ;) (if_statement "if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }" if (parenthesized_expression "(((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0))" ( (binary_expression "((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)" (parenthesized_expression "((int)local_d4 <= (int)local_dc)" ( (binary_expression "(int)local_d4 <= (int)local_dc" (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)" ( (binary_expression "(iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0" (parenthesized_expression "(iVar8 % 10 != 0 || iVar9 % 10 != 0)" ( (binary_expression "iVar8 % 10 != 0 || iVar9 % 10 != 0" (binary_expression "iVar8 % 10 != 0" (binary_expression "iVar8 % 10" identifier % number_literal) != number_literal) || (binary_expression "iVar9 % 10 != 0" (binary_expression "iVar9 % 10" identifier % number_literal) != number_literal)) )) || (binary_expression "iVar10 % 10 != 0" (binary_expression "iVar10 % 10" identifier % number_literal) != number_literal)) ))) )) (compound_statement "{\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }" { (expression_statement "local_d8[2] = local_dc;" (assignment_expression "local_d8[2] = local_dc" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_c4 = (uint)(local_dc == 2000000000);" (assignment_expression "local_c4 = (uint)(local_dc == 2000000000)" identifier = (call_expression "(uint)(local_dc == 2000000000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_dc == 2000000000)" ( (binary_expression "local_dc == 2000000000" identifier == number_literal) )))) ;) (expression_statement "uVar5 = ~local_c4 & local_f0;" (assignment_expression "uVar5 = ~local_c4 & local_f0" identifier = (binary_expression "~local_c4 & local_f0" (unary_expression "~local_c4" ~ identifier) & identifier)) ;) (goto_statement "goto LAB_00021ac2;" goto statement_identifier ;) })) (expression_statement "local_d0 = local_d0 + -1;" (assignment_expression "local_d0 = local_d0 + -1" identifier = (binary_expression "local_d0 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_d0 != 0)" ( (binary_expression "local_d0 != 0" identifier != number_literal) )) ;) (if_statement "if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }" if (parenthesized_expression "(((uVar4 | uVar2 | param_3[0x14]) & 1) == 0)" ( (binary_expression "((uVar4 | uVar2 | param_3[0x14]) & 1) == 0" (parenthesized_expression "((uVar4 | uVar2 | param_3[0x14]) & 1)" ( (binary_expression "(uVar4 | uVar2 | param_3[0x14]) & 1" (parenthesized_expression "(uVar4 | uVar2 | param_3[0x14])" ( (binary_expression "uVar4 | uVar2 | param_3[0x14]" (binary_expression "uVar4 | uVar2" identifier | identifier) | (subscript_expression "param_3[0x14]" identifier [ number_literal ])) )) & number_literal) )) == number_literal) )) (compound_statement "{\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }" { (expression_statement "local_d8[2] = 2000000000;" (assignment_expression "local_d8[2] = 2000000000" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_dc = 2000000000;" (assignment_expression "local_dc = 2000000000" identifier = number_literal) ;) (expression_statement "uVar5 = local_f0 & 0xfffffffe;" (assignment_expression "uVar5 = local_f0 & 0xfffffffe" identifier = (binary_expression "local_f0 & 0xfffffffe" identifier & number_literal)) ;) (expression_statement "local_c4 = param_5;" (assignment_expression "local_c4 = param_5" identifier = identifier) ;) }) (else_clause "else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }" else (compound_statement "{\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }" { (expression_statement "local_dc = 1000000000;" (assignment_expression "local_dc = 1000000000" identifier = number_literal) ;) (expression_statement "local_d8[2] = 1000000000;" (assignment_expression "local_d8[2] = 1000000000" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n            local_d8[2] = 10;\n          }" else (compound_statement "{\n            local_d8[2] = 10;\n          }" { (expression_statement "local_d8[2] = 10;" (assignment_expression "local_d8[2] = 10" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = number_literal) ;) }))) }))) (labeled_statement "LAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;" statement_identifier : (if_statement "if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;" if (parenthesized_expression "(((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))" ( (binary_expression "((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0)))" (parenthesized_expression "((int)local_f0 < (int)uVar2)" ( (binary_expression "(int)local_f0 < (int)uVar2" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((local_e8 <= iVar1 && (uVar2 == local_f0)))" ( (parenthesized_expression "(local_e8 <= iVar1 && (uVar2 == local_f0))" ( (binary_expression "local_e8 <= iVar1 && (uVar2 == local_f0)" (binary_expression "local_e8 <= iVar1" identifier <= identifier) && (parenthesized_expression "(uVar2 == local_f0)" ( (binary_expression "uVar2 == local_f0" identifier == identifier) ))) )) ))) )) (goto_statement "goto LAB_00021740;" goto statement_identifier ;))) (if_statement "if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;" if (parenthesized_expression "(((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc))))" ( (binary_expression "((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))" (parenthesized_expression "((int)uVar2 < (int)uVar5)" ( (binary_expression "(int)uVar2 < (int)uVar5" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))" ( (parenthesized_expression "(uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc))" ( (binary_expression "uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)" (binary_expression "uVar2 == uVar5" identifier == identifier) && (parenthesized_expression "(iVar1 < local_e8 - local_e8 % (int)local_dc)" ( (binary_expression "iVar1 < local_e8 - local_e8 % (int)local_dc" identifier < (binary_expression "local_e8 - local_e8 % (int)local_dc" identifier - (binary_expression "local_e8 % (int)local_dc" identifier % (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) ))) )) (goto_statement "goto LAB_00021830;" goto statement_identifier ;)) (expression_statement "local_28 = local_c4 | uVar2;" (assignment_expression "local_28 = local_c4 | uVar2" identifier = (binary_expression "local_c4 | uVar2" identifier | identifier)) ;) (expression_statement "local_24 = iVar1 + local_dc / 9;" (assignment_expression "local_24 = iVar1 + local_dc / 9" identifier = (binary_expression "iVar1 + local_dc / 9" identifier + (binary_expression "local_dc / 9" identifier / number_literal))) ;) (expression_statement "local_30.tv_sec = uVar4;" (assignment_expression "local_30.tv_sec = uVar4" (field_expression "local_30.tv_sec" identifier . field_identifier) = identifier) ;) (expression_statement "local_30.tv_nsec = iVar6;" (assignment_expression "local_30.tv_nsec = iVar6" (field_expression "local_30.tv_nsec" identifier . field_identifier) = identifier) ;) (expression_statement "iVar6 = utimensat(param_1,param_2,&local_30,0x100);" (assignment_expression "iVar6 = utimensat(param_1,param_2,&local_30,0x100)" identifier = (call_expression "utimensat(param_1,param_2,&local_30,0x100)" identifier (argument_list "(param_1,param_2,&local_30,0x100)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) , number_literal )))) ;) (if_statement "if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }" { (labeled_statement "LAB_00021d8a:\n          param_5 = 0xfffffffe;" statement_identifier : (expression_statement "param_5 = 0xfffffffe;" (assignment_expression "param_5 = 0xfffffffe" identifier = number_literal) ;)) (goto_statement "goto LAB_00021740;" goto statement_identifier ;) })) (expression_statement "iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);" (assignment_expression "iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100)" identifier = (call_expression "__fxstatat64(3,param_1,param_2,&local_90,0x100)" identifier (argument_list "(3,param_1,param_2,&local_90,0x100)" ( number_literal , identifier , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (expression_statement "local_d4 = local_90.st_mtim.tv_sec;" (assignment_expression "local_d4 = local_90.st_mtim.tv_sec" identifier = (field_expression "local_90.st_mtim.tv_sec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }" if (parenthesized_expression "((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0)" ( (binary_expression "(local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0" (parenthesized_expression "(local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec)" ( (binary_expression "local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec" (binary_expression "local_90.st_mtim.tv_sec != uVar2" (field_expression "local_90.st_mtim.tv_sec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) != identifier) || (binary_expression "iVar1 != local_90.st_mtim.tv_nsec" identifier != (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier))) )) || (binary_expression "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }" { (expression_statement "local_28 = uVar2;" (assignment_expression "local_28 = uVar2" identifier = identifier) ;) (expression_statement "local_24 = iVar1;" (assignment_expression "local_24 = iVar1" identifier = identifier) ;) (expression_statement "utimensat(param_1,param_2,&local_30,0x100);" (call_expression "utimensat(param_1,param_2,&local_30,0x100)" identifier (argument_list "(param_1,param_2,&local_30,0x100)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) , number_literal ))) ;) (if_statement "if (iVar6 != 0) goto LAB_00021d8a;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00021d8a;" goto statement_identifier ;)) (expression_statement "local_d4 = local_90.st_mtim.tv_sec;" (assignment_expression "local_d4 = local_90.st_mtim.tv_sec" identifier = (field_expression "local_90.st_mtim.tv_sec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier)) ;) })) (expression_statement "local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;" (assignment_expression "local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) = (binary_expression "(local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec" (binary_expression "(local_d4 & 1) * 1000000000" (parenthesized_expression "(local_d4 & 1)" ( (binary_expression "local_d4 & 1" identifier & number_literal) )) * number_literal) + (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier))) ;) (if_statement "if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }" if (parenthesized_expression "(local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10)" ( (binary_expression "local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) == (binary_expression "(local_90.st_mtim.tv_nsec / 10) * 10" (parenthesized_expression "(local_90.st_mtim.tv_nsec / 10)" ( (binary_expression "local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) / number_literal) )) * number_literal)) )) (compound_statement "{\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }" { (if_statement "if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }" if (parenthesized_expression "(local_dc == 10)" ( (binary_expression "local_dc == 10" identifier == number_literal) )) (compound_statement "{\n            param_5 = 10;\n          }" { (expression_statement "param_5 = 10;" (assignment_expression "param_5 = 10" identifier = number_literal) ;) }) (else_clause "else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }" else (compound_statement "{\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }" { (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" identifier = number_literal) ;) (expression_statement "param_5 = 10;" (assignment_expression "param_5 = 10" identifier = number_literal) ;) (do_statement "do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);" do (compound_statement "{\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            }" { (expression_statement "local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;" (assignment_expression "local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) = (binary_expression "local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) / number_literal)) ;) (if_statement "if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;" if (parenthesized_expression "(local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10)" ( (binary_expression "local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) != (binary_expression "(local_90.st_mtim.tv_nsec / 10) * 10" (parenthesized_expression "(local_90.st_mtim.tv_nsec / 10)" ( (binary_expression "local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) / number_literal) )) * number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (if_statement "if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                param_5 = 2000000000;\n                break;\n              }" { (expression_statement "param_5 = 2000000000;" (assignment_expression "param_5 = 2000000000" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "param_5 = param_5 * 10;" (assignment_expression "param_5 = param_5 * 10" identifier = (binary_expression "param_5 * 10" identifier * number_literal)) ;) }) while (parenthesized_expression "(param_5 != local_dc)" ( (binary_expression "param_5 != local_dc" identifier != identifier) )) ;) }))) })) (expression_statement "local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);" (assignment_expression "local_f0 = local_f0 & ~(uint)(param_5 == 2000000000)" identifier = (binary_expression "local_f0 & ~(uint)(param_5 == 2000000000)" identifier & (unary_expression "~(uint)(param_5 == 2000000000)" ~ (call_expression "(uint)(param_5 == 2000000000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_5 == 2000000000)" ( (binary_expression "param_5 == 2000000000" identifier == number_literal) )))))) ;) (expression_statement "local_e8 = local_e8 - local_e8 % (int)param_5;" (assignment_expression "local_e8 = local_e8 - local_e8 % (int)param_5" identifier = (binary_expression "local_e8 - local_e8 % (int)param_5" identifier - (binary_expression "local_e8 % (int)param_5" identifier % (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "local_d8[2] = param_5;" (assignment_expression "local_d8[2] = param_5" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(local_d8 + 3) = 1;" (assignment_expression "*(undefined1 *)(local_d8 + 3) = 1" (pointer_expression "*(undefined1 *)(local_d8 + 3)" * (cast_expression "(undefined1 *)(local_d8 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 3)" ( (binary_expression "local_d8 + 3" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00021808;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00021830:\n  param_5 = 0xffffffff;" statement_identifier : (expression_statement "param_5 = 0xffffffff;" (assignment_expression "param_5 = 0xffffffff" identifier = number_literal) ;)) (labeled_statement "LAB_00021740:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002bfb0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0002bfb0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_0002bfb0();\n  }" { comment (expression_statement "FUN_0002bfb0();" (call_expression "FUN_0002bfb0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return param_5;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint utimecmpat(int dfd,char *dst_name,stat *dst_stat,stat *src_stat,int options)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  Hash_table *table;\n  uint uVar6;\n  int iVar7;\n  fs_res *entry;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int in_GS_OFFSET;\n  uint local_f0;\n  int local_e8;\n  uint local_dc;\n  fs_res *local_d8;\n  uint local_d4;\n  int local_d0;\n  uint local_c4;\n  fs_res tmp_dst_res;\n  stat dst_status;\n  timespec timespec [2];\n  \n  iVar1 = (dst_stat->st_mtim).tv_nsec;\n  uVar2 = (dst_stat->st_mtim).tv_sec;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  local_f0 = (src_stat->st_mtim).tv_sec;\n  local_e8 = (src_stat->st_mtim).tv_nsec;\n  uVar10 = options & 1;\n  if (uVar10 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      uVar10 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        uVar10 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      uVar10 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&\n         (utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)) {\nLAB_0002187f:\n        local_d8 = &tmp_dst_res;\n        tmp_dst_res.resolution = 2000000000;\n        tmp_dst_res.exact = false;\n        local_d4 = 2000000000;\n      }\n      else {\n        table = utimecmpat::lexical_block_10::ht;\n        entry = utimecmpat::lexical_block_10::new_dst_res;\n        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }\n        local_d4 = local_d8->resolution;\n        if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar7 = (dst_stat->st_atim).tv_nsec;\n      iVar8 = iVar7 / 10;\n      iVar11 = (dst_stat->st_ctim).tv_nsec;\n      iVar9 = (iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f);\n      iVar11 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)) {\n        uVar5 = (dst_stat->st_atim).tv_sec;\n        local_c4 = 0;\n        uVar6 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        timespec[1].tv_sec = local_c4 | uVar2;\n        timespec[1].tv_nsec = iVar1 + local_dc / 9;\n        timespec[0].tv_sec = uVar5;\n        timespec[0].tv_nsec = iVar7;\n        iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n        if (iVar7 != 0) {\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);\n        local_d4 = dst_status.st_mtim.tv_sec;\n        if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0) {\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }\n        iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;\n        if (iVar7 == (iVar7 / 10) * 10) {\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)uVar10;\n      }\n      local_d8->resolution = uVar10;\n      local_d8->exact = true;\n      goto LAB_00021808;\n    }\n  }\nLAB_00021830:\n  uVar10 = 0xffffffff;\nLAB_00021740:\n  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar10;\n}\n\n" comment comment (function_definition "int utimecmpat(int dfd,char *dst_name,stat *dst_stat,stat *src_stat,int options)\n\n{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  Hash_table *table;\n  uint uVar6;\n  int iVar7;\n  fs_res *entry;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int in_GS_OFFSET;\n  uint local_f0;\n  int local_e8;\n  uint local_dc;\n  fs_res *local_d8;\n  uint local_d4;\n  int local_d0;\n  uint local_c4;\n  fs_res tmp_dst_res;\n  stat dst_status;\n  timespec timespec [2];\n  \n  iVar1 = (dst_stat->st_mtim).tv_nsec;\n  uVar2 = (dst_stat->st_mtim).tv_sec;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  local_f0 = (src_stat->st_mtim).tv_sec;\n  local_e8 = (src_stat->st_mtim).tv_nsec;\n  uVar10 = options & 1;\n  if (uVar10 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      uVar10 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        uVar10 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      uVar10 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&\n         (utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)) {\nLAB_0002187f:\n        local_d8 = &tmp_dst_res;\n        tmp_dst_res.resolution = 2000000000;\n        tmp_dst_res.exact = false;\n        local_d4 = 2000000000;\n      }\n      else {\n        table = utimecmpat::lexical_block_10::ht;\n        entry = utimecmpat::lexical_block_10::new_dst_res;\n        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }\n        local_d4 = local_d8->resolution;\n        if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar7 = (dst_stat->st_atim).tv_nsec;\n      iVar8 = iVar7 / 10;\n      iVar11 = (dst_stat->st_ctim).tv_nsec;\n      iVar9 = (iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f);\n      iVar11 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)) {\n        uVar5 = (dst_stat->st_atim).tv_sec;\n        local_c4 = 0;\n        uVar6 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        timespec[1].tv_sec = local_c4 | uVar2;\n        timespec[1].tv_nsec = iVar1 + local_dc / 9;\n        timespec[0].tv_sec = uVar5;\n        timespec[0].tv_nsec = iVar7;\n        iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n        if (iVar7 != 0) {\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);\n        local_d4 = dst_status.st_mtim.tv_sec;\n        if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0) {\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }\n        iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;\n        if (iVar7 == (iVar7 / 10) * 10) {\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)uVar10;\n      }\n      local_d8->resolution = uVar10;\n      local_d8->exact = true;\n      goto LAB_00021808;\n    }\n  }\nLAB_00021830:\n  uVar10 = 0xffffffff;\nLAB_00021740:\n  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar10;\n}" primitive_type (function_declarator "utimecmpat(int dfd,char *dst_name,stat *dst_stat,stat *src_stat,int options)" identifier (parameter_list "(int dfd,char *dst_name,stat *dst_stat,stat *src_stat,int options)" ( (parameter_declaration "int dfd" primitive_type identifier) , (parameter_declaration "char *dst_name" primitive_type (pointer_declarator "*dst_name" * identifier)) , (parameter_declaration "stat *dst_stat" type_identifier (pointer_declarator "*dst_stat" * identifier)) , (parameter_declaration "stat *src_stat" type_identifier (pointer_declarator "*src_stat" * identifier)) , (parameter_declaration "int options" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  int iVar3;\n  undefined4 uVar4;\n  uint uVar5;\n  Hash_table *table;\n  uint uVar6;\n  int iVar7;\n  fs_res *entry;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int in_GS_OFFSET;\n  uint local_f0;\n  int local_e8;\n  uint local_dc;\n  fs_res *local_d8;\n  uint local_d4;\n  int local_d0;\n  uint local_c4;\n  fs_res tmp_dst_res;\n  stat dst_status;\n  timespec timespec [2];\n  \n  iVar1 = (dst_stat->st_mtim).tv_nsec;\n  uVar2 = (dst_stat->st_mtim).tv_sec;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  local_f0 = (src_stat->st_mtim).tv_sec;\n  local_e8 = (src_stat->st_mtim).tv_nsec;\n  uVar10 = options & 1;\n  if (uVar10 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      uVar10 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        uVar10 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      uVar10 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&\n         (utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)) {\nLAB_0002187f:\n        local_d8 = &tmp_dst_res;\n        tmp_dst_res.resolution = 2000000000;\n        tmp_dst_res.exact = false;\n        local_d4 = 2000000000;\n      }\n      else {\n        table = utimecmpat::lexical_block_10::ht;\n        entry = utimecmpat::lexical_block_10::new_dst_res;\n        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }\n        local_d4 = local_d8->resolution;\n        if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar7 = (dst_stat->st_atim).tv_nsec;\n      iVar8 = iVar7 / 10;\n      iVar11 = (dst_stat->st_ctim).tv_nsec;\n      iVar9 = (iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f);\n      iVar11 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)) {\n        uVar5 = (dst_stat->st_atim).tv_sec;\n        local_c4 = 0;\n        uVar6 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        timespec[1].tv_sec = local_c4 | uVar2;\n        timespec[1].tv_nsec = iVar1 + local_dc / 9;\n        timespec[0].tv_sec = uVar5;\n        timespec[0].tv_nsec = iVar7;\n        iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n        if (iVar7 != 0) {\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);\n        local_d4 = dst_status.st_mtim.tv_sec;\n        if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0) {\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }\n        iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;\n        if (iVar7 == (iVar7 / 10) * 10) {\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)uVar10;\n      }\n      local_d8->resolution = uVar10;\n      local_d8->exact = true;\n      goto LAB_00021808;\n    }\n  }\nLAB_00021830:\n  uVar10 = 0xffffffff;\nLAB_00021740:\n  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar10;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "Hash_table *table;" type_identifier (pointer_declarator "*table" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "fs_res *entry;" type_identifier (pointer_declarator "*entry" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "fs_res *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "uint local_d4;" type_identifier identifier ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "uint local_c4;" type_identifier identifier ;) (declaration "fs_res tmp_dst_res;" type_identifier identifier ;) (declaration "stat dst_status;" type_identifier identifier ;) (declaration "timespec timespec [2];" type_identifier (array_declarator "timespec [2]" identifier [ number_literal ]) ;) (expression_statement "iVar1 = (dst_stat->st_mtim).tv_nsec;" (assignment_expression "iVar1 = (dst_stat->st_mtim).tv_nsec" identifier = (field_expression "(dst_stat->st_mtim).tv_nsec" (parenthesized_expression "(dst_stat->st_mtim)" ( (field_expression "dst_stat->st_mtim" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar2 = (dst_stat->st_mtim).tv_sec;" (assignment_expression "uVar2 = (dst_stat->st_mtim).tv_sec" identifier = (field_expression "(dst_stat->st_mtim).tv_sec" (parenthesized_expression "(dst_stat->st_mtim)" ( (field_expression "dst_stat->st_mtim" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar3 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar3 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_f0 = (src_stat->st_mtim).tv_sec;" (assignment_expression "local_f0 = (src_stat->st_mtim).tv_sec" identifier = (field_expression "(src_stat->st_mtim).tv_sec" (parenthesized_expression "(src_stat->st_mtim)" ( (field_expression "src_stat->st_mtim" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_e8 = (src_stat->st_mtim).tv_nsec;" (assignment_expression "local_e8 = (src_stat->st_mtim).tv_nsec" identifier = (field_expression "(src_stat->st_mtim).tv_nsec" (parenthesized_expression "(src_stat->st_mtim)" ( (field_expression "src_stat->st_mtim" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar10 = options & 1;" (assignment_expression "uVar10 = options & 1" identifier = (binary_expression "options & 1" identifier & number_literal)) ;) (if_statement "if (uVar10 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      uVar10 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        uVar10 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      uVar10 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&\n         (utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)) {\nLAB_0002187f:\n        local_d8 = &tmp_dst_res;\n        tmp_dst_res.resolution = 2000000000;\n        tmp_dst_res.exact = false;\n        local_d4 = 2000000000;\n      }\n      else {\n        table = utimecmpat::lexical_block_10::ht;\n        entry = utimecmpat::lexical_block_10::new_dst_res;\n        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }\n        local_d4 = local_d8->resolution;\n        if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar7 = (dst_stat->st_atim).tv_nsec;\n      iVar8 = iVar7 / 10;\n      iVar11 = (dst_stat->st_ctim).tv_nsec;\n      iVar9 = (iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f);\n      iVar11 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)) {\n        uVar5 = (dst_stat->st_atim).tv_sec;\n        local_c4 = 0;\n        uVar6 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        timespec[1].tv_sec = local_c4 | uVar2;\n        timespec[1].tv_nsec = iVar1 + local_dc / 9;\n        timespec[0].tv_sec = uVar5;\n        timespec[0].tv_nsec = iVar7;\n        iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n        if (iVar7 != 0) {\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);\n        local_d4 = dst_status.st_mtim.tv_sec;\n        if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0) {\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }\n        iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;\n        if (iVar7 == (iVar7 / 10) * 10) {\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)uVar10;\n      }\n      local_d8->resolution = uVar10;\n      local_d8->exact = true;\n      goto LAB_00021808;\n    }\n  }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      uVar10 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        uVar10 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }" { (labeled_statement "LAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      uVar10 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        uVar10 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" statement_identifier : (if_statement "if ((int)local_f0 <= (int)uVar2) {\n      uVar10 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        uVar10 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" if (parenthesized_expression "((int)local_f0 <= (int)uVar2)" ( (binary_expression "(int)local_f0 <= (int)uVar2" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      uVar10 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        uVar10 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" { (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (if_statement "if (local_f0 != uVar2) goto LAB_00021740;" if (parenthesized_expression "(local_f0 != uVar2)" ( (binary_expression "local_f0 != uVar2" identifier != identifier) )) (goto_statement "goto LAB_00021740;" goto statement_identifier ;)) (if_statement "if (local_e8 <= iVar1) {\n        uVar10 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }" if (parenthesized_expression "(local_e8 <= iVar1)" ( (binary_expression "local_e8 <= iVar1" identifier <= identifier) )) (compound_statement "{\n        uVar10 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }" { (expression_statement "uVar10 = (uint)(local_e8 < iVar1);" (assignment_expression "uVar10 = (uint)(local_e8 < iVar1)" identifier = (call_expression "(uint)(local_e8 < iVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_e8 < iVar1)" ( (binary_expression "local_e8 < iVar1" identifier < identifier) )))) ;) (goto_statement "goto LAB_00021740;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      uVar10 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&\n         (utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)) {\nLAB_0002187f:\n        local_d8 = &tmp_dst_res;\n        tmp_dst_res.resolution = 2000000000;\n        tmp_dst_res.exact = false;\n        local_d4 = 2000000000;\n      }\n      else {\n        table = utimecmpat::lexical_block_10::ht;\n        entry = utimecmpat::lexical_block_10::new_dst_res;\n        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }\n        local_d4 = local_d8->resolution;\n        if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar7 = (dst_stat->st_atim).tv_nsec;\n      iVar8 = iVar7 / 10;\n      iVar11 = (dst_stat->st_ctim).tv_nsec;\n      iVar9 = (iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f);\n      iVar11 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)) {\n        uVar5 = (dst_stat->st_atim).tv_sec;\n        local_c4 = 0;\n        uVar6 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        timespec[1].tv_sec = local_c4 | uVar2;\n        timespec[1].tv_nsec = iVar1 + local_dc / 9;\n        timespec[0].tv_sec = uVar5;\n        timespec[0].tv_nsec = iVar7;\n        iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n        if (iVar7 != 0) {\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);\n        local_d4 = dst_status.st_mtim.tv_sec;\n        if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0) {\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }\n        iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;\n        if (iVar7 == (iVar7 / 10) * 10) {\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)uVar10;\n      }\n      local_d8->resolution = uVar10;\n      local_d8->exact = true;\n      goto LAB_00021808;\n    }\n  }" else (compound_statement "{\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      uVar10 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&\n         (utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)) {\nLAB_0002187f:\n        local_d8 = &tmp_dst_res;\n        tmp_dst_res.resolution = 2000000000;\n        tmp_dst_res.exact = false;\n        local_d4 = 2000000000;\n      }\n      else {\n        table = utimecmpat::lexical_block_10::ht;\n        entry = utimecmpat::lexical_block_10::new_dst_res;\n        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }\n        local_d4 = local_d8->resolution;\n        if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar7 = (dst_stat->st_atim).tv_nsec;\n      iVar8 = iVar7 / 10;\n      iVar11 = (dst_stat->st_ctim).tv_nsec;\n      iVar9 = (iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f);\n      iVar11 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)) {\n        uVar5 = (dst_stat->st_atim).tv_sec;\n        local_c4 = 0;\n        uVar6 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        timespec[1].tv_sec = local_c4 | uVar2;\n        timespec[1].tv_nsec = iVar1 + local_dc / 9;\n        timespec[0].tv_sec = uVar5;\n        timespec[0].tv_nsec = iVar7;\n        iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n        if (iVar7 != 0) {\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);\n        local_d4 = dst_status.st_mtim.tv_sec;\n        if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0) {\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }\n        iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;\n        if (iVar7 == (iVar7 / 10) * 10) {\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)uVar10;\n      }\n      local_d8->resolution = uVar10;\n      local_d8->exact = true;\n      goto LAB_00021808;\n    }\n  }" { (if_statement "if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      uVar10 = 0;\n      goto LAB_00021740;\n    }" if (parenthesized_expression "((iVar1 == local_e8) && (uVar2 == local_f0))" ( (binary_expression "(iVar1 == local_e8) && (uVar2 == local_f0)" (parenthesized_expression "(iVar1 == local_e8)" ( (binary_expression "iVar1 == local_e8" identifier == identifier) )) && (parenthesized_expression "(uVar2 == local_f0)" ( (binary_expression "uVar2 == local_f0" identifier == identifier) ))) )) (compound_statement "{\n      uVar10 = 0;\n      goto LAB_00021740;\n    }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00021740;" goto statement_identifier ;) })) (if_statement "if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&\n         (utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)) {\nLAB_0002187f:\n        local_d8 = &tmp_dst_res;\n        tmp_dst_res.resolution = 2000000000;\n        tmp_dst_res.exact = false;\n        local_d4 = 2000000000;\n      }\n      else {\n        table = utimecmpat::lexical_block_10::ht;\n        entry = utimecmpat::lexical_block_10::new_dst_res;\n        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }\n        local_d4 = local_d8->resolution;\n        if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar7 = (dst_stat->st_atim).tv_nsec;\n      iVar8 = iVar7 / 10;\n      iVar11 = (dst_stat->st_ctim).tv_nsec;\n      iVar9 = (iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f);\n      iVar11 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)) {\n        uVar5 = (dst_stat->st_atim).tv_sec;\n        local_c4 = 0;\n        uVar6 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        timespec[1].tv_sec = local_c4 | uVar2;\n        timespec[1].tv_nsec = iVar1 + local_dc / 9;\n        timespec[0].tv_sec = uVar5;\n        timespec[0].tv_nsec = iVar7;\n        iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n        if (iVar7 != 0) {\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);\n        local_d4 = dst_status.st_mtim.tv_sec;\n        if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0) {\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }\n        iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;\n        if (iVar7 == (iVar7 / 10) * 10) {\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)uVar10;\n      }\n      local_d8->resolution = uVar10;\n      local_d8->exact = true;\n      goto LAB_00021808;\n    }" if (parenthesized_expression "((int)(local_f0 - 1) <= (int)uVar2)" ( (binary_expression "(int)(local_f0 - 1) <= (int)uVar2" (cast_expression "(int)(local_f0 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_f0 - 1)" ( (binary_expression "local_f0 - 1" identifier - number_literal) ))) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&\n         (utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)) {\nLAB_0002187f:\n        local_d8 = &tmp_dst_res;\n        tmp_dst_res.resolution = 2000000000;\n        tmp_dst_res.exact = false;\n        local_d4 = 2000000000;\n      }\n      else {\n        table = utimecmpat::lexical_block_10::ht;\n        entry = utimecmpat::lexical_block_10::new_dst_res;\n        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }\n        local_d4 = local_d8->resolution;\n        if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar7 = (dst_stat->st_atim).tv_nsec;\n      iVar8 = iVar7 / 10;\n      iVar11 = (dst_stat->st_ctim).tv_nsec;\n      iVar9 = (iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f);\n      iVar11 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)) {\n        uVar5 = (dst_stat->st_atim).tv_sec;\n        local_c4 = 0;\n        uVar6 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        timespec[1].tv_sec = local_c4 | uVar2;\n        timespec[1].tv_nsec = iVar1 + local_dc / 9;\n        timespec[0].tv_sec = uVar5;\n        timespec[0].tv_nsec = iVar7;\n        iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n        if (iVar7 != 0) {\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);\n        local_d4 = dst_status.st_mtim.tv_sec;\n        if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0) {\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }\n        iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;\n        if (iVar7 == (iVar7 / 10) * 10) {\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)uVar10;\n      }\n      local_d8->resolution = uVar10;\n      local_d8->exact = true;\n      goto LAB_00021808;\n    }" { (if_statement "if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;" if (parenthesized_expression "((int)local_f0 < (int)(uVar2 - 1))" ( (binary_expression "(int)local_f0 < (int)(uVar2 - 1)" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uVar2 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 - 1)" ( (binary_expression "uVar2 - 1" identifier - number_literal) )))) )) (goto_statement "goto LAB_00021740;" goto statement_identifier ;)) (if_statement "if ((utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&\n         (utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)) {\nLAB_0002187f:\n        local_d8 = &tmp_dst_res;\n        tmp_dst_res.resolution = 2000000000;\n        tmp_dst_res.exact = false;\n        local_d4 = 2000000000;\n      }\n      else {\n        table = utimecmpat::lexical_block_10::ht;\n        entry = utimecmpat::lexical_block_10::new_dst_res;\n        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }\n        local_d4 = local_d8->resolution;\n        if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" if (parenthesized_expression "((utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&\n         (utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0))" ( (binary_expression "(utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) &&\n         (utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)" (parenthesized_expression "(utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)" ( (ERROR "utimecmpat::lexical_block_10::" identifier : : identifier : :) (binary_expression "ht == (Hash_table *)0x0" identifier == (cast_expression "(Hash_table *)0x0" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)" ( (ERROR "utimecmpat::lexical_block_10::ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat::lexical_block_10::" identifier : : identifier : : (comma_expression "ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8),\n         utimecmpat" (assignment_expression "ht =\n               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8)" identifier = (call_expression "hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8)" identifier (argument_list "(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,\n                               (Hash_data_freer)PTR_free_00038fa8)" ( number_literal , (cast_expression "(Hash_tuning *)0x0" ( (type_descriptor "Hash_tuning *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier , (cast_expression "(Hash_data_freer)PTR_free_00038fa8" ( (type_descriptor "Hash_data_freer" type_identifier) ) identifier) )))) , identifier) : : identifier : :) (binary_expression "ht == (Hash_table *)0x0" identifier == (cast_expression "(Hash_table *)0x0" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\nLAB_0002187f:\n        local_d8 = &tmp_dst_res;\n        tmp_dst_res.resolution = 2000000000;\n        tmp_dst_res.exact = false;\n        local_d4 = 2000000000;\n      }" { (labeled_statement "LAB_0002187f:\n        local_d8 = &tmp_dst_res;" statement_identifier : (expression_statement "local_d8 = &tmp_dst_res;" (assignment_expression "local_d8 = &tmp_dst_res" identifier = (pointer_expression "&tmp_dst_res" & identifier)) ;)) (expression_statement "tmp_dst_res.resolution = 2000000000;" (assignment_expression "tmp_dst_res.resolution = 2000000000" (field_expression "tmp_dst_res.resolution" identifier . field_identifier) = number_literal) ;) (expression_statement "tmp_dst_res.exact = false;" (assignment_expression "tmp_dst_res.exact = false" (field_expression "tmp_dst_res.exact" identifier . field_identifier) = false) ;) (expression_statement "local_d4 = 2000000000;" (assignment_expression "local_d4 = 2000000000" identifier = number_literal) ;) }) (else_clause "else {\n        table = utimecmpat::lexical_block_10::ht;\n        entry = utimecmpat::lexical_block_10::new_dst_res;\n        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }\n        local_d4 = local_d8->resolution;\n        if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" else (compound_statement "{\n        table = utimecmpat::lexical_block_10::ht;\n        entry = utimecmpat::lexical_block_10::new_dst_res;\n        if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }\n        local_d4 = local_d8->resolution;\n        if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" { (ERROR "table = utimecmpat::" (assignment_expression "table = utimecmpat" identifier = identifier) : :) (labeled_statement "lexical_block_10::ht;" statement_identifier : (ERROR ":" :) (expression_statement "ht;" identifier ;)) (ERROR "entry = utimecmpat::" (assignment_expression "entry = utimecmpat" identifier = identifier) : :) (labeled_statement "lexical_block_10::new_dst_res;" statement_identifier : (ERROR ":" :) (expression_statement "new_dst_res;" identifier ;)) (if_statement "if (utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0) {\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }" if (parenthesized_expression "(utimecmpat::lexical_block_10::new_dst_res == (fs_res *)0x0)" ( (ERROR "utimecmpat::lexical_block_10::" identifier : : identifier : :) (binary_expression "new_dst_res == (fs_res *)0x0" identifier == (cast_expression "(fs_res *)0x0" ( (type_descriptor "fs_res *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          entry = (fs_res *)malloc(0x10);\n          utimecmpat::lexical_block_10::new_dst_res = entry;\n          if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;\n          tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);\n          if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;\n        }" { (expression_statement "entry = (fs_res *)malloc(0x10);" (assignment_expression "entry = (fs_res *)malloc(0x10)" identifier = (cast_expression "(fs_res *)malloc(0x10)" ( (type_descriptor "fs_res *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (labeled_statement "utimecmpat::lexical_block_10::new_dst_res = entry;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10::new_dst_res = entry;" statement_identifier : (ERROR ":" :) (expression_statement "new_dst_res = entry;" (assignment_expression "new_dst_res = entry" identifier = identifier) ;))) (if_statement "if (entry != (fs_res *)0x0) {\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }" if (parenthesized_expression "(entry != (fs_res *)0x0)" ( (binary_expression "entry != (fs_res *)0x0" identifier != (cast_expression "(fs_res *)0x0" ( (type_descriptor "fs_res *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            entry->resolution = 2000000000;\n            entry->exact = false;\n            goto LAB_0002179a;\n          }" { (expression_statement "entry->resolution = 2000000000;" (assignment_expression "entry->resolution = 2000000000" (field_expression "entry->resolution" identifier -> field_identifier) = number_literal) ;) (expression_statement "entry->exact = false;" (assignment_expression "entry->exact = false" (field_expression "entry->exact" identifier -> field_identifier) = false) ;) (goto_statement "goto LAB_0002179a;" goto statement_identifier ;) })) (labeled_statement "LAB_00021cde:\n          tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;" statement_identifier : (expression_statement "tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev;" (assignment_expression "tmp_dst_res.dev._0_4_ = (undefined4)dst_stat->st_dev" (field_expression "tmp_dst_res.dev._0_4_" (field_expression "tmp_dst_res.dev" identifier . field_identifier) . field_identifier) = (cast_expression "(undefined4)dst_stat->st_dev" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "dst_stat->st_dev" identifier -> field_identifier))) ;)) (expression_statement "tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4);" (assignment_expression "tmp_dst_res.dev._4_4_ = *(undefined4 *)((int)&dst_stat->st_dev + 4)" (field_expression "tmp_dst_res.dev._4_4_" (field_expression "tmp_dst_res.dev" identifier . field_identifier) . field_identifier) = (pointer_expression "*(undefined4 *)((int)&dst_stat->st_dev + 4)" * (cast_expression "(undefined4 *)((int)&dst_stat->st_dev + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&dst_stat->st_dev + 4)" ( (binary_expression "(int)&dst_stat->st_dev + 4" (cast_expression "(int)&dst_stat->st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&dst_stat->st_dev" & (field_expression "dst_stat->st_dev" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res);" (assignment_expression "local_d8 = (fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res)" identifier = (cast_expression "(fs_res *)hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res)" ( (type_descriptor "fs_res *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "hash_lookup(utimecmpat::lexical_block_10::ht,&tmp_dst_res)" identifier (argument_list "(utimecmpat::lexical_block_10::ht,&tmp_dst_res)" ( (ERROR "utimecmpat::lexical_block_10::" identifier : : identifier : :) identifier , (pointer_expression "&tmp_dst_res" & identifier) ))))) ;) (if_statement "if (local_d8 == (fs_res *)0x0) goto LAB_0002187f;" if (parenthesized_expression "(local_d8 == (fs_res *)0x0)" ( (binary_expression "local_d8 == (fs_res *)0x0" identifier == (cast_expression "(fs_res *)0x0" ( (type_descriptor "fs_res *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002187f;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }" else (compound_statement "{\nLAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);\n          *(int *)&entry->dev = (int)dst_stat->st_dev;\n          *(undefined4 *)((int)&entry->dev + 4) = uVar4;\n          local_d8 = (fs_res *)hash_insert(table,entry);\n          if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }\n        }" { (labeled_statement "LAB_0002179a:\n          uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);" statement_identifier : (expression_statement "uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4);" (assignment_expression "uVar4 = *(undefined4 *)((int)&dst_stat->st_dev + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&dst_stat->st_dev + 4)" * (cast_expression "(undefined4 *)((int)&dst_stat->st_dev + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&dst_stat->st_dev + 4)" ( (binary_expression "(int)&dst_stat->st_dev + 4" (cast_expression "(int)&dst_stat->st_dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&dst_stat->st_dev" & (field_expression "dst_stat->st_dev" identifier -> field_identifier))) + number_literal) ))))) ;)) (expression_statement "*(int *)&entry->dev = (int)dst_stat->st_dev;" (assignment_expression "*(int *)&entry->dev = (int)dst_stat->st_dev" (pointer_expression "*(int *)&entry->dev" * (cast_expression "(int *)&entry->dev" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&entry->dev" & (field_expression "entry->dev" identifier -> field_identifier)))) = (cast_expression "(int)dst_stat->st_dev" ( (type_descriptor "int" primitive_type) ) (field_expression "dst_stat->st_dev" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&entry->dev + 4) = uVar4;" (assignment_expression "*(undefined4 *)((int)&entry->dev + 4) = uVar4" (pointer_expression "*(undefined4 *)((int)&entry->dev + 4)" * (cast_expression "(undefined4 *)((int)&entry->dev + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&entry->dev + 4)" ( (binary_expression "(int)&entry->dev + 4" (cast_expression "(int)&entry->dev" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&entry->dev" & (field_expression "entry->dev" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "local_d8 = (fs_res *)hash_insert(table,entry);" (assignment_expression "local_d8 = (fs_res *)hash_insert(table,entry)" identifier = (cast_expression "(fs_res *)hash_insert(table,entry)" ( (type_descriptor "fs_res *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "hash_insert(table,entry)" identifier (argument_list "(table,entry)" ( identifier , identifier ))))) ;) (if_statement "if (local_d8 == (fs_res *)0x0) {\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }" if (parenthesized_expression "(local_d8 == (fs_res *)0x0)" ( (binary_expression "local_d8 == (fs_res *)0x0" identifier == (cast_expression "(fs_res *)0x0" ( (type_descriptor "fs_res *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }" { (if_statement "if (utimecmpat::lexical_block_10::ht == (Hash_table *)0x0) goto LAB_0002187f;" if (parenthesized_expression "(utimecmpat::lexical_block_10::ht == (Hash_table *)0x0)" ( (ERROR "utimecmpat::lexical_block_10::" identifier : : identifier : :) (binary_expression "ht == (Hash_table *)0x0" identifier == (cast_expression "(Hash_table *)0x0" ( (type_descriptor "Hash_table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002187f;" goto statement_identifier ;)) (goto_statement "goto LAB_00021cde;" goto statement_identifier ;) })) (if_statement "if (utimecmpat::lexical_block_10::new_dst_res == local_d8) {\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }" if (parenthesized_expression "(utimecmpat::lexical_block_10::new_dst_res == local_d8)" ( (ERROR "utimecmpat::lexical_block_10::" identifier : : identifier : :) (binary_expression "new_dst_res == local_d8" identifier == identifier) )) (compound_statement "{\n            utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;\n          }" { (labeled_statement "utimecmpat::lexical_block_10::new_dst_res = (fs_res *)0x0;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10::new_dst_res = (fs_res *)0x0;" statement_identifier : (ERROR ":" :) (expression_statement "new_dst_res = (fs_res *)0x0;" (assignment_expression "new_dst_res = (fs_res *)0x0" identifier = (cast_expression "(fs_res *)0x0" ( (type_descriptor "fs_res *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;))) })) }))) (expression_statement "local_d4 = local_d8->resolution;" (assignment_expression "local_d4 = local_d8->resolution" identifier = (field_expression "local_d8->resolution" identifier -> field_identifier)) ;) (if_statement "if (local_d8->exact != false) {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }" if (parenthesized_expression "(local_d8->exact != false)" ( (binary_expression "local_d8->exact != false" (field_expression "local_d8->exact" identifier -> field_identifier) != false) )) (compound_statement "{\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }" { (expression_statement "local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);" (assignment_expression "local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000)" identifier = (binary_expression "local_f0 & ~(uint)(local_d4 == 2000000000)" identifier & (unary_expression "~(uint)(local_d4 == 2000000000)" ~ (call_expression "(uint)(local_d4 == 2000000000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d4 == 2000000000)" ( (binary_expression "local_d4 == 2000000000" identifier == number_literal) )))))) ;) (expression_statement "local_e8 = local_e8 - local_e8 % (int)local_d4;" (assignment_expression "local_e8 = local_e8 - local_e8 % (int)local_d4" identifier = (binary_expression "local_e8 - local_e8 % (int)local_d4" identifier - (binary_expression "local_e8 % (int)local_d4" identifier % (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (goto_statement "goto LAB_00021808;" goto statement_identifier ;) })) }))) (expression_statement "iVar7 = (dst_stat->st_atim).tv_nsec;" (assignment_expression "iVar7 = (dst_stat->st_atim).tv_nsec" identifier = (field_expression "(dst_stat->st_atim).tv_nsec" (parenthesized_expression "(dst_stat->st_atim)" ( (field_expression "dst_stat->st_atim" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar8 = iVar7 / 10;" (assignment_expression "iVar8 = iVar7 / 10" identifier = (binary_expression "iVar7 / 10" identifier / number_literal)) ;) (expression_statement "iVar11 = (dst_stat->st_ctim).tv_nsec;" (assignment_expression "iVar11 = (dst_stat->st_ctim).tv_nsec" identifier = (field_expression "(dst_stat->st_ctim).tv_nsec" (parenthesized_expression "(dst_stat->st_ctim)" ( (field_expression "dst_stat->st_ctim" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "iVar9 = (iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f);" (assignment_expression "iVar9 = (iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f)" identifier = (binary_expression "(iVar11 / 10 + (iVar11 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f)" (parenthesized_expression "(iVar11 / 10 + (iVar11 >> 0x1f))" ( (binary_expression "iVar11 / 10 + (iVar11 >> 0x1f)" (binary_expression "iVar11 / 10" identifier / number_literal) + (parenthesized_expression "(iVar11 >> 0x1f)" ( (binary_expression "iVar11 >> 0x1f" identifier >> number_literal) ))) )) - (parenthesized_expression "((dst_stat->st_ctim).tv_nsec >> 0x1f)" ( (binary_expression "(dst_stat->st_ctim).tv_nsec >> 0x1f" (field_expression "(dst_stat->st_ctim).tv_nsec" (parenthesized_expression "(dst_stat->st_ctim)" ( (field_expression "dst_stat->st_ctim" identifier -> field_identifier) )) . field_identifier) >> number_literal) )))) ;) (expression_statement "iVar11 = iVar1 / 10;" (assignment_expression "iVar11 = iVar1 / 10" identifier = (binary_expression "iVar1 / 10" identifier / number_literal)) ;) (if_statement "if (iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)) {\n        uVar5 = (dst_stat->st_atim).tv_sec;\n        local_c4 = 0;\n        uVar6 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        timespec[1].tv_sec = local_c4 | uVar2;\n        timespec[1].tv_nsec = iVar1 + local_dc / 9;\n        timespec[0].tv_sec = uVar5;\n        timespec[0].tv_nsec = iVar7;\n        iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n        if (iVar7 != 0) {\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);\n        local_d4 = dst_status.st_mtim.tv_sec;\n        if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0) {\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }\n        iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;\n        if (iVar7 == (iVar7 / 10) * 10) {\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)uVar10;\n      }" if (parenthesized_expression "(iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0))" ( (binary_expression "iVar1 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)" (binary_expression "iVar1 % 10 == 0" (binary_expression "iVar1 % 10" identifier % number_literal) == number_literal) && (parenthesized_expression "((dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0)" ( (binary_expression "(dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0 && iVar7 % 10 == 0" (binary_expression "(dst_stat->st_ctim).tv_nsec + iVar9 * -10 == 0" (binary_expression "(dst_stat->st_ctim).tv_nsec + iVar9 * -10" (field_expression "(dst_stat->st_ctim).tv_nsec" (parenthesized_expression "(dst_stat->st_ctim)" ( (field_expression "dst_stat->st_ctim" identifier -> field_identifier) )) . field_identifier) + (binary_expression "iVar9 * -10" identifier * number_literal)) == number_literal) && (binary_expression "iVar7 % 10 == 0" (binary_expression "iVar7 % 10" identifier % number_literal) == number_literal)) ))) )) (compound_statement "{\n        uVar5 = (dst_stat->st_atim).tv_sec;\n        local_c4 = 0;\n        uVar6 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        timespec[1].tv_sec = local_c4 | uVar2;\n        timespec[1].tv_nsec = iVar1 + local_dc / 9;\n        timespec[0].tv_sec = uVar5;\n        timespec[0].tv_nsec = iVar7;\n        iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n        if (iVar7 != 0) {\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);\n        local_d4 = dst_status.st_mtim.tv_sec;\n        if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0) {\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }\n        iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;\n        if (iVar7 == (iVar7 / 10) * 10) {\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)uVar10;\n      }" { (expression_statement "uVar5 = (dst_stat->st_atim).tv_sec;" (assignment_expression "uVar5 = (dst_stat->st_atim).tv_sec" identifier = (field_expression "(dst_stat->st_atim).tv_sec" (parenthesized_expression "(dst_stat->st_atim)" ( (field_expression "dst_stat->st_atim" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = local_f0;" (assignment_expression "uVar6 = local_f0" identifier = identifier) ;) (if_statement "if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }" if (parenthesized_expression "((int)local_d4 < 0xb)" ( (binary_expression "(int)local_d4 < 0xb" (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_dc = 10;\n          local_d8->resolution = 10;\n        }" { (expression_statement "local_dc = 10;" (assignment_expression "local_dc = 10" identifier = number_literal) ;) (expression_statement "local_d8->resolution = 10;" (assignment_expression "local_d8->resolution = 10" (field_expression "local_d8->resolution" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }" else (compound_statement "{\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }\n        }" { (expression_statement "local_d0 = 8;" (assignment_expression "local_d0 = 8" identifier = number_literal) ;) (expression_statement "local_dc = 10;" (assignment_expression "local_dc = 10" identifier = number_literal) ;) (if_statement "if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8->resolution = 10;\n          }" if (parenthesized_expression "((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0)" ( (binary_expression "(iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar11 % 10 == 0" (parenthesized_expression "(iVar9 % 10 == 0 && iVar8 % 10 == 0)" ( (binary_expression "iVar9 % 10 == 0 && iVar8 % 10 == 0" (binary_expression "iVar9 % 10 == 0" (binary_expression "iVar9 % 10" identifier % number_literal) == number_literal) && (binary_expression "iVar8 % 10 == 0" (binary_expression "iVar8 % 10" identifier % number_literal) == number_literal)) )) && (binary_expression "iVar11 % 10 == 0" (binary_expression "iVar11 % 10" identifier % number_literal) == number_literal)) )) (compound_statement "{\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }\n          }" { (do_statement "do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);" do (compound_statement "{\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar11 = iVar11 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            }" { (expression_statement "local_dc = local_dc * 10;" (assignment_expression "local_dc = local_dc * 10" identifier = (binary_expression "local_dc * 10" identifier * number_literal)) ;) (expression_statement "iVar8 = iVar8 / 10;" (assignment_expression "iVar8 = iVar8 / 10" identifier = (binary_expression "iVar8 / 10" identifier / number_literal)) ;) (expression_statement "iVar9 = iVar9 / 10;" (assignment_expression "iVar9 = iVar9 / 10" identifier = (binary_expression "iVar9 / 10" identifier / number_literal)) ;) (expression_statement "iVar11 = iVar11 / 10;" (assignment_expression "iVar11 = iVar11 / 10" identifier = (binary_expression "iVar11 / 10" identifier / number_literal)) ;) (if_statement "if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)) {\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }" if (parenthesized_expression "(((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0))" ( (binary_expression "((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)" (parenthesized_expression "((int)local_d4 <= (int)local_dc)" ( (binary_expression "(int)local_d4 <= (int)local_dc" (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0)" ( (binary_expression "(iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar11 % 10 != 0" (parenthesized_expression "(iVar8 % 10 != 0 || iVar9 % 10 != 0)" ( (binary_expression "iVar8 % 10 != 0 || iVar9 % 10 != 0" (binary_expression "iVar8 % 10 != 0" (binary_expression "iVar8 % 10" identifier % number_literal) != number_literal) || (binary_expression "iVar9 % 10 != 0" (binary_expression "iVar9 % 10" identifier % number_literal) != number_literal)) )) || (binary_expression "iVar11 % 10 != 0" (binary_expression "iVar11 % 10" identifier % number_literal) != number_literal)) ))) )) (compound_statement "{\n                local_d8->resolution = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar6 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }" { (expression_statement "local_d8->resolution = local_dc;" (assignment_expression "local_d8->resolution = local_dc" (field_expression "local_d8->resolution" identifier -> field_identifier) = identifier) ;) (expression_statement "local_c4 = (uint)(local_dc == 2000000000);" (assignment_expression "local_c4 = (uint)(local_dc == 2000000000)" identifier = (call_expression "(uint)(local_dc == 2000000000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_dc == 2000000000)" ( (binary_expression "local_dc == 2000000000" identifier == number_literal) )))) ;) (expression_statement "uVar6 = ~local_c4 & local_f0;" (assignment_expression "uVar6 = ~local_c4 & local_f0" identifier = (binary_expression "~local_c4 & local_f0" (unary_expression "~local_c4" ~ identifier) & identifier)) ;) (goto_statement "goto LAB_00021ac2;" goto statement_identifier ;) })) (expression_statement "local_d0 = local_d0 + -1;" (assignment_expression "local_d0 = local_d0 + -1" identifier = (binary_expression "local_d0 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_d0 != 0)" ( (binary_expression "local_d0 != 0" identifier != number_literal) )) ;) (if_statement "if (((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }" if (parenthesized_expression "(((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0)" ( (binary_expression "((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1) == 0" (parenthesized_expression "((uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1)" ( (binary_expression "(uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec) & 1" (parenthesized_expression "(uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec)" ( (binary_expression "uVar5 | uVar2 | (dst_stat->st_ctim).tv_sec" (binary_expression "uVar5 | uVar2" identifier | identifier) | (field_expression "(dst_stat->st_ctim).tv_sec" (parenthesized_expression "(dst_stat->st_ctim)" ( (field_expression "dst_stat->st_ctim" identifier -> field_identifier) )) . field_identifier)) )) & number_literal) )) == number_literal) )) (compound_statement "{\n              local_d8->resolution = 2000000000;\n              local_dc = 2000000000;\n              uVar6 = local_f0 & 0xfffffffe;\n              local_c4 = uVar10;\n            }" { (expression_statement "local_d8->resolution = 2000000000;" (assignment_expression "local_d8->resolution = 2000000000" (field_expression "local_d8->resolution" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_dc = 2000000000;" (assignment_expression "local_dc = 2000000000" identifier = number_literal) ;) (expression_statement "uVar6 = local_f0 & 0xfffffffe;" (assignment_expression "uVar6 = local_f0 & 0xfffffffe" identifier = (binary_expression "local_f0 & 0xfffffffe" identifier & number_literal)) ;) (expression_statement "local_c4 = uVar10;" (assignment_expression "local_c4 = uVar10" identifier = identifier) ;) }) (else_clause "else {\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }" else (compound_statement "{\n              local_dc = 1000000000;\n              local_d8->resolution = 1000000000;\n              local_c4 = 0;\n            }" { (expression_statement "local_dc = 1000000000;" (assignment_expression "local_dc = 1000000000" identifier = number_literal) ;) (expression_statement "local_d8->resolution = 1000000000;" (assignment_expression "local_d8->resolution = 1000000000" (field_expression "local_d8->resolution" identifier -> field_identifier) = number_literal) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n            local_d8->resolution = 10;\n          }" else (compound_statement "{\n            local_d8->resolution = 10;\n          }" { (expression_statement "local_d8->resolution = 10;" (assignment_expression "local_d8->resolution = 10" (field_expression "local_d8->resolution" identifier -> field_identifier) = number_literal) ;) }))) }))) (labeled_statement "LAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;" statement_identifier : (if_statement "if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;" if (parenthesized_expression "(((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))" ( (binary_expression "((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0)))" (parenthesized_expression "((int)local_f0 < (int)uVar2)" ( (binary_expression "(int)local_f0 < (int)uVar2" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((local_e8 <= iVar1 && (uVar2 == local_f0)))" ( (parenthesized_expression "(local_e8 <= iVar1 && (uVar2 == local_f0))" ( (binary_expression "local_e8 <= iVar1 && (uVar2 == local_f0)" (binary_expression "local_e8 <= iVar1" identifier <= identifier) && (parenthesized_expression "(uVar2 == local_f0)" ( (binary_expression "uVar2 == local_f0" identifier == identifier) ))) )) ))) )) (goto_statement "goto LAB_00021740;" goto statement_identifier ;))) (if_statement "if (((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;" if (parenthesized_expression "(((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc))))" ( (binary_expression "((int)uVar2 < (int)uVar6) ||\n           ((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))" (parenthesized_expression "((int)uVar2 < (int)uVar6)" ( (binary_expression "(int)uVar2 < (int)uVar6" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))" ( (parenthesized_expression "(uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc))" ( (binary_expression "uVar2 == uVar6 && (iVar1 < local_e8 - local_e8 % (int)local_dc)" (binary_expression "uVar2 == uVar6" identifier == identifier) && (parenthesized_expression "(iVar1 < local_e8 - local_e8 % (int)local_dc)" ( (binary_expression "iVar1 < local_e8 - local_e8 % (int)local_dc" identifier < (binary_expression "local_e8 - local_e8 % (int)local_dc" identifier - (binary_expression "local_e8 % (int)local_dc" identifier % (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) ))) )) (goto_statement "goto LAB_00021830;" goto statement_identifier ;)) (expression_statement "timespec[1].tv_sec = local_c4 | uVar2;" (assignment_expression "timespec[1].tv_sec = local_c4 | uVar2" (field_expression "timespec[1].tv_sec" (subscript_expression "timespec[1]" identifier [ number_literal ]) . field_identifier) = (binary_expression "local_c4 | uVar2" identifier | identifier)) ;) (expression_statement "timespec[1].tv_nsec = iVar1 + local_dc / 9;" (assignment_expression "timespec[1].tv_nsec = iVar1 + local_dc / 9" (field_expression "timespec[1].tv_nsec" (subscript_expression "timespec[1]" identifier [ number_literal ]) . field_identifier) = (binary_expression "iVar1 + local_dc / 9" identifier + (binary_expression "local_dc / 9" identifier / number_literal))) ;) (expression_statement "timespec[0].tv_sec = uVar5;" (assignment_expression "timespec[0].tv_sec = uVar5" (field_expression "timespec[0].tv_sec" (subscript_expression "timespec[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "timespec[0].tv_nsec = iVar7;" (assignment_expression "timespec[0].tv_nsec = iVar7" (field_expression "timespec[0].tv_nsec" (subscript_expression "timespec[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100);" (assignment_expression "iVar7 = utimensat(dfd,dst_name,(timespec *)timespec,0x100)" identifier = (call_expression "utimensat(dfd,dst_name,(timespec *)timespec,0x100)" identifier (argument_list "(dfd,dst_name,(timespec *)timespec,0x100)" ( identifier , identifier , (cast_expression "(timespec *)timespec" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (iVar7 != 0) {\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00021d8a:\n          uVar10 = 0xfffffffe;\n          goto LAB_00021740;\n        }" { (labeled_statement "LAB_00021d8a:\n          uVar10 = 0xfffffffe;" statement_identifier : (expression_statement "uVar10 = 0xfffffffe;" (assignment_expression "uVar10 = 0xfffffffe" identifier = number_literal) ;)) (goto_statement "goto LAB_00021740;" goto statement_identifier ;) })) (expression_statement "iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100);" (assignment_expression "iVar7 = __fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100)" identifier = (call_expression "__fxstatat64(3,dfd,dst_name,(stat64 *)&dst_status,0x100)" identifier (argument_list "(3,dfd,dst_name,(stat64 *)&dst_status,0x100)" ( number_literal , identifier , identifier , (cast_expression "(stat64 *)&dst_status" ( (type_descriptor "stat64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&dst_status" & identifier)) , number_literal )))) ;) (expression_statement "local_d4 = dst_status.st_mtim.tv_sec;" (assignment_expression "local_d4 = dst_status.st_mtim.tv_sec" identifier = (field_expression "dst_status.st_mtim.tv_sec" (field_expression "dst_status.st_mtim" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0) {\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }" if (parenthesized_expression "((dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0)" ( (binary_expression "(dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec) ||\n            iVar7 != 0" (parenthesized_expression "(dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec)" ( (binary_expression "dst_status.st_mtim.tv_sec != uVar2 || iVar1 != dst_status.st_mtim.tv_nsec" (binary_expression "dst_status.st_mtim.tv_sec != uVar2" (field_expression "dst_status.st_mtim.tv_sec" (field_expression "dst_status.st_mtim" identifier . field_identifier) . field_identifier) != identifier) || (binary_expression "iVar1 != dst_status.st_mtim.tv_nsec" identifier != (field_expression "dst_status.st_mtim.tv_nsec" (field_expression "dst_status.st_mtim" identifier . field_identifier) . field_identifier))) )) || (binary_expression "iVar7 != 0" identifier != number_literal)) )) (compound_statement "{\n          timespec[1].tv_sec = uVar2;\n          timespec[1].tv_nsec = iVar1;\n          utimensat(dfd,dst_name,(timespec *)timespec,0x100);\n          if (iVar7 != 0) goto LAB_00021d8a;\n          local_d4 = dst_status.st_mtim.tv_sec;\n        }" { (expression_statement "timespec[1].tv_sec = uVar2;" (assignment_expression "timespec[1].tv_sec = uVar2" (field_expression "timespec[1].tv_sec" (subscript_expression "timespec[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "timespec[1].tv_nsec = iVar1;" (assignment_expression "timespec[1].tv_nsec = iVar1" (field_expression "timespec[1].tv_nsec" (subscript_expression "timespec[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "utimensat(dfd,dst_name,(timespec *)timespec,0x100);" (call_expression "utimensat(dfd,dst_name,(timespec *)timespec,0x100)" identifier (argument_list "(dfd,dst_name,(timespec *)timespec,0x100)" ( identifier , identifier , (cast_expression "(timespec *)timespec" ( (type_descriptor "timespec *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))) ;) (if_statement "if (iVar7 != 0) goto LAB_00021d8a;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00021d8a;" goto statement_identifier ;)) (expression_statement "local_d4 = dst_status.st_mtim.tv_sec;" (assignment_expression "local_d4 = dst_status.st_mtim.tv_sec" identifier = (field_expression "dst_status.st_mtim.tv_sec" (field_expression "dst_status.st_mtim" identifier . field_identifier) . field_identifier)) ;) })) (expression_statement "iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;" (assignment_expression "iVar7 = (local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec" identifier = (binary_expression "(local_d4 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec" (binary_expression "(local_d4 & 1) * 1000000000" (parenthesized_expression "(local_d4 & 1)" ( (binary_expression "local_d4 & 1" identifier & number_literal) )) * number_literal) + (field_expression "dst_status.st_mtim.tv_nsec" (field_expression "dst_status.st_mtim" identifier . field_identifier) . field_identifier))) ;) (if_statement "if (iVar7 == (iVar7 / 10) * 10) {\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }" if (parenthesized_expression "(iVar7 == (iVar7 / 10) * 10)" ( (binary_expression "iVar7 == (iVar7 / 10) * 10" identifier == (binary_expression "(iVar7 / 10) * 10" (parenthesized_expression "(iVar7 / 10)" ( (binary_expression "iVar7 / 10" identifier / number_literal) )) * number_literal)) )) (compound_statement "{\n          if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }\n        }" { (if_statement "if (local_dc == 10) {\n            uVar10 = 10;\n          }\n          else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }" if (parenthesized_expression "(local_dc == 10)" ( (binary_expression "local_dc == 10" identifier == number_literal) )) (compound_statement "{\n            uVar10 = 10;\n          }" { (expression_statement "uVar10 = 10;" (assignment_expression "uVar10 = 10" identifier = number_literal) ;) }) (else_clause "else {\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }" else (compound_statement "{\n            iVar11 = 9;\n            uVar10 = 10;\n            do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);\n          }" { (expression_statement "iVar11 = 9;" (assignment_expression "iVar11 = 9" identifier = number_literal) ;) (expression_statement "uVar10 = 10;" (assignment_expression "uVar10 = 10" identifier = number_literal) ;) (do_statement "do {\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            } while (uVar10 != local_dc);" do (compound_statement "{\n              iVar7 = iVar7 / 10;\n              if (iVar7 != (iVar7 / 10) * 10) break;\n              iVar11 = iVar11 + -1;\n              if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }\n              uVar10 = uVar10 * 10;\n            }" { (expression_statement "iVar7 = iVar7 / 10;" (assignment_expression "iVar7 = iVar7 / 10" identifier = (binary_expression "iVar7 / 10" identifier / number_literal)) ;) (if_statement "if (iVar7 != (iVar7 / 10) * 10) break;" if (parenthesized_expression "(iVar7 != (iVar7 / 10) * 10)" ( (binary_expression "iVar7 != (iVar7 / 10) * 10" identifier != (binary_expression "(iVar7 / 10) * 10" (parenthesized_expression "(iVar7 / 10)" ( (binary_expression "iVar7 / 10" identifier / number_literal) )) * number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar11 = iVar11 + -1;" (assignment_expression "iVar11 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) ;) (if_statement "if (iVar11 == 0) {\n                uVar10 = 2000000000;\n                break;\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar10 = 2000000000;\n                break;\n              }" { (expression_statement "uVar10 = 2000000000;" (assignment_expression "uVar10 = 2000000000" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "uVar10 = uVar10 * 10;" (assignment_expression "uVar10 = uVar10 * 10" identifier = (binary_expression "uVar10 * 10" identifier * number_literal)) ;) }) while (parenthesized_expression "(uVar10 != local_dc)" ( (binary_expression "uVar10 != local_dc" identifier != identifier) )) ;) }))) })) (expression_statement "local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000);" (assignment_expression "local_f0 = local_f0 & ~(uint)(uVar10 == 2000000000)" identifier = (binary_expression "local_f0 & ~(uint)(uVar10 == 2000000000)" identifier & (unary_expression "~(uint)(uVar10 == 2000000000)" ~ (call_expression "(uint)(uVar10 == 2000000000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 == 2000000000)" ( (binary_expression "uVar10 == 2000000000" identifier == number_literal) )))))) ;) (expression_statement "local_e8 = local_e8 - local_e8 % (int)uVar10;" (assignment_expression "local_e8 = local_e8 - local_e8 % (int)uVar10" identifier = (binary_expression "local_e8 - local_e8 % (int)uVar10" identifier - (binary_expression "local_e8 % (int)uVar10" identifier % (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "local_d8->resolution = uVar10;" (assignment_expression "local_d8->resolution = uVar10" (field_expression "local_d8->resolution" identifier -> field_identifier) = identifier) ;) (expression_statement "local_d8->exact = true;" (assignment_expression "local_d8->exact = true" (field_expression "local_d8->exact" identifier -> field_identifier) = true) ;) (goto_statement "goto LAB_00021808;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00021830:\n  uVar10 = 0xffffffff;" statement_identifier : (expression_statement "uVar10 = 0xffffffff;" (assignment_expression "uVar10 = 0xffffffff" identifier = number_literal) ;)) (labeled_statement "LAB_00021740:\n  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" statement_identifier : (if_statement "if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar3 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar3 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return uVar10;" return identifier ;) })))
(translation_unit "uint FUN_000216c0(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  uint local_f0;\n  int local_e8;\n  uint local_dc;\n  undefined4 *local_d8;\n  uint local_d4;\n  int local_d0;\n  uint local_c4;\n  undefined4 local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined1 local_94;\n  stat64 local_90;\n  timespec local_30;\n  uint local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x216c9;\n  iVar1 = param_3[0x13];\n  uVar2 = param_3[0x12];\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_f0 = *(uint *)(param_4 + 0x48);\n  local_e8 = *(int *)(param_4 + 0x4c);\n  param_5 = param_5 & 1;\n  if (param_5 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }\nLAB_00021830:\n  param_5 = 0xffffffff;\nLAB_00021740:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002bfb0();\n  }\n  return param_5;\n}\n\n" (function_definition "uint FUN_000216c0(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  uint local_f0;\n  int local_e8;\n  uint local_dc;\n  undefined4 *local_d8;\n  uint local_d4;\n  int local_d0;\n  uint local_c4;\n  undefined4 local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined1 local_94;\n  stat64 local_90;\n  timespec local_30;\n  uint local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x216c9;\n  iVar1 = param_3[0x13];\n  uVar2 = param_3[0x12];\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_f0 = *(uint *)(param_4 + 0x48);\n  local_e8 = *(int *)(param_4 + 0x4c);\n  param_5 = param_5 & 1;\n  if (param_5 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }\nLAB_00021830:\n  param_5 = 0xffffffff;\nLAB_00021740:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002bfb0();\n  }\n  return param_5;\n}" type_identifier (function_declarator "FUN_000216c0(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)" identifier (parameter_list "(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  uint local_f0;\n  int local_e8;\n  uint local_dc;\n  undefined4 *local_d8;\n  uint local_d4;\n  int local_d0;\n  uint local_c4;\n  undefined4 local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined1 local_94;\n  stat64 local_90;\n  timespec local_30;\n  uint local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x216c9;\n  iVar1 = param_3[0x13];\n  uVar2 = param_3[0x12];\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_f0 = *(uint *)(param_4 + 0x48);\n  local_e8 = *(int *)(param_4 + 0x4c);\n  param_5 = param_5 & 1;\n  if (param_5 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }\nLAB_00021830:\n  param_5 = 0xffffffff;\nLAB_00021740:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002bfb0();\n  }\n  return param_5;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "undefined4 *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "uint local_f0;" type_identifier identifier ;) (declaration "int local_e8;" primitive_type identifier ;) (declaration "uint local_dc;" type_identifier identifier ;) (declaration "undefined4 *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "uint local_d4;" type_identifier identifier ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "uint local_c4;" type_identifier identifier ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "undefined4 local_9c;" type_identifier identifier ;) (declaration "undefined4 local_98;" type_identifier identifier ;) (declaration "undefined1 local_94;" type_identifier identifier ;) (declaration "stat64 local_90;" type_identifier identifier ;) (declaration "timespec local_30;" type_identifier identifier ;) (declaration "uint local_28;" type_identifier identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x216c9;" (assignment_expression "uStack_14 = 0x216c9" identifier = number_literal) ;) (expression_statement "iVar1 = param_3[0x13];" (assignment_expression "iVar1 = param_3[0x13]" identifier = (subscript_expression "param_3[0x13]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = param_3[0x12];" (assignment_expression "uVar2 = param_3[0x12]" identifier = (subscript_expression "param_3[0x12]" identifier [ number_literal ])) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_f0 = *(uint *)(param_4 + 0x48);" (assignment_expression "local_f0 = *(uint *)(param_4 + 0x48)" identifier = (pointer_expression "*(uint *)(param_4 + 0x48)" * (cast_expression "(uint *)(param_4 + 0x48)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x48)" ( (binary_expression "param_4 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "local_e8 = *(int *)(param_4 + 0x4c);" (assignment_expression "local_e8 = *(int *)(param_4 + 0x4c)" identifier = (pointer_expression "*(int *)(param_4 + 0x4c)" * (cast_expression "(int *)(param_4 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x4c)" ( (binary_expression "param_4 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "param_5 = param_5 & 1;" (assignment_expression "param_5 = param_5 & 1" identifier = (binary_expression "param_5 & 1" identifier & number_literal)) ;) (if_statement "if (param_5 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }" { (labeled_statement "LAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" statement_identifier : (if_statement "if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" if (parenthesized_expression "((int)local_f0 <= (int)uVar2)" ( (binary_expression "(int)local_f0 <= (int)uVar2" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" { (expression_statement "param_5 = 1;" (assignment_expression "param_5 = 1" identifier = number_literal) ;) (if_statement "if (local_f0 != uVar2) goto LAB_00021740;" if (parenthesized_expression "(local_f0 != uVar2)" ( (binary_expression "local_f0 != uVar2" identifier != identifier) )) (goto_statement "goto LAB_00021740;" goto statement_identifier ;)) (if_statement "if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }" if (parenthesized_expression "(local_e8 <= iVar1)" ( (binary_expression "local_e8 <= iVar1" identifier <= identifier) )) (compound_statement "{\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }" { (expression_statement "param_5 = (uint)(local_e8 < iVar1);" (assignment_expression "param_5 = (uint)(local_e8 < iVar1)" identifier = (call_expression "(uint)(local_e8 < iVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_e8 < iVar1)" ( (binary_expression "local_e8 < iVar1" identifier < identifier) )))) ;) (goto_statement "goto LAB_00021740;" goto statement_identifier ;) })) }))) }) (else_clause "else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }" else (compound_statement "{\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }" { (if_statement "if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }" if (parenthesized_expression "((iVar1 == local_e8) && (uVar2 == local_f0))" ( (binary_expression "(iVar1 == local_e8) && (uVar2 == local_f0)" (parenthesized_expression "(iVar1 == local_e8)" ( (binary_expression "iVar1 == local_e8" identifier == identifier) )) && (parenthesized_expression "(uVar2 == local_f0)" ( (binary_expression "uVar2 == local_f0" identifier == identifier) ))) )) (compound_statement "{\n      param_5 = 0;\n      goto LAB_00021740;\n    }" { (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00021740;" goto statement_identifier ;) })) (if_statement "if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }" if (parenthesized_expression "((int)(local_f0 - 1) <= (int)uVar2)" ( (binary_expression "(int)(local_f0 - 1) <= (int)uVar2" (cast_expression "(int)(local_f0 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_f0 - 1)" ( (binary_expression "local_f0 - 1" identifier - number_literal) ))) <= (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }" { (if_statement "if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;" if (parenthesized_expression "((int)local_f0 < (int)(uVar2 - 1))" ( (binary_expression "(int)local_f0 < (int)(uVar2 - 1)" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)(uVar2 - 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 - 1)" ( (binary_expression "uVar2 - 1" identifier - number_literal) )))) )) (goto_statement "goto LAB_00021740;" goto statement_identifier ;)) (if_statement "if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" if (parenthesized_expression "((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0))" ( (binary_expression "(DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)" (parenthesized_expression "(DAT_00039874 == 0)" ( (binary_expression "DAT_00039874 == 0" identifier == number_literal) )) && (parenthesized_expression "(DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)" ( (comma_expression "DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0" (assignment_expression "DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8)" identifier = (call_expression "FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8)" identifier (argument_list "(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8)" ( number_literal , number_literal , identifier , identifier , identifier )))) , (binary_expression "DAT_00039874 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }" { (labeled_statement "LAB_0002187f:\n        local_d8 = &local_a0;" statement_identifier : (expression_statement "local_d8 = &local_a0;" (assignment_expression "local_d8 = &local_a0" identifier = (pointer_expression "&local_a0" & identifier)) ;)) (expression_statement "local_98 = 2000000000;" (assignment_expression "local_98 = 2000000000" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_d4 = 2000000000;" (assignment_expression "local_d4 = 2000000000" identifier = number_literal) ;) }) (else_clause "else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" else (compound_statement "{\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" { (expression_statement "iVar6 = DAT_00039874;" (assignment_expression "iVar6 = DAT_00039874" identifier = identifier) ;) (expression_statement "puVar7 = DAT_00039870;" (assignment_expression "puVar7 = DAT_00039870" identifier = identifier) ;) (if_statement "if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }" if (parenthesized_expression "(DAT_00039870 == (undefined4 *)0x0)" ( (binary_expression "DAT_00039870 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }" { (expression_statement "puVar7 = (undefined4 *)malloc(0x10);" (assignment_expression "puVar7 = (undefined4 *)malloc(0x10)" identifier = (cast_expression "(undefined4 *)malloc(0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x10)" identifier (argument_list "(0x10)" ( number_literal ))))) ;) (expression_statement "DAT_00039870 = puVar7;" (assignment_expression "DAT_00039870 = puVar7" identifier = identifier) ;) (if_statement "if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }" if (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" ( (binary_expression "puVar7 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }" { (expression_statement "puVar7[2] = 2000000000;" (assignment_expression "puVar7[2] = 2000000000" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(puVar7 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 3)" * (cast_expression "(undefined1 *)(puVar7 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + 3)" ( (binary_expression "puVar7 + 3" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002179a;" goto statement_identifier ;) })) (labeled_statement "LAB_00021cde:\n          local_a0 = *param_3;" statement_identifier : (expression_statement "local_a0 = *param_3;" (assignment_expression "local_a0 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;)) (expression_statement "local_9c = param_3[1];" (assignment_expression "local_9c = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;) (expression_statement "local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);" (assignment_expression "local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0)" identifier = (cast_expression "(undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001dad0(DAT_00039874,&local_a0)" identifier (argument_list "(DAT_00039874,&local_a0)" ( identifier , (pointer_expression "&local_a0" & identifier) ))))) ;) (if_statement "if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;" if (parenthesized_expression "(local_d8 == (undefined4 *)0x0)" ( (binary_expression "local_d8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002187f;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }" else (compound_statement "{\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }" { (labeled_statement "LAB_0002179a:\n          uVar3 = param_3[1];" statement_identifier : (expression_statement "uVar3 = param_3[1];" (assignment_expression "uVar3 = param_3[1]" identifier = (subscript_expression "param_3[1]" identifier [ number_literal ])) ;)) (expression_statement "*puVar7 = *param_3;" (assignment_expression "*puVar7 = *param_3" (pointer_expression "*puVar7" * identifier) = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "puVar7[1] = uVar3;" (assignment_expression "puVar7[1] = uVar3" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);" (assignment_expression "local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7)" identifier = (cast_expression "(undefined4 *)FUN_0001e400(iVar6,puVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001e400(iVar6,puVar7)" identifier (argument_list "(iVar6,puVar7)" ( identifier , identifier ))))) ;) (if_statement "if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }" if (parenthesized_expression "(local_d8 == (undefined4 *)0x0)" ( (binary_expression "local_d8 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }" { (if_statement "if (DAT_00039874 == 0) goto LAB_0002187f;" if (parenthesized_expression "(DAT_00039874 == 0)" ( (binary_expression "DAT_00039874 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002187f;" goto statement_identifier ;)) (goto_statement "goto LAB_00021cde;" goto statement_identifier ;) })) (if_statement "if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }" if (parenthesized_expression "(DAT_00039870 == local_d8)" ( (binary_expression "DAT_00039870 == local_d8" identifier == identifier) )) (compound_statement "{\n            DAT_00039870 = (undefined4 *)0x0;\n          }" { (expression_statement "DAT_00039870 = (undefined4 *)0x0;" (assignment_expression "DAT_00039870 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) (expression_statement "local_d4 = local_d8[2];" (assignment_expression "local_d4 = local_d8[2]" identifier = (subscript_expression "local_d8[2]" identifier [ number_literal ])) ;) (if_statement "if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }" if (parenthesized_expression "(*(char *)(local_d8 + 3) != '\0')" ( (binary_expression "*(char *)(local_d8 + 3) != '\0'" (pointer_expression "*(char *)(local_d8 + 3)" * (cast_expression "(char *)(local_d8 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 3)" ( (binary_expression "local_d8 + 3" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }" { (expression_statement "local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);" (assignment_expression "local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000)" identifier = (binary_expression "local_f0 & ~(uint)(local_d4 == 2000000000)" identifier & (unary_expression "~(uint)(local_d4 == 2000000000)" ~ (call_expression "(uint)(local_d4 == 2000000000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d4 == 2000000000)" ( (binary_expression "local_d4 == 2000000000" identifier == number_literal) )))))) ;) (expression_statement "local_e8 = local_e8 - local_e8 % (int)local_d4;" (assignment_expression "local_e8 = local_e8 - local_e8 % (int)local_d4" identifier = (binary_expression "local_e8 - local_e8 % (int)local_d4" identifier - (binary_expression "local_e8 % (int)local_d4" identifier % (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (goto_statement "goto LAB_00021808;" goto statement_identifier ;) })) }))) (expression_statement "iVar6 = param_3[0x11];" (assignment_expression "iVar6 = param_3[0x11]" identifier = (subscript_expression "param_3[0x11]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = iVar6 / 10;" (assignment_expression "iVar8 = iVar6 / 10" identifier = (binary_expression "iVar6 / 10" identifier / number_literal)) ;) (expression_statement "iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);" (assignment_expression "iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f)" identifier = (binary_expression "((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f)" (parenthesized_expression "((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f))" ( (binary_expression "(int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)" (binary_expression "(int)param_3[0x15] / 10" (cast_expression "(int)param_3[0x15]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0x15]" identifier [ number_literal ])) / number_literal) + (parenthesized_expression "((int)param_3[0x15] >> 0x1f)" ( (binary_expression "(int)param_3[0x15] >> 0x1f" (cast_expression "(int)param_3[0x15]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0x15]" identifier [ number_literal ])) >> number_literal) ))) )) - (parenthesized_expression "((int)param_3[0x15] >> 0x1f)" ( (binary_expression "(int)param_3[0x15] >> 0x1f" (cast_expression "(int)param_3[0x15]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0x15]" identifier [ number_literal ])) >> number_literal) )))) ;) (expression_statement "iVar10 = iVar1 / 10;" (assignment_expression "iVar10 = iVar1 / 10" identifier = (binary_expression "iVar1 / 10" identifier / number_literal)) ;) (if_statement "if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }" if (parenthesized_expression "(iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0))" ( (binary_expression "iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)" (binary_expression "iVar1 % 10 == 0" (binary_expression "iVar1 % 10" identifier % number_literal) == number_literal) && (parenthesized_expression "(param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)" ( (binary_expression "param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0" (binary_expression "param_3[0x15] + iVar9 * -10 == 0" (binary_expression "param_3[0x15] + iVar9 * -10" (subscript_expression "param_3[0x15]" identifier [ number_literal ]) + (binary_expression "iVar9 * -10" identifier * number_literal)) == number_literal) && (binary_expression "iVar6 % 10 == 0" (binary_expression "iVar6 % 10" identifier % number_literal) == number_literal)) ))) )) (compound_statement "{\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }" { (expression_statement "uVar4 = param_3[0x10];" (assignment_expression "uVar4 = param_3[0x10]" identifier = (subscript_expression "param_3[0x10]" identifier [ number_literal ])) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = local_f0;" (assignment_expression "uVar5 = local_f0" identifier = identifier) ;) (if_statement "if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }" if (parenthesized_expression "((int)local_d4 < 0xb)" ( (binary_expression "(int)local_d4 < 0xb" (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_dc = 10;\n          local_d8[2] = 10;\n        }" { (expression_statement "local_dc = 10;" (assignment_expression "local_dc = 10" identifier = number_literal) ;) (expression_statement "local_d8[2] = 10;" (assignment_expression "local_d8[2] = 10" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }" else (compound_statement "{\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }" { (expression_statement "local_d0 = 8;" (assignment_expression "local_d0 = 8" identifier = number_literal) ;) (expression_statement "local_dc = 10;" (assignment_expression "local_dc = 10" identifier = number_literal) ;) (if_statement "if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }" if (parenthesized_expression "((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0)" ( (binary_expression "(iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0" (parenthesized_expression "(iVar9 % 10 == 0 && iVar8 % 10 == 0)" ( (binary_expression "iVar9 % 10 == 0 && iVar8 % 10 == 0" (binary_expression "iVar9 % 10 == 0" (binary_expression "iVar9 % 10" identifier % number_literal) == number_literal) && (binary_expression "iVar8 % 10 == 0" (binary_expression "iVar8 % 10" identifier % number_literal) == number_literal)) )) && (binary_expression "iVar10 % 10 == 0" (binary_expression "iVar10 % 10" identifier % number_literal) == number_literal)) )) (compound_statement "{\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }" { (do_statement "do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);" do (compound_statement "{\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            }" { (expression_statement "local_dc = local_dc * 10;" (assignment_expression "local_dc = local_dc * 10" identifier = (binary_expression "local_dc * 10" identifier * number_literal)) ;) (expression_statement "iVar8 = iVar8 / 10;" (assignment_expression "iVar8 = iVar8 / 10" identifier = (binary_expression "iVar8 / 10" identifier / number_literal)) ;) (expression_statement "iVar9 = iVar9 / 10;" (assignment_expression "iVar9 = iVar9 / 10" identifier = (binary_expression "iVar9 / 10" identifier / number_literal)) ;) (expression_statement "iVar10 = iVar10 / 10;" (assignment_expression "iVar10 = iVar10 / 10" identifier = (binary_expression "iVar10 / 10" identifier / number_literal)) ;) (if_statement "if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }" if (parenthesized_expression "(((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0))" ( (binary_expression "((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)" (parenthesized_expression "((int)local_d4 <= (int)local_dc)" ( (binary_expression "(int)local_d4 <= (int)local_dc" (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)" ( (binary_expression "(iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0" (parenthesized_expression "(iVar8 % 10 != 0 || iVar9 % 10 != 0)" ( (binary_expression "iVar8 % 10 != 0 || iVar9 % 10 != 0" (binary_expression "iVar8 % 10 != 0" (binary_expression "iVar8 % 10" identifier % number_literal) != number_literal) || (binary_expression "iVar9 % 10 != 0" (binary_expression "iVar9 % 10" identifier % number_literal) != number_literal)) )) || (binary_expression "iVar10 % 10 != 0" (binary_expression "iVar10 % 10" identifier % number_literal) != number_literal)) ))) )) (compound_statement "{\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }" { (expression_statement "local_d8[2] = local_dc;" (assignment_expression "local_d8[2] = local_dc" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_c4 = (uint)(local_dc == 2000000000);" (assignment_expression "local_c4 = (uint)(local_dc == 2000000000)" identifier = (call_expression "(uint)(local_dc == 2000000000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_dc == 2000000000)" ( (binary_expression "local_dc == 2000000000" identifier == number_literal) )))) ;) (expression_statement "uVar5 = ~local_c4 & local_f0;" (assignment_expression "uVar5 = ~local_c4 & local_f0" identifier = (binary_expression "~local_c4 & local_f0" (unary_expression "~local_c4" ~ identifier) & identifier)) ;) (goto_statement "goto LAB_00021ac2;" goto statement_identifier ;) })) (expression_statement "local_d0 = local_d0 + -1;" (assignment_expression "local_d0 = local_d0 + -1" identifier = (binary_expression "local_d0 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_d0 != 0)" ( (binary_expression "local_d0 != 0" identifier != number_literal) )) ;) (if_statement "if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }" if (parenthesized_expression "(((uVar4 | uVar2 | param_3[0x14]) & 1) == 0)" ( (binary_expression "((uVar4 | uVar2 | param_3[0x14]) & 1) == 0" (parenthesized_expression "((uVar4 | uVar2 | param_3[0x14]) & 1)" ( (binary_expression "(uVar4 | uVar2 | param_3[0x14]) & 1" (parenthesized_expression "(uVar4 | uVar2 | param_3[0x14])" ( (binary_expression "uVar4 | uVar2 | param_3[0x14]" (binary_expression "uVar4 | uVar2" identifier | identifier) | (subscript_expression "param_3[0x14]" identifier [ number_literal ])) )) & number_literal) )) == number_literal) )) (compound_statement "{\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }" { (expression_statement "local_d8[2] = 2000000000;" (assignment_expression "local_d8[2] = 2000000000" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_dc = 2000000000;" (assignment_expression "local_dc = 2000000000" identifier = number_literal) ;) (expression_statement "uVar5 = local_f0 & 0xfffffffe;" (assignment_expression "uVar5 = local_f0 & 0xfffffffe" identifier = (binary_expression "local_f0 & 0xfffffffe" identifier & number_literal)) ;) (expression_statement "local_c4 = param_5;" (assignment_expression "local_c4 = param_5" identifier = identifier) ;) }) (else_clause "else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }" else (compound_statement "{\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }" { (expression_statement "local_dc = 1000000000;" (assignment_expression "local_dc = 1000000000" identifier = number_literal) ;) (expression_statement "local_d8[2] = 1000000000;" (assignment_expression "local_d8[2] = 1000000000" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n            local_d8[2] = 10;\n          }" else (compound_statement "{\n            local_d8[2] = 10;\n          }" { (expression_statement "local_d8[2] = 10;" (assignment_expression "local_d8[2] = 10" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = number_literal) ;) }))) }))) (labeled_statement "LAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;" statement_identifier : (if_statement "if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;" if (parenthesized_expression "(((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))" ( (binary_expression "((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0)))" (parenthesized_expression "((int)local_f0 < (int)uVar2)" ( (binary_expression "(int)local_f0 < (int)uVar2" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((local_e8 <= iVar1 && (uVar2 == local_f0)))" ( (parenthesized_expression "(local_e8 <= iVar1 && (uVar2 == local_f0))" ( (binary_expression "local_e8 <= iVar1 && (uVar2 == local_f0)" (binary_expression "local_e8 <= iVar1" identifier <= identifier) && (parenthesized_expression "(uVar2 == local_f0)" ( (binary_expression "uVar2 == local_f0" identifier == identifier) ))) )) ))) )) (goto_statement "goto LAB_00021740;" goto statement_identifier ;))) (if_statement "if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;" if (parenthesized_expression "(((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc))))" ( (binary_expression "((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))" (parenthesized_expression "((int)uVar2 < (int)uVar5)" ( (binary_expression "(int)uVar2 < (int)uVar5" (cast_expression "(int)uVar2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))" ( (parenthesized_expression "(uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc))" ( (binary_expression "uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)" (binary_expression "uVar2 == uVar5" identifier == identifier) && (parenthesized_expression "(iVar1 < local_e8 - local_e8 % (int)local_dc)" ( (binary_expression "iVar1 < local_e8 - local_e8 % (int)local_dc" identifier < (binary_expression "local_e8 - local_e8 % (int)local_dc" identifier - (binary_expression "local_e8 % (int)local_dc" identifier % (cast_expression "(int)local_dc" ( (type_descriptor "int" primitive_type) ) identifier)))) ))) )) ))) )) (goto_statement "goto LAB_00021830;" goto statement_identifier ;)) (expression_statement "local_28 = local_c4 | uVar2;" (assignment_expression "local_28 = local_c4 | uVar2" identifier = (binary_expression "local_c4 | uVar2" identifier | identifier)) ;) (expression_statement "local_24 = iVar1 + local_dc / 9;" (assignment_expression "local_24 = iVar1 + local_dc / 9" identifier = (binary_expression "iVar1 + local_dc / 9" identifier + (binary_expression "local_dc / 9" identifier / number_literal))) ;) (expression_statement "local_30.tv_sec = uVar4;" (assignment_expression "local_30.tv_sec = uVar4" (field_expression "local_30.tv_sec" identifier . field_identifier) = identifier) ;) (expression_statement "local_30.tv_nsec = iVar6;" (assignment_expression "local_30.tv_nsec = iVar6" (field_expression "local_30.tv_nsec" identifier . field_identifier) = identifier) ;) (expression_statement "iVar6 = utimensat(param_1,param_2,&local_30,0x100);" (assignment_expression "iVar6 = utimensat(param_1,param_2,&local_30,0x100)" identifier = (call_expression "utimensat(param_1,param_2,&local_30,0x100)" identifier (argument_list "(param_1,param_2,&local_30,0x100)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) , number_literal )))) ;) (if_statement "if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }" { (labeled_statement "LAB_00021d8a:\n          param_5 = 0xfffffffe;" statement_identifier : (expression_statement "param_5 = 0xfffffffe;" (assignment_expression "param_5 = 0xfffffffe" identifier = number_literal) ;)) (goto_statement "goto LAB_00021740;" goto statement_identifier ;) })) (expression_statement "iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);" (assignment_expression "iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100)" identifier = (call_expression "__fxstatat64(3,param_1,param_2,&local_90,0x100)" identifier (argument_list "(3,param_1,param_2,&local_90,0x100)" ( number_literal , identifier , identifier , (pointer_expression "&local_90" & identifier) , number_literal )))) ;) (expression_statement "local_d4 = local_90.st_mtim.tv_sec;" (assignment_expression "local_d4 = local_90.st_mtim.tv_sec" identifier = (field_expression "local_90.st_mtim.tv_sec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier)) ;) (if_statement "if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }" if (parenthesized_expression "((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0)" ( (binary_expression "(local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0" (parenthesized_expression "(local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec)" ( (binary_expression "local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec" (binary_expression "local_90.st_mtim.tv_sec != uVar2" (field_expression "local_90.st_mtim.tv_sec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) != identifier) || (binary_expression "iVar1 != local_90.st_mtim.tv_nsec" identifier != (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier))) )) || (binary_expression "iVar6 != 0" identifier != number_literal)) )) (compound_statement "{\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }" { (expression_statement "local_28 = uVar2;" (assignment_expression "local_28 = uVar2" identifier = identifier) ;) (expression_statement "local_24 = iVar1;" (assignment_expression "local_24 = iVar1" identifier = identifier) ;) (expression_statement "utimensat(param_1,param_2,&local_30,0x100);" (call_expression "utimensat(param_1,param_2,&local_30,0x100)" identifier (argument_list "(param_1,param_2,&local_30,0x100)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) , number_literal ))) ;) (if_statement "if (iVar6 != 0) goto LAB_00021d8a;" if (parenthesized_expression "(iVar6 != 0)" ( (binary_expression "iVar6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00021d8a;" goto statement_identifier ;)) (expression_statement "local_d4 = local_90.st_mtim.tv_sec;" (assignment_expression "local_d4 = local_90.st_mtim.tv_sec" identifier = (field_expression "local_90.st_mtim.tv_sec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier)) ;) })) (expression_statement "local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;" (assignment_expression "local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) = (binary_expression "(local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec" (binary_expression "(local_d4 & 1) * 1000000000" (parenthesized_expression "(local_d4 & 1)" ( (binary_expression "local_d4 & 1" identifier & number_literal) )) * number_literal) + (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier))) ;) (if_statement "if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }" if (parenthesized_expression "(local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10)" ( (binary_expression "local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) == (binary_expression "(local_90.st_mtim.tv_nsec / 10) * 10" (parenthesized_expression "(local_90.st_mtim.tv_nsec / 10)" ( (binary_expression "local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) / number_literal) )) * number_literal)) )) (compound_statement "{\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }" { (if_statement "if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }" if (parenthesized_expression "(local_dc == 10)" ( (binary_expression "local_dc == 10" identifier == number_literal) )) (compound_statement "{\n            param_5 = 10;\n          }" { (expression_statement "param_5 = 10;" (assignment_expression "param_5 = 10" identifier = number_literal) ;) }) (else_clause "else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }" else (compound_statement "{\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }" { (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" identifier = number_literal) ;) (expression_statement "param_5 = 10;" (assignment_expression "param_5 = 10" identifier = number_literal) ;) (do_statement "do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);" do (compound_statement "{\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            }" { (expression_statement "local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;" (assignment_expression "local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) = (binary_expression "local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) / number_literal)) ;) (if_statement "if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;" if (parenthesized_expression "(local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10)" ( (binary_expression "local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) != (binary_expression "(local_90.st_mtim.tv_nsec / 10) * 10" (parenthesized_expression "(local_90.st_mtim.tv_nsec / 10)" ( (binary_expression "local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" identifier . field_identifier) . field_identifier) / number_literal) )) * number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (if_statement "if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (compound_statement "{\n                param_5 = 2000000000;\n                break;\n              }" { (expression_statement "param_5 = 2000000000;" (assignment_expression "param_5 = 2000000000" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "param_5 = param_5 * 10;" (assignment_expression "param_5 = param_5 * 10" identifier = (binary_expression "param_5 * 10" identifier * number_literal)) ;) }) while (parenthesized_expression "(param_5 != local_dc)" ( (binary_expression "param_5 != local_dc" identifier != identifier) )) ;) }))) })) (expression_statement "local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);" (assignment_expression "local_f0 = local_f0 & ~(uint)(param_5 == 2000000000)" identifier = (binary_expression "local_f0 & ~(uint)(param_5 == 2000000000)" identifier & (unary_expression "~(uint)(param_5 == 2000000000)" ~ (call_expression "(uint)(param_5 == 2000000000)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_5 == 2000000000)" ( (binary_expression "param_5 == 2000000000" identifier == number_literal) )))))) ;) (expression_statement "local_e8 = local_e8 - local_e8 % (int)param_5;" (assignment_expression "local_e8 = local_e8 - local_e8 % (int)param_5" identifier = (binary_expression "local_e8 - local_e8 % (int)param_5" identifier - (binary_expression "local_e8 % (int)param_5" identifier % (cast_expression "(int)param_5" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "local_d8[2] = param_5;" (assignment_expression "local_d8[2] = param_5" (subscript_expression "local_d8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(local_d8 + 3) = 1;" (assignment_expression "*(undefined1 *)(local_d8 + 3) = 1" (pointer_expression "*(undefined1 *)(local_d8 + 3)" * (cast_expression "(undefined1 *)(local_d8 + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_d8 + 3)" ( (binary_expression "local_d8 + 3" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00021808;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00021830:\n  param_5 = 0xffffffff;" statement_identifier : (expression_statement "param_5 = 0xffffffff;" (assignment_expression "param_5 = 0xffffffff" identifier = number_literal) ;)) (labeled_statement "LAB_00021740:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002bfb0();\n  }" statement_identifier : (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002bfb0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_0002bfb0();\n  }" { (expression_statement "FUN_0002bfb0();" (call_expression "FUN_0002bfb0()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return param_5;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - LIT) ))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - LIT) )))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , LIT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (unary_expression ~ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) / LIT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) ))) )) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT % LIT) == LIT) && (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) == LIT) && (binary_expression (binary_expression IDENT % LIT) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT % LIT) == LIT) && (binary_expression (binary_expression IDENT % LIT) == LIT)) )) && (binary_expression (binary_expression IDENT % LIT) == LIT)) )) (compound_statement { (do_statement do (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 = (binary_expression IDENT / LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT % LIT) != LIT) || (binary_expression (binary_expression IDENT % LIT) != LIT)) )) || (binary_expression (binary_expression IDENT % LIT) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) & IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT | IDENT) | (subscript_expression IDENT [ LIT ])) )) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) ))) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT - (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT / LIT))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) != IDENT) || (binary_expression IDENT != (field_expression (field_expression IDENT . field_identifier) . field_identifier))) )) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (field_expression (field_expression IDENT . field_identifier) . field_identifier)) ;) })) (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) + (field_expression (field_expression IDENT . field_identifier) . field_identifier))) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) == (binary_expression (parenthesized_expression ( (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) / LIT) )) * LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) = (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) / LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) != (binary_expression (parenthesized_expression ( (binary_expression (field_expression (field_expression IDENT . field_identifier) . field_identifier) / LIT) )) * LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (unary_expression ~ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (binary_expression IDENT % (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint FUN_000216c0(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  uint local_f0;\n  int local_e8;\n  uint local_dc;\n  undefined4 *local_d8;\n  uint local_d4;\n  int local_d0;\n  uint local_c4;\n  undefined4 local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined1 local_94;\n  stat64 local_90;\n  timespec local_30;\n  uint local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x216c9;\n  iVar1 = param_3[0x13];\n  uVar2 = param_3[0x12];\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_f0 = *(uint *)(param_4 + 0x48);\n  local_e8 = *(int *)(param_4 + 0x4c);\n  param_5 = param_5 & 1;\n  if (param_5 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }\nLAB_00021830:\n  param_5 = 0xffffffff;\nLAB_00021740:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002bfb0();\n  }\n  return param_5;\n}" (type_identifier "uint") (function_declarator "FUN_000216c0(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)" (identifier "FUN_000216c0") (parameter_list "(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  int iVar6;\n  undefined4 *puVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  int in_GS_OFFSET;\n  uint local_f0;\n  int local_e8;\n  uint local_dc;\n  undefined4 *local_d8;\n  uint local_d4;\n  int local_d0;\n  uint local_c4;\n  undefined4 local_a0;\n  undefined4 local_9c;\n  undefined4 local_98;\n  undefined1 local_94;\n  stat64 local_90;\n  timespec local_30;\n  uint local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x216c9;\n  iVar1 = param_3[0x13];\n  uVar2 = param_3[0x12];\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_f0 = *(uint *)(param_4 + 0x48);\n  local_e8 = *(int *)(param_4 + 0x4c);\n  param_5 = param_5 & 1;\n  if (param_5 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }\nLAB_00021830:\n  param_5 = 0xffffffff;\nLAB_00021740:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002bfb0();\n  }\n  return param_5;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "undefined4 *puVar7;" (type_identifier "undefined4") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "uint local_f0;" (type_identifier "uint") (identifier "local_f0") (; ";")) (declaration "int local_e8;" (primitive_type "int") (identifier "local_e8") (; ";")) (declaration "uint local_dc;" (type_identifier "uint") (identifier "local_dc") (; ";")) (declaration "undefined4 *local_d8;" (type_identifier "undefined4") (pointer_declarator "*local_d8" (* "*") (identifier "local_d8")) (; ";")) (declaration "uint local_d4;" (type_identifier "uint") (identifier "local_d4") (; ";")) (declaration "int local_d0;" (primitive_type "int") (identifier "local_d0") (; ";")) (declaration "uint local_c4;" (type_identifier "uint") (identifier "local_c4") (; ";")) (declaration "undefined4 local_a0;" (type_identifier "undefined4") (identifier "local_a0") (; ";")) (declaration "undefined4 local_9c;" (type_identifier "undefined4") (identifier "local_9c") (; ";")) (declaration "undefined4 local_98;" (type_identifier "undefined4") (identifier "local_98") (; ";")) (declaration "undefined1 local_94;" (type_identifier "undefined1") (identifier "local_94") (; ";")) (declaration "stat64 local_90;" (type_identifier "stat64") (identifier "local_90") (; ";")) (declaration "timespec local_30;" (type_identifier "timespec") (identifier "local_30") (; ";")) (declaration "uint local_28;" (type_identifier "uint") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x216c9;" (assignment_expression "uStack_14 = 0x216c9" (identifier "uStack_14") (= "=") (number_literal "0x216c9")) (; ";")) (expression_statement "iVar1 = param_3[0x13];" (assignment_expression "iVar1 = param_3[0x13]" (identifier "iVar1") (= "=") (subscript_expression "param_3[0x13]" (identifier "param_3") ([ "[") (number_literal "0x13") (] "]"))) (; ";")) (expression_statement "uVar2 = param_3[0x12];" (assignment_expression "uVar2 = param_3[0x12]" (identifier "uVar2") (= "=") (subscript_expression "param_3[0x12]" (identifier "param_3") ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_f0 = *(uint *)(param_4 + 0x48);" (assignment_expression "local_f0 = *(uint *)(param_4 + 0x48)" (identifier "local_f0") (= "=") (pointer_expression "*(uint *)(param_4 + 0x48)" (* "*") (cast_expression "(uint *)(param_4 + 0x48)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x48)" (( "(") (binary_expression "param_4 + 0x48" (identifier "param_4") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "local_e8 = *(int *)(param_4 + 0x4c);" (assignment_expression "local_e8 = *(int *)(param_4 + 0x4c)" (identifier "local_e8") (= "=") (pointer_expression "*(int *)(param_4 + 0x4c)" (* "*") (cast_expression "(int *)(param_4 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x4c)" (( "(") (binary_expression "param_4 + 0x4c" (identifier "param_4") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "param_5 = param_5 & 1;" (assignment_expression "param_5 = param_5 & 1" (identifier "param_5") (= "=") (binary_expression "param_5 & 1" (identifier "param_5") (& "&") (number_literal "1"))) (; ";")) (if_statement "if (param_5 == 0) {\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }\n  else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }\n  }" ({ "{") (labeled_statement "LAB_00021808:\n    if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" (statement_identifier "LAB_00021808") (: ":") (if_statement "if ((int)local_f0 <= (int)uVar2) {\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" (if "if") (parenthesized_expression "((int)local_f0 <= (int)uVar2)" (( "(") (binary_expression "(int)local_f0 <= (int)uVar2" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (<= "<=") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2"))) () ")")) (compound_statement "{\n      param_5 = 1;\n      if (local_f0 != uVar2) goto LAB_00021740;\n      if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }\n    }" ({ "{") (expression_statement "param_5 = 1;" (assignment_expression "param_5 = 1" (identifier "param_5") (= "=") (number_literal "1")) (; ";")) (if_statement "if (local_f0 != uVar2) goto LAB_00021740;" (if "if") (parenthesized_expression "(local_f0 != uVar2)" (( "(") (binary_expression "local_f0 != uVar2" (identifier "local_f0") (!= "!=") (identifier "uVar2")) () ")")) (goto_statement "goto LAB_00021740;" (goto "goto") (statement_identifier "LAB_00021740") (; ";"))) (if_statement "if (local_e8 <= iVar1) {\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }" (if "if") (parenthesized_expression "(local_e8 <= iVar1)" (( "(") (binary_expression "local_e8 <= iVar1" (identifier "local_e8") (<= "<=") (identifier "iVar1")) () ")")) (compound_statement "{\n        param_5 = (uint)(local_e8 < iVar1);\n        goto LAB_00021740;\n      }" ({ "{") (expression_statement "param_5 = (uint)(local_e8 < iVar1);" (assignment_expression "param_5 = (uint)(local_e8 < iVar1)" (identifier "param_5") (= "=") (call_expression "(uint)(local_e8 < iVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_e8 < iVar1)" (( "(") (binary_expression "local_e8 < iVar1" (identifier "local_e8") (< "<") (identifier "iVar1")) () ")")))) (; ";")) (goto_statement "goto LAB_00021740;" (goto "goto") (statement_identifier "LAB_00021740") (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }" (else "else") (compound_statement "{\n    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }\n    if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }\n  }" ({ "{") (if_statement "if ((iVar1 == local_e8) && (uVar2 == local_f0)) {\n      param_5 = 0;\n      goto LAB_00021740;\n    }" (if "if") (parenthesized_expression "((iVar1 == local_e8) && (uVar2 == local_f0))" (( "(") (binary_expression "(iVar1 == local_e8) && (uVar2 == local_f0)" (parenthesized_expression "(iVar1 == local_e8)" (( "(") (binary_expression "iVar1 == local_e8" (identifier "iVar1") (== "==") (identifier "local_e8")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 == local_f0)" (( "(") (binary_expression "uVar2 == local_f0" (identifier "uVar2") (== "==") (identifier "local_f0")) () ")"))) () ")")) (compound_statement "{\n      param_5 = 0;\n      goto LAB_00021740;\n    }" ({ "{") (expression_statement "param_5 = 0;" (assignment_expression "param_5 = 0" (identifier "param_5") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00021740;" (goto "goto") (statement_identifier "LAB_00021740") (; ";")) (} "}"))) (if_statement "if ((int)(local_f0 - 1) <= (int)uVar2) {\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }" (if "if") (parenthesized_expression "((int)(local_f0 - 1) <= (int)uVar2)" (( "(") (binary_expression "(int)(local_f0 - 1) <= (int)uVar2" (cast_expression "(int)(local_f0 - 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_f0 - 1)" (( "(") (binary_expression "local_f0 - 1" (identifier "local_f0") (- "-") (number_literal "1")) () ")"))) (<= "<=") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2"))) () ")")) (compound_statement "{\n      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;\n      if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }\n      iVar6 = param_3[0x11];\n      iVar8 = iVar6 / 10;\n      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);\n      iVar10 = iVar1 / 10;\n      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }\n      local_d8[2] = param_5;\n      *(undefined1 *)(local_d8 + 3) = 1;\n      goto LAB_00021808;\n    }" ({ "{") (if_statement "if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;" (if "if") (parenthesized_expression "((int)local_f0 < (int)(uVar2 - 1))" (( "(") (binary_expression "(int)local_f0 < (int)(uVar2 - 1)" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (< "<") (cast_expression "(int)(uVar2 - 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 - 1)" (( "(") (binary_expression "uVar2 - 1" (identifier "uVar2") (- "-") (number_literal "1")) () ")")))) () ")")) (goto_statement "goto LAB_00021740;" (goto "goto") (statement_identifier "LAB_00021740") (; ";"))) (if_statement "if ((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)) {\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }\n      else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" (if "if") (parenthesized_expression "((DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0))" (( "(") (binary_expression "(DAT_00039874 == 0) &&\n         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)" (parenthesized_expression "(DAT_00039874 == 0)" (( "(") (binary_expression "DAT_00039874 == 0" (identifier "DAT_00039874") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0)" (( "(") (comma_expression "DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),\n         DAT_00039874 == 0" (assignment_expression "DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8)" (identifier "DAT_00039874") (= "=") (call_expression "FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8)" (identifier "FUN_0001dd30") (argument_list "(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8)" (( "(") (number_literal "0x10") (, ",") (number_literal "0") (, ",") (identifier "FUN_00021670") (, ",") (identifier "FUN_000216a0") (, ",") (identifier "PTR_free_00038fa8") () ")")))) (, ",") (binary_expression "DAT_00039874 == 0" (identifier "DAT_00039874") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_0002187f:\n        local_d8 = &local_a0;\n        local_98 = 2000000000;\n        local_94 = 0;\n        local_d4 = 2000000000;\n      }" ({ "{") (labeled_statement "LAB_0002187f:\n        local_d8 = &local_a0;" (statement_identifier "LAB_0002187f") (: ":") (expression_statement "local_d8 = &local_a0;" (assignment_expression "local_d8 = &local_a0" (identifier "local_d8") (= "=") (pointer_expression "&local_a0" (& "&") (identifier "local_a0"))) (; ";"))) (expression_statement "local_98 = 2000000000;" (assignment_expression "local_98 = 2000000000" (identifier "local_98") (= "=") (number_literal "2000000000")) (; ";")) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_d4 = 2000000000;" (assignment_expression "local_d4 = 2000000000" (identifier "local_d4") (= "=") (number_literal "2000000000")) (; ";")) (} "}")) (else_clause "else {\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" (else "else") (compound_statement "{\n        iVar6 = DAT_00039874;\n        puVar7 = DAT_00039870;\n        if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }\n        local_d4 = local_d8[2];\n        if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }\n      }" ({ "{") (expression_statement "iVar6 = DAT_00039874;" (assignment_expression "iVar6 = DAT_00039874" (identifier "iVar6") (= "=") (identifier "DAT_00039874")) (; ";")) (expression_statement "puVar7 = DAT_00039870;" (assignment_expression "puVar7 = DAT_00039870" (identifier "puVar7") (= "=") (identifier "DAT_00039870")) (; ";")) (if_statement "if (DAT_00039870 == (undefined4 *)0x0) {\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }\n        else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }" (if "if") (parenthesized_expression "(DAT_00039870 == (undefined4 *)0x0)" (( "(") (binary_expression "DAT_00039870 == (undefined4 *)0x0" (identifier "DAT_00039870") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar7 = (undefined4 *)malloc(0x10);\n          DAT_00039870 = puVar7;\n          if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }\nLAB_00021cde:\n          local_a0 = *param_3;\n          local_9c = param_3[1];\n          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);\n          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;\n        }" ({ "{") (expression_statement "puVar7 = (undefined4 *)malloc(0x10);" (assignment_expression "puVar7 = (undefined4 *)malloc(0x10)" (identifier "puVar7") (= "=") (cast_expression "(undefined4 *)malloc(0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "malloc(0x10)" (identifier "malloc") (argument_list "(0x10)" (( "(") (number_literal "0x10") () ")"))))) (; ";")) (expression_statement "DAT_00039870 = puVar7;" (assignment_expression "DAT_00039870 = puVar7" (identifier "DAT_00039870") (= "=") (identifier "puVar7")) (; ";")) (if_statement "if (puVar7 != (undefined4 *)0x0) {\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }" (if "if") (parenthesized_expression "(puVar7 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar7 != (undefined4 *)0x0" (identifier "puVar7") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            puVar7[2] = 2000000000;\n            *(undefined1 *)(puVar7 + 3) = 0;\n            goto LAB_0002179a;\n          }" ({ "{") (expression_statement "puVar7[2] = 2000000000;" (assignment_expression "puVar7[2] = 2000000000" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "2000000000")) (; ";")) (expression_statement "*(undefined1 *)(puVar7 + 3) = 0;" (assignment_expression "*(undefined1 *)(puVar7 + 3) = 0" (pointer_expression "*(undefined1 *)(puVar7 + 3)" (* "*") (cast_expression "(undefined1 *)(puVar7 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + 3)" (( "(") (binary_expression "puVar7 + 3" (identifier "puVar7") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002179a;" (goto "goto") (statement_identifier "LAB_0002179a") (; ";")) (} "}"))) (labeled_statement "LAB_00021cde:\n          local_a0 = *param_3;" (statement_identifier "LAB_00021cde") (: ":") (expression_statement "local_a0 = *param_3;" (assignment_expression "local_a0 = *param_3" (identifier "local_a0") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";"))) (expression_statement "local_9c = param_3[1];" (assignment_expression "local_9c = param_3[1]" (identifier "local_9c") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);" (assignment_expression "local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0)" (identifier "local_d8") (= "=") (cast_expression "(undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001dad0(DAT_00039874,&local_a0)" (identifier "FUN_0001dad0") (argument_list "(DAT_00039874,&local_a0)" (( "(") (identifier "DAT_00039874") (, ",") (pointer_expression "&local_a0" (& "&") (identifier "local_a0")) () ")"))))) (; ";")) (if_statement "if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;" (if "if") (parenthesized_expression "(local_d8 == (undefined4 *)0x0)" (( "(") (binary_expression "local_d8 == (undefined4 *)0x0" (identifier "local_d8") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002187f;" (goto "goto") (statement_identifier "LAB_0002187f") (; ";"))) (} "}")) (else_clause "else {\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }" (else "else") (compound_statement "{\nLAB_0002179a:\n          uVar3 = param_3[1];\n          *puVar7 = *param_3;\n          puVar7[1] = uVar3;\n          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);\n          if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }\n          if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }\n        }" ({ "{") (labeled_statement "LAB_0002179a:\n          uVar3 = param_3[1];" (statement_identifier "LAB_0002179a") (: ":") (expression_statement "uVar3 = param_3[1];" (assignment_expression "uVar3 = param_3[1]" (identifier "uVar3") (= "=") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "*puVar7 = *param_3;" (assignment_expression "*puVar7 = *param_3" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "puVar7[1] = uVar3;" (assignment_expression "puVar7[1] = uVar3" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);" (assignment_expression "local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7)" (identifier "local_d8") (= "=") (cast_expression "(undefined4 *)FUN_0001e400(iVar6,puVar7)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001e400(iVar6,puVar7)" (identifier "FUN_0001e400") (argument_list "(iVar6,puVar7)" (( "(") (identifier "iVar6") (, ",") (identifier "puVar7") () ")"))))) (; ";")) (if_statement "if (local_d8 == (undefined4 *)0x0) {\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }" (if "if") (parenthesized_expression "(local_d8 == (undefined4 *)0x0)" (( "(") (binary_expression "local_d8 == (undefined4 *)0x0" (identifier "local_d8") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (DAT_00039874 == 0) goto LAB_0002187f;\n            goto LAB_00021cde;\n          }" ({ "{") (if_statement "if (DAT_00039874 == 0) goto LAB_0002187f;" (if "if") (parenthesized_expression "(DAT_00039874 == 0)" (( "(") (binary_expression "DAT_00039874 == 0" (identifier "DAT_00039874") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002187f;" (goto "goto") (statement_identifier "LAB_0002187f") (; ";"))) (goto_statement "goto LAB_00021cde;" (goto "goto") (statement_identifier "LAB_00021cde") (; ";")) (} "}"))) (if_statement "if (DAT_00039870 == local_d8) {\n            DAT_00039870 = (undefined4 *)0x0;\n          }" (if "if") (parenthesized_expression "(DAT_00039870 == local_d8)" (( "(") (binary_expression "DAT_00039870 == local_d8" (identifier "DAT_00039870") (== "==") (identifier "local_d8")) () ")")) (compound_statement "{\n            DAT_00039870 = (undefined4 *)0x0;\n          }" ({ "{") (expression_statement "DAT_00039870 = (undefined4 *)0x0;" (assignment_expression "DAT_00039870 = (undefined4 *)0x0" (identifier "DAT_00039870") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_d4 = local_d8[2];" (assignment_expression "local_d4 = local_d8[2]" (identifier "local_d4") (= "=") (subscript_expression "local_d8[2]" (identifier "local_d8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (*(char *)(local_d8 + 3) != '\0') {\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }" (if "if") (parenthesized_expression "(*(char *)(local_d8 + 3) != '\0')" (( "(") (binary_expression "*(char *)(local_d8 + 3) != '\0'" (pointer_expression "*(char *)(local_d8 + 3)" (* "*") (cast_expression "(char *)(local_d8 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d8 + 3)" (( "(") (binary_expression "local_d8 + 3" (identifier "local_d8") (+ "+") (number_literal "3")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);\n          local_e8 = local_e8 - local_e8 % (int)local_d4;\n          goto LAB_00021808;\n        }" ({ "{") (expression_statement "local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);" (assignment_expression "local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000)" (identifier "local_f0") (= "=") (binary_expression "local_f0 & ~(uint)(local_d4 == 2000000000)" (identifier "local_f0") (& "&") (unary_expression "~(uint)(local_d4 == 2000000000)" (~ "~") (call_expression "(uint)(local_d4 == 2000000000)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_d4 == 2000000000)" (( "(") (binary_expression "local_d4 == 2000000000" (identifier "local_d4") (== "==") (number_literal "2000000000")) () ")")))))) (; ";")) (expression_statement "local_e8 = local_e8 - local_e8 % (int)local_d4;" (assignment_expression "local_e8 = local_e8 - local_e8 % (int)local_d4" (identifier "local_e8") (= "=") (binary_expression "local_e8 - local_e8 % (int)local_d4" (identifier "local_e8") (- "-") (binary_expression "local_e8 % (int)local_d4" (identifier "local_e8") (% "%") (cast_expression "(int)local_d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d4"))))) (; ";")) (goto_statement "goto LAB_00021808;" (goto "goto") (statement_identifier "LAB_00021808") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar6 = param_3[0x11];" (assignment_expression "iVar6 = param_3[0x11]" (identifier "iVar6") (= "=") (subscript_expression "param_3[0x11]" (identifier "param_3") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "iVar8 = iVar6 / 10;" (assignment_expression "iVar8 = iVar6 / 10" (identifier "iVar8") (= "=") (binary_expression "iVar6 / 10" (identifier "iVar6") (/ "/") (number_literal "10"))) (; ";")) (expression_statement "iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f);" (assignment_expression "iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f)" (identifier "iVar9") (= "=") (binary_expression "((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -\n              ((int)param_3[0x15] >> 0x1f)" (parenthesized_expression "((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f))" (( "(") (binary_expression "(int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)" (binary_expression "(int)param_3[0x15] / 10" (cast_expression "(int)param_3[0x15]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0x15]" (identifier "param_3") ([ "[") (number_literal "0x15") (] "]"))) (/ "/") (number_literal "10")) (+ "+") (parenthesized_expression "((int)param_3[0x15] >> 0x1f)" (( "(") (binary_expression "(int)param_3[0x15] >> 0x1f" (cast_expression "(int)param_3[0x15]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0x15]" (identifier "param_3") ([ "[") (number_literal "0x15") (] "]"))) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")) (- "-") (parenthesized_expression "((int)param_3[0x15] >> 0x1f)" (( "(") (binary_expression "(int)param_3[0x15] >> 0x1f" (cast_expression "(int)param_3[0x15]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0x15]" (identifier "param_3") ([ "[") (number_literal "0x15") (] "]"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "iVar10 = iVar1 / 10;" (assignment_expression "iVar10 = iVar1 / 10" (identifier "iVar10") (= "=") (binary_expression "iVar1 / 10" (identifier "iVar1") (/ "/") (number_literal "10"))) (; ";")) (if_statement "if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }" (if "if") (parenthesized_expression "(iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0))" (( "(") (binary_expression "iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)" (binary_expression "iVar1 % 10 == 0" (binary_expression "iVar1 % 10" (identifier "iVar1") (% "%") (number_literal "10")) (== "==") (number_literal "0")) (&& "&&") (parenthesized_expression "(param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)" (( "(") (binary_expression "param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0" (binary_expression "param_3[0x15] + iVar9 * -10 == 0" (binary_expression "param_3[0x15] + iVar9 * -10" (subscript_expression "param_3[0x15]" (identifier "param_3") ([ "[") (number_literal "0x15") (] "]")) (+ "+") (binary_expression "iVar9 * -10" (identifier "iVar9") (* "*") (number_literal "-10"))) (== "==") (number_literal "0")) (&& "&&") (binary_expression "iVar6 % 10 == 0" (binary_expression "iVar6 % 10" (identifier "iVar6") (% "%") (number_literal "10")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        uVar4 = param_3[0x10];\n        local_c4 = 0;\n        uVar5 = local_f0;\n        if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }\nLAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;\n        if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;\n        local_28 = local_c4 | uVar2;\n        local_24 = iVar1 + local_dc / 9;\n        local_30.tv_sec = uVar4;\n        local_30.tv_nsec = iVar6;\n        iVar6 = utimensat(param_1,param_2,&local_30,0x100);\n        if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }\n        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);\n        local_d4 = local_90.st_mtim.tv_sec;\n        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }\n        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;\n        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }\n        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);\n        local_e8 = local_e8 - local_e8 % (int)param_5;\n      }" ({ "{") (expression_statement "uVar4 = param_3[0x10];" (assignment_expression "uVar4 = param_3[0x10]" (identifier "uVar4") (= "=") (subscript_expression "param_3[0x10]" (identifier "param_3") ([ "[") (number_literal "0x10") (] "]"))) (; ";")) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" (identifier "local_c4") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = local_f0;" (assignment_expression "uVar5 = local_f0" (identifier "uVar5") (= "=") (identifier "local_f0")) (; ";")) (if_statement "if ((int)local_d4 < 0xb) {\n          local_dc = 10;\n          local_d8[2] = 10;\n        }\n        else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }" (if "if") (parenthesized_expression "((int)local_d4 < 0xb)" (( "(") (binary_expression "(int)local_d4 < 0xb" (cast_expression "(int)local_d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d4")) (< "<") (number_literal "0xb")) () ")")) (compound_statement "{\n          local_dc = 10;\n          local_d8[2] = 10;\n        }" ({ "{") (expression_statement "local_dc = 10;" (assignment_expression "local_dc = 10" (identifier "local_dc") (= "=") (number_literal "10")) (; ";")) (expression_statement "local_d8[2] = 10;" (assignment_expression "local_d8[2] = 10" (subscript_expression "local_d8[2]" (identifier "local_d8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "10")) (; ";")) (} "}")) (else_clause "else {\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }" (else "else") (compound_statement "{\n          local_d0 = 8;\n          local_dc = 10;\n          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }\n        }" ({ "{") (expression_statement "local_d0 = 8;" (assignment_expression "local_d0 = 8" (identifier "local_d0") (= "=") (number_literal "8")) (; ";")) (expression_statement "local_dc = 10;" (assignment_expression "local_dc = 10" (identifier "local_dc") (= "=") (number_literal "10")) (; ";")) (if_statement "if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }\n          else {\n            local_d8[2] = 10;\n          }" (if "if") (parenthesized_expression "((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0)" (( "(") (binary_expression "(iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0" (parenthesized_expression "(iVar9 % 10 == 0 && iVar8 % 10 == 0)" (( "(") (binary_expression "iVar9 % 10 == 0 && iVar8 % 10 == 0" (binary_expression "iVar9 % 10 == 0" (binary_expression "iVar9 % 10" (identifier "iVar9") (% "%") (number_literal "10")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "iVar8 % 10 == 0" (binary_expression "iVar8 % 10" (identifier "iVar8") (% "%") (number_literal "10")) (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "iVar10 % 10 == 0" (binary_expression "iVar10 % 10" (identifier "iVar10") (% "%") (number_literal "10")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n            do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);\n            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }\n          }" ({ "{") (do_statement "do {\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            } while (local_d0 != 0);" (do "do") (compound_statement "{\n              local_dc = local_dc * 10;\n              iVar8 = iVar8 / 10;\n              iVar9 = iVar9 / 10;\n              iVar10 = iVar10 / 10;\n              if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }\n              local_d0 = local_d0 + -1;\n            }" ({ "{") (expression_statement "local_dc = local_dc * 10;" (assignment_expression "local_dc = local_dc * 10" (identifier "local_dc") (= "=") (binary_expression "local_dc * 10" (identifier "local_dc") (* "*") (number_literal "10"))) (; ";")) (expression_statement "iVar8 = iVar8 / 10;" (assignment_expression "iVar8 = iVar8 / 10" (identifier "iVar8") (= "=") (binary_expression "iVar8 / 10" (identifier "iVar8") (/ "/") (number_literal "10"))) (; ";")) (expression_statement "iVar9 = iVar9 / 10;" (assignment_expression "iVar9 = iVar9 / 10" (identifier "iVar9") (= "=") (binary_expression "iVar9 / 10" (identifier "iVar9") (/ "/") (number_literal "10"))) (; ";")) (expression_statement "iVar10 = iVar10 / 10;" (assignment_expression "iVar10 = iVar10 / 10" (identifier "iVar10") (= "=") (binary_expression "iVar10 / 10" (identifier "iVar10") (/ "/") (number_literal "10"))) (; ";")) (if_statement "if (((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }" (if "if") (parenthesized_expression "(((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0))" (( "(") (binary_expression "((int)local_d4 <= (int)local_dc) ||\n                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)" (parenthesized_expression "((int)local_d4 <= (int)local_dc)" (( "(") (binary_expression "(int)local_d4 <= (int)local_dc" (cast_expression "(int)local_d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d4")) (<= "<=") (cast_expression "(int)local_dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_dc"))) () ")")) (|| "||") (parenthesized_expression "((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)" (( "(") (binary_expression "(iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0" (parenthesized_expression "(iVar8 % 10 != 0 || iVar9 % 10 != 0)" (( "(") (binary_expression "iVar8 % 10 != 0 || iVar9 % 10 != 0" (binary_expression "iVar8 % 10 != 0" (binary_expression "iVar8 % 10" (identifier "iVar8") (% "%") (number_literal "10")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "iVar9 % 10 != 0" (binary_expression "iVar9 % 10" (identifier "iVar9") (% "%") (number_literal "10")) (!= "!=") (number_literal "0"))) () ")")) (|| "||") (binary_expression "iVar10 % 10 != 0" (binary_expression "iVar10 % 10" (identifier "iVar10") (% "%") (number_literal "10")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                local_d8[2] = local_dc;\n                local_c4 = (uint)(local_dc == 2000000000);\n                uVar5 = ~local_c4 & local_f0;\n                goto LAB_00021ac2;\n              }" ({ "{") (expression_statement "local_d8[2] = local_dc;" (assignment_expression "local_d8[2] = local_dc" (subscript_expression "local_d8[2]" (identifier "local_d8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_dc")) (; ";")) (expression_statement "local_c4 = (uint)(local_dc == 2000000000);" (assignment_expression "local_c4 = (uint)(local_dc == 2000000000)" (identifier "local_c4") (= "=") (call_expression "(uint)(local_dc == 2000000000)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_dc == 2000000000)" (( "(") (binary_expression "local_dc == 2000000000" (identifier "local_dc") (== "==") (number_literal "2000000000")) () ")")))) (; ";")) (expression_statement "uVar5 = ~local_c4 & local_f0;" (assignment_expression "uVar5 = ~local_c4 & local_f0" (identifier "uVar5") (= "=") (binary_expression "~local_c4 & local_f0" (unary_expression "~local_c4" (~ "~") (identifier "local_c4")) (& "&") (identifier "local_f0"))) (; ";")) (goto_statement "goto LAB_00021ac2;" (goto "goto") (statement_identifier "LAB_00021ac2") (; ";")) (} "}"))) (expression_statement "local_d0 = local_d0 + -1;" (assignment_expression "local_d0 = local_d0 + -1" (identifier "local_d0") (= "=") (binary_expression "local_d0 + -1" (identifier "local_d0") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_d0 != 0)" (( "(") (binary_expression "local_d0 != 0" (identifier "local_d0") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }\n            else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }" (if "if") (parenthesized_expression "(((uVar4 | uVar2 | param_3[0x14]) & 1) == 0)" (( "(") (binary_expression "((uVar4 | uVar2 | param_3[0x14]) & 1) == 0" (parenthesized_expression "((uVar4 | uVar2 | param_3[0x14]) & 1)" (( "(") (binary_expression "(uVar4 | uVar2 | param_3[0x14]) & 1" (parenthesized_expression "(uVar4 | uVar2 | param_3[0x14])" (( "(") (binary_expression "uVar4 | uVar2 | param_3[0x14]" (binary_expression "uVar4 | uVar2" (identifier "uVar4") (| "|") (identifier "uVar2")) (| "|") (subscript_expression "param_3[0x14]" (identifier "param_3") ([ "[") (number_literal "0x14") (] "]"))) () ")")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_d8[2] = 2000000000;\n              local_dc = 2000000000;\n              uVar5 = local_f0 & 0xfffffffe;\n              local_c4 = param_5;\n            }" ({ "{") (expression_statement "local_d8[2] = 2000000000;" (assignment_expression "local_d8[2] = 2000000000" (subscript_expression "local_d8[2]" (identifier "local_d8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "2000000000")) (; ";")) (expression_statement "local_dc = 2000000000;" (assignment_expression "local_dc = 2000000000" (identifier "local_dc") (= "=") (number_literal "2000000000")) (; ";")) (expression_statement "uVar5 = local_f0 & 0xfffffffe;" (assignment_expression "uVar5 = local_f0 & 0xfffffffe" (identifier "uVar5") (= "=") (binary_expression "local_f0 & 0xfffffffe" (identifier "local_f0") (& "&") (number_literal "0xfffffffe"))) (; ";")) (expression_statement "local_c4 = param_5;" (assignment_expression "local_c4 = param_5" (identifier "local_c4") (= "=") (identifier "param_5")) (; ";")) (} "}")) (else_clause "else {\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }" (else "else") (compound_statement "{\n              local_dc = 1000000000;\n              local_d8[2] = 1000000000;\n              local_c4 = 0;\n            }" ({ "{") (expression_statement "local_dc = 1000000000;" (assignment_expression "local_dc = 1000000000" (identifier "local_dc") (= "=") (number_literal "1000000000")) (; ";")) (expression_statement "local_d8[2] = 1000000000;" (assignment_expression "local_d8[2] = 1000000000" (subscript_expression "local_d8[2]" (identifier "local_d8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1000000000")) (; ";")) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" (identifier "local_c4") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            local_d8[2] = 10;\n          }" (else "else") (compound_statement "{\n            local_d8[2] = 10;\n          }" ({ "{") (expression_statement "local_d8[2] = 10;" (assignment_expression "local_d8[2] = 10" (subscript_expression "local_d8[2]" (identifier "local_d8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "10")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_00021ac2:\n        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;" (statement_identifier "LAB_00021ac2") (: ":") (if_statement "if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))\n        goto LAB_00021740;" (if "if") (parenthesized_expression "(((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))" (( "(") (binary_expression "((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0)))" (parenthesized_expression "((int)local_f0 < (int)uVar2)" (( "(") (binary_expression "(int)local_f0 < (int)uVar2" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (< "<") (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2"))) () ")")) (|| "||") (parenthesized_expression "((local_e8 <= iVar1 && (uVar2 == local_f0)))" (( "(") (parenthesized_expression "(local_e8 <= iVar1 && (uVar2 == local_f0))" (( "(") (binary_expression "local_e8 <= iVar1 && (uVar2 == local_f0)" (binary_expression "local_e8 <= iVar1" (identifier "local_e8") (<= "<=") (identifier "iVar1")) (&& "&&") (parenthesized_expression "(uVar2 == local_f0)" (( "(") (binary_expression "uVar2 == local_f0" (identifier "uVar2") (== "==") (identifier "local_f0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00021740;" (goto "goto") (statement_identifier "LAB_00021740") (; ";")))) (if_statement "if (((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;" (if "if") (parenthesized_expression "(((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc))))" (( "(") (binary_expression "((int)uVar2 < (int)uVar5) ||\n           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))" (parenthesized_expression "((int)uVar2 < (int)uVar5)" (( "(") (binary_expression "(int)uVar2 < (int)uVar5" (cast_expression "(int)uVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar2")) (< "<") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5"))) () ")")) (|| "||") (parenthesized_expression "((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))" (( "(") (parenthesized_expression "(uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc))" (( "(") (binary_expression "uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)" (binary_expression "uVar2 == uVar5" (identifier "uVar2") (== "==") (identifier "uVar5")) (&& "&&") (parenthesized_expression "(iVar1 < local_e8 - local_e8 % (int)local_dc)" (( "(") (binary_expression "iVar1 < local_e8 - local_e8 % (int)local_dc" (identifier "iVar1") (< "<") (binary_expression "local_e8 - local_e8 % (int)local_dc" (identifier "local_e8") (- "-") (binary_expression "local_e8 % (int)local_dc" (identifier "local_e8") (% "%") (cast_expression "(int)local_dc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_dc"))))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00021830;" (goto "goto") (statement_identifier "LAB_00021830") (; ";"))) (expression_statement "local_28 = local_c4 | uVar2;" (assignment_expression "local_28 = local_c4 | uVar2" (identifier "local_28") (= "=") (binary_expression "local_c4 | uVar2" (identifier "local_c4") (| "|") (identifier "uVar2"))) (; ";")) (expression_statement "local_24 = iVar1 + local_dc / 9;" (assignment_expression "local_24 = iVar1 + local_dc / 9" (identifier "local_24") (= "=") (binary_expression "iVar1 + local_dc / 9" (identifier "iVar1") (+ "+") (binary_expression "local_dc / 9" (identifier "local_dc") (/ "/") (number_literal "9")))) (; ";")) (expression_statement "local_30.tv_sec = uVar4;" (assignment_expression "local_30.tv_sec = uVar4" (field_expression "local_30.tv_sec" (identifier "local_30") (. ".") (field_identifier "tv_sec")) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "local_30.tv_nsec = iVar6;" (assignment_expression "local_30.tv_nsec = iVar6" (field_expression "local_30.tv_nsec" (identifier "local_30") (. ".") (field_identifier "tv_nsec")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iVar6 = utimensat(param_1,param_2,&local_30,0x100);" (assignment_expression "iVar6 = utimensat(param_1,param_2,&local_30,0x100)" (identifier "iVar6") (= "=") (call_expression "utimensat(param_1,param_2,&local_30,0x100)" (identifier "utimensat") (argument_list "(param_1,param_2,&local_30,0x100)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (number_literal "0x100") () ")")))) (; ";")) (if_statement "if (iVar6 != 0) {\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00021d8a:\n          param_5 = 0xfffffffe;\n          goto LAB_00021740;\n        }" ({ "{") (labeled_statement "LAB_00021d8a:\n          param_5 = 0xfffffffe;" (statement_identifier "LAB_00021d8a") (: ":") (expression_statement "param_5 = 0xfffffffe;" (assignment_expression "param_5 = 0xfffffffe" (identifier "param_5") (= "=") (number_literal "0xfffffffe")) (; ";"))) (goto_statement "goto LAB_00021740;" (goto "goto") (statement_identifier "LAB_00021740") (; ";")) (} "}"))) (expression_statement "iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);" (assignment_expression "iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100)" (identifier "iVar6") (= "=") (call_expression "__fxstatat64(3,param_1,param_2,&local_90,0x100)" (identifier "__fxstatat64") (argument_list "(3,param_1,param_2,&local_90,0x100)" (( "(") (number_literal "3") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (number_literal "0x100") () ")")))) (; ";")) (expression_statement "local_d4 = local_90.st_mtim.tv_sec;" (assignment_expression "local_d4 = local_90.st_mtim.tv_sec" (identifier "local_d4") (= "=") (field_expression "local_90.st_mtim.tv_sec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_sec"))) (; ";")) (if_statement "if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }" (if "if") (parenthesized_expression "((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0)" (( "(") (binary_expression "(local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0" (parenthesized_expression "(local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec)" (( "(") (binary_expression "local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec" (binary_expression "local_90.st_mtim.tv_sec != uVar2" (field_expression "local_90.st_mtim.tv_sec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_sec")) (!= "!=") (identifier "uVar2")) (|| "||") (binary_expression "iVar1 != local_90.st_mtim.tv_nsec" (identifier "iVar1") (!= "!=") (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")))) () ")")) (|| "||") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n          local_28 = uVar2;\n          local_24 = iVar1;\n          utimensat(param_1,param_2,&local_30,0x100);\n          if (iVar6 != 0) goto LAB_00021d8a;\n          local_d4 = local_90.st_mtim.tv_sec;\n        }" ({ "{") (expression_statement "local_28 = uVar2;" (assignment_expression "local_28 = uVar2" (identifier "local_28") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "local_24 = iVar1;" (assignment_expression "local_24 = iVar1" (identifier "local_24") (= "=") (identifier "iVar1")) (; ";")) (expression_statement "utimensat(param_1,param_2,&local_30,0x100);" (call_expression "utimensat(param_1,param_2,&local_30,0x100)" (identifier "utimensat") (argument_list "(param_1,param_2,&local_30,0x100)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (number_literal "0x100") () ")"))) (; ";")) (if_statement "if (iVar6 != 0) goto LAB_00021d8a;" (if "if") (parenthesized_expression "(iVar6 != 0)" (( "(") (binary_expression "iVar6 != 0" (identifier "iVar6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00021d8a;" (goto "goto") (statement_identifier "LAB_00021d8a") (; ";"))) (expression_statement "local_d4 = local_90.st_mtim.tv_sec;" (assignment_expression "local_d4 = local_90.st_mtim.tv_sec" (identifier "local_d4") (= "=") (field_expression "local_90.st_mtim.tv_sec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_sec"))) (; ";")) (} "}"))) (expression_statement "local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;" (assignment_expression "local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")) (= "=") (binary_expression "(local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec" (binary_expression "(local_d4 & 1) * 1000000000" (parenthesized_expression "(local_d4 & 1)" (( "(") (binary_expression "local_d4 & 1" (identifier "local_d4") (& "&") (number_literal "1")) () ")")) (* "*") (number_literal "1000000000")) (+ "+") (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")))) (; ";")) (if_statement "if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }" (if "if") (parenthesized_expression "(local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10)" (( "(") (binary_expression "local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")) (== "==") (binary_expression "(local_90.st_mtim.tv_nsec / 10) * 10" (parenthesized_expression "(local_90.st_mtim.tv_nsec / 10)" (( "(") (binary_expression "local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")) (/ "/") (number_literal "10")) () ")")) (* "*") (number_literal "10"))) () ")")) (compound_statement "{\n          if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }\n        }" ({ "{") (if_statement "if (local_dc == 10) {\n            param_5 = 10;\n          }\n          else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }" (if "if") (parenthesized_expression "(local_dc == 10)" (( "(") (binary_expression "local_dc == 10" (identifier "local_dc") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n            param_5 = 10;\n          }" ({ "{") (expression_statement "param_5 = 10;" (assignment_expression "param_5 = 10" (identifier "param_5") (= "=") (number_literal "10")) (; ";")) (} "}")) (else_clause "else {\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }" (else "else") (compound_statement "{\n            iVar6 = 9;\n            param_5 = 10;\n            do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);\n          }" ({ "{") (expression_statement "iVar6 = 9;" (assignment_expression "iVar6 = 9" (identifier "iVar6") (= "=") (number_literal "9")) (; ";")) (expression_statement "param_5 = 10;" (assignment_expression "param_5 = 10" (identifier "param_5") (= "=") (number_literal "10")) (; ";")) (do_statement "do {\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            } while (param_5 != local_dc);" (do "do") (compound_statement "{\n              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;\n              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;\n              iVar6 = iVar6 + -1;\n              if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }\n              param_5 = param_5 * 10;\n            }" ({ "{") (expression_statement "local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;" (assignment_expression "local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")) (= "=") (binary_expression "local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")) (/ "/") (number_literal "10"))) (; ";")) (if_statement "if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;" (if "if") (parenthesized_expression "(local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10)" (( "(") (binary_expression "local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")) (!= "!=") (binary_expression "(local_90.st_mtim.tv_nsec / 10) * 10" (parenthesized_expression "(local_90.st_mtim.tv_nsec / 10)" (( "(") (binary_expression "local_90.st_mtim.tv_nsec / 10" (field_expression "local_90.st_mtim.tv_nsec" (field_expression "local_90.st_mtim" (identifier "local_90") (. ".") (field_identifier "st_mtim")) (. ".") (field_identifier "tv_nsec")) (/ "/") (number_literal "10")) () ")")) (* "*") (number_literal "10"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar6 == 0) {\n                param_5 = 2000000000;\n                break;\n              }" (if "if") (parenthesized_expression "(iVar6 == 0)" (( "(") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                param_5 = 2000000000;\n                break;\n              }" ({ "{") (expression_statement "param_5 = 2000000000;" (assignment_expression "param_5 = 2000000000" (identifier "param_5") (= "=") (number_literal "2000000000")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "param_5 = param_5 * 10;" (assignment_expression "param_5 = param_5 * 10" (identifier "param_5") (= "=") (binary_expression "param_5 * 10" (identifier "param_5") (* "*") (number_literal "10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_5 != local_dc)" (( "(") (binary_expression "param_5 != local_dc" (identifier "param_5") (!= "!=") (identifier "local_dc")) () ")")) (; ";")) (} "}")))) (} "}"))) (expression_statement "local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);" (assignment_expression "local_f0 = local_f0 & ~(uint)(param_5 == 2000000000)" (identifier "local_f0") (= "=") (binary_expression "local_f0 & ~(uint)(param_5 == 2000000000)" (identifier "local_f0") (& "&") (unary_expression "~(uint)(param_5 == 2000000000)" (~ "~") (call_expression "(uint)(param_5 == 2000000000)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_5 == 2000000000)" (( "(") (binary_expression "param_5 == 2000000000" (identifier "param_5") (== "==") (number_literal "2000000000")) () ")")))))) (; ";")) (expression_statement "local_e8 = local_e8 - local_e8 % (int)param_5;" (assignment_expression "local_e8 = local_e8 - local_e8 % (int)param_5" (identifier "local_e8") (= "=") (binary_expression "local_e8 - local_e8 % (int)param_5" (identifier "local_e8") (- "-") (binary_expression "local_e8 % (int)param_5" (identifier "local_e8") (% "%") (cast_expression "(int)param_5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_5"))))) (; ";")) (} "}"))) (expression_statement "local_d8[2] = param_5;" (assignment_expression "local_d8[2] = param_5" (subscript_expression "local_d8[2]" (identifier "local_d8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "*(undefined1 *)(local_d8 + 3) = 1;" (assignment_expression "*(undefined1 *)(local_d8 + 3) = 1" (pointer_expression "*(undefined1 *)(local_d8 + 3)" (* "*") (cast_expression "(undefined1 *)(local_d8 + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_d8 + 3)" (( "(") (binary_expression "local_d8 + 3" (identifier "local_d8") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00021808;" (goto "goto") (statement_identifier "LAB_00021808") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00021830:\n  param_5 = 0xffffffff;" (statement_identifier "LAB_00021830") (: ":") (expression_statement "param_5 = 0xffffffff;" (assignment_expression "param_5 = 0xffffffff" (identifier "param_5") (= "=") (number_literal "0xffffffff")) (; ";"))) (labeled_statement "LAB_00021740:\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002bfb0();\n  }" (statement_identifier "LAB_00021740") (: ":") (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0002bfb0();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_0002bfb0();\n  }" ({ "{") (expression_statement "FUN_0002bfb0();" (call_expression "FUN_0002bfb0()" (identifier "FUN_0002bfb0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return param_5;" (return "return") (identifier "param_5") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int function_1(int dfd,char *dst_name,type_1 *dst_stat,type_1 *src_stat,int var_2)

{
  int var_7;
  type_2 var_5;
  int var_27;
  type_3 uVar4;
  type_2 var_22;
  type_4 *table;
  type_2 var_23;
  int var_16;
  type_5 *var_11;
  int var_19;
  int var_18;
  type_2 var_3;
  int var_17;
  int var_1;
  type_2 var_4;
  int var_6;
  type_2 var_20;
  type_5 *var_13;
  type_2 var_15;
  int var_21;
  type_2 var_24;
  type_5 tmp_dst_res;
  type_1 dst_status;
  type_6 type_6 [2];
  
  var_7 = (dst_stat->st_mtim).tv_nsec;
  var_5 = (dst_stat->st_mtim).tv_sec;
  var_27 = *(int *)(var_1 + 0x14);
  var_4 = (src_stat->st_mtim).tv_sec;
  var_6 = (src_stat->st_mtim).tv_nsec;
  var_3 = var_2 & 1;
  if (var_3 == 0) {
LAB_00021808:
    if ((int)var_4 <= (int)var_5) {
      var_3 = 1;
      if (var_4 != var_5) goto LAB_00021740;
      if (var_6 <= var_7) {
        var_3 = (type_2)(var_6 < var_7);
        goto LAB_00021740;
      }
    }
  }
  else {
    if ((var_7 == var_6) && (var_5 == var_4)) {
      var_3 = 0;
      goto LAB_00021740;
    }
    if ((int)(var_4 - 1) <= (int)var_5) {
      if ((int)var_4 < (int)(var_5 - 1)) goto LAB_00021740;
      if ((function_1::lexical_block_10::var_8 == (type_4 *)0x0) &&
         (function_1::lexical_block_10::var_8 =
               hash_initialize(0x10,(Hash_tuning *)0x0,dev_info_hash,dev_info_compare,
                               (Hash_data_freer)PTR_free_00038fa8),
         function_1::lexical_block_10::var_8 == (type_4 *)0x0)) {
LAB_0002187f:
        var_13 = &tmp_dst_res;
        tmp_dst_res.resolution = 2000000000;
        tmp_dst_res.exact = false;
        var_15 = 2000000000;
      }
      else {
        table = function_1::lexical_block_10::var_8;
        var_11 = function_1::lexical_block_10::var_9;
        if (function_1::lexical_block_10::var_9 == (type_5 *)0x0) {
          var_11 = (type_5 *)var_10(0x10);
          utimecmpat::lexical_block_10::var_9 = var_11;
          if (var_11 != (type_5 *)0x0) {
            var_11->resolution = 2000000000;
            var_11->exact = false;
            goto LAB_0002179a;
          }
LAB_00021cde:
          tmp_dst_res.dev._0_4_ = (type_3)dst_stat->st_dev;
          tmp_dst_res.dev._4_4_ = *(type_3 *)((int)&dst_stat->st_dev + 4);
          var_13 = (type_5 *)var_12(function_1::lexical_block_10::var_8,&tmp_dst_res);
          if (var_13 == (type_5 *)0x0) goto LAB_0002187f;
        }
        else {
LAB_0002179a:
          uVar4 = *(type_3 *)((int)&dst_stat->st_dev + 4);
          *(int *)&var_11->dev = (int)dst_stat->st_dev;
          *(type_3 *)((int)&var_11->dev + 4) = uVar4;
          var_13 = (type_5 *)var_14(table,var_11);
          if (var_13 == (type_5 *)0x0) {
            if (function_1::lexical_block_10::var_8 == (type_4 *)0x0) goto LAB_0002187f;
            goto LAB_00021cde;
          }
          if (function_1::lexical_block_10::var_9 == var_13) {
            utimecmpat::lexical_block_10::var_9 = (type_5 *)0x0;
          }
        }
        var_15 = var_13->resolution;
        if (var_13->exact != false) {
          var_4 = var_4 & ~(type_2)(var_15 == 2000000000);
          var_6 = var_6 - var_6 % (int)var_15;
          goto LAB_00021808;
        }
      }
      var_16 = (dst_stat->st_atim).tv_nsec;
      var_19 = var_16 / 10;
      var_17 = (dst_stat->st_ctim).tv_nsec;
      var_18 = (var_17 / 10 + (var_17 >> 0x1f)) - ((dst_stat->st_ctim).tv_nsec >> 0x1f);
      var_17 = var_7 / 10;
      if (var_7 % 10 == 0 && ((dst_stat->st_ctim).tv_nsec + var_18 * -10 == 0 && var_16 % 10 == 0)) {
        var_22 = (dst_stat->st_atim).tv_sec;
        var_24 = 0;
        var_23 = var_4;
        if ((int)var_15 < 0xb) {
          var_20 = 10;
          var_13->resolution = 10;
        }
        else {
          var_21 = 8;
          var_20 = 10;
          if ((var_18 % 10 == 0 && var_19 % 10 == 0) && var_17 % 10 == 0) {
            do {
              var_20 = var_20 * 10;
              var_19 = var_19 / 10;
              var_18 = var_18 / 10;
              var_17 = var_17 / 10;
              if (((int)var_15 <= (int)var_20) ||
                 ((var_19 % 10 != 0 || var_18 % 10 != 0) || var_17 % 10 != 0)) {
                var_13->resolution = var_20;
                var_24 = (type_2)(var_20 == 2000000000);
                var_23 = ~var_24 & var_4;
                goto LAB_00021ac2;
              }
              var_21 = var_21 + -1;
            } while (var_21 != 0);
            if (((var_22 | var_5 | (dst_stat->st_ctim).tv_sec) & 1) == 0) {
              var_13->resolution = 2000000000;
              var_20 = 2000000000;
              var_23 = var_4 & 0xfffffffe;
              var_24 = var_3;
            }
            else {
              var_20 = 1000000000;
              var_13->resolution = 1000000000;
              var_24 = 0;
            }
          }
          else {
            var_13->resolution = 10;
          }
        }
LAB_00021ac2:
        if (((int)var_4 < (int)var_5) || ((var_6 <= var_7 && (var_5 == var_4))))
        goto LAB_00021740;
        if (((int)var_5 < (int)var_23) ||
           ((var_5 == var_23 && (var_7 < var_6 - var_6 % (int)var_20)))) goto LAB_00021830;
        type_6[1].tv_sec = var_24 | var_5;
        type_6[1].tv_nsec = var_7 + var_20 / 9;
        type_6[0].tv_sec = var_22;
        type_6[0].tv_nsec = var_16;
        var_16 = var_25(dfd,dst_name,(type_6 *)type_6,0x100);
        if (var_16 != 0) {
LAB_00021d8a:
          var_3 = 0xfffffffe;
          goto LAB_00021740;
        }
        var_16 = var_26(3,dfd,dst_name,(type_7 *)&dst_status,0x100);
        var_15 = dst_status.st_mtim.tv_sec;
        if ((dst_status.st_mtim.tv_sec != var_5 || var_7 != dst_status.st_mtim.tv_nsec) ||
            var_16 != 0) {
          type_6[1].tv_sec = var_5;
          type_6[1].tv_nsec = var_7;
          var_25(dfd,dst_name,(type_6 *)type_6,0x100);
          if (var_16 != 0) goto LAB_00021d8a;
          var_15 = dst_status.st_mtim.tv_sec;
        }
        var_16 = (var_15 & 1) * 1000000000 + dst_status.st_mtim.tv_nsec;
        if (var_16 == (var_16 / 10) * 10) {
          if (var_20 == 10) {
            var_3 = 10;
          }
          else {
            var_17 = 9;
            var_3 = 10;
            do {
              var_16 = var_16 / 10;
              if (var_16 != (var_16 / 10) * 10) break;
              var_17 = var_17 + -1;
              if (var_17 == 0) {
                var_3 = 2000000000;
                break;
              }
              var_3 = var_3 * 10;
            } while (var_3 != var_20);
          }
        }
        var_4 = var_4 & ~(type_2)(var_3 == 2000000000);
        var_6 = var_6 - var_6 % (int)var_3;
      }
      var_13->resolution = var_3;
      var_13->exact = true;
      goto LAB_00021808;
    }
  }
LAB_00021830:
  var_3 = 0xffffffff;
LAB_00021740:
  if (var_27 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_28();
  }
  return var_3;
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

uint MASKED(int param_1,char *param_2,undefined4 *param_3,int param_4,uint param_5)

{
  int iVar1;
  uint uVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  int in_GS_OFFSET;
  uint local_f0;
  int local_e8;
  uint local_dc;
  undefined4 *local_d8;
  uint local_d4;
  int local_d0;
  uint local_c4;
  undefined4 local_a0;
  undefined4 local_9c;
  undefined4 local_98;
  undefined1 local_94;
  stat64 local_90;
  timespec local_30;
  uint local_28;
  int local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x216c9;
  iVar1 = param_3[0x13];
  uVar2 = param_3[0x12];
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_f0 = *(uint *)(param_4 + 0x48);
  local_e8 = *(int *)(param_4 + 0x4c);
  param_5 = param_5 & 1;
  if (param_5 == 0) {
LAB_00021808:
    if ((int)local_f0 <= (int)uVar2) {
      param_5 = 1;
      if (local_f0 != uVar2) goto LAB_00021740;
      if (local_e8 <= iVar1) {
        param_5 = (uint)(local_e8 < iVar1);
        goto LAB_00021740;
      }
    }
  }
  else {
    if ((iVar1 == local_e8) && (uVar2 == local_f0)) {
      param_5 = 0;
      goto LAB_00021740;
    }
    if ((int)(local_f0 - 1) <= (int)uVar2) {
      if ((int)local_f0 < (int)(uVar2 - 1)) goto LAB_00021740;
      if ((DAT_00039874 == 0) &&
         (DAT_00039874 = FUN_0001dd30(0x10,0,FUN_00021670,FUN_000216a0,PTR_free_00038fa8),
         DAT_00039874 == 0)) {
LAB_0002187f:
        local_d8 = &local_a0;
        local_98 = 2000000000;
        local_94 = 0;
        local_d4 = 2000000000;
      }
      else {
        iVar6 = DAT_00039874;
        puVar7 = DAT_00039870;
        if (DAT_00039870 == (undefined4 *)0x0) {
          puVar7 = (undefined4 *)malloc(0x10);
          DAT_00039870 = puVar7;
          if (puVar7 != (undefined4 *)0x0) {
            puVar7[2] = 2000000000;
            *(undefined1 *)(puVar7 + 3) = 0;
            goto LAB_0002179a;
          }
LAB_00021cde:
          local_a0 = *param_3;
          local_9c = param_3[1];
          local_d8 = (undefined4 *)FUN_0001dad0(DAT_00039874,&local_a0);
          if (local_d8 == (undefined4 *)0x0) goto LAB_0002187f;
        }
        else {
LAB_0002179a:
          uVar3 = param_3[1];
          *puVar7 = *param_3;
          puVar7[1] = uVar3;
          local_d8 = (undefined4 *)FUN_0001e400(iVar6,puVar7);
          if (local_d8 == (undefined4 *)0x0) {
            if (DAT_00039874 == 0) goto LAB_0002187f;
            goto LAB_00021cde;
          }
          if (DAT_00039870 == local_d8) {
            DAT_00039870 = (undefined4 *)0x0;
          }
        }
        local_d4 = local_d8[2];
        if (*(char *)(local_d8 + 3) != '\0') {
          local_f0 = local_f0 & ~(uint)(local_d4 == 2000000000);
          local_e8 = local_e8 - local_e8 % (int)local_d4;
          goto LAB_00021808;
        }
      }
      iVar6 = param_3[0x11];
      iVar8 = iVar6 / 10;
      iVar9 = ((int)param_3[0x15] / 10 + ((int)param_3[0x15] >> 0x1f)) -
              ((int)param_3[0x15] >> 0x1f);
      iVar10 = iVar1 / 10;
      if (iVar1 % 10 == 0 && (param_3[0x15] + iVar9 * -10 == 0 && iVar6 % 10 == 0)) {
        uVar4 = param_3[0x10];
        local_c4 = 0;
        uVar5 = local_f0;
        if ((int)local_d4 < 0xb) {
          local_dc = 10;
          local_d8[2] = 10;
        }
        else {
          local_d0 = 8;
          local_dc = 10;
          if ((iVar9 % 10 == 0 && iVar8 % 10 == 0) && iVar10 % 10 == 0) {
            do {
              local_dc = local_dc * 10;
              iVar8 = iVar8 / 10;
              iVar9 = iVar9 / 10;
              iVar10 = iVar10 / 10;
              if (((int)local_d4 <= (int)local_dc) ||
                 ((iVar8 % 10 != 0 || iVar9 % 10 != 0) || iVar10 % 10 != 0)) {
                local_d8[2] = local_dc;
                local_c4 = (uint)(local_dc == 2000000000);
                uVar5 = ~local_c4 & local_f0;
                goto LAB_00021ac2;
              }
              local_d0 = local_d0 + -1;
            } while (local_d0 != 0);
            if (((uVar4 | uVar2 | param_3[0x14]) & 1) == 0) {
              local_d8[2] = 2000000000;
              local_dc = 2000000000;
              uVar5 = local_f0 & 0xfffffffe;
              local_c4 = param_5;
            }
            else {
              local_dc = 1000000000;
              local_d8[2] = 1000000000;
              local_c4 = 0;
            }
          }
          else {
            local_d8[2] = 10;
          }
        }
LAB_00021ac2:
        if (((int)local_f0 < (int)uVar2) || ((local_e8 <= iVar1 && (uVar2 == local_f0))))
        goto LAB_00021740;
        if (((int)uVar2 < (int)uVar5) ||
           ((uVar2 == uVar5 && (iVar1 < local_e8 - local_e8 % (int)local_dc)))) goto LAB_00021830;
        local_28 = local_c4 | uVar2;
        local_24 = iVar1 + local_dc / 9;
        local_30.tv_sec = uVar4;
        local_30.tv_nsec = iVar6;
        iVar6 = utimensat(param_1,param_2,&local_30,0x100);
        if (iVar6 != 0) {
LAB_00021d8a:
          param_5 = 0xfffffffe;
          goto LAB_00021740;
        }
        iVar6 = __fxstatat64(3,param_1,param_2,&local_90,0x100);
        local_d4 = local_90.st_mtim.tv_sec;
        if ((local_90.st_mtim.tv_sec != uVar2 || iVar1 != local_90.st_mtim.tv_nsec) || iVar6 != 0) {
          local_28 = uVar2;
          local_24 = iVar1;
          utimensat(param_1,param_2,&local_30,0x100);
          if (iVar6 != 0) goto LAB_00021d8a;
          local_d4 = local_90.st_mtim.tv_sec;
        }
        local_90.st_mtim.tv_nsec = (local_d4 & 1) * 1000000000 + local_90.st_mtim.tv_nsec;
        if (local_90.st_mtim.tv_nsec == (local_90.st_mtim.tv_nsec / 10) * 10) {
          if (local_dc == 10) {
            param_5 = 10;
          }
          else {
            iVar6 = 9;
            param_5 = 10;
            do {
              local_90.st_mtim.tv_nsec = local_90.st_mtim.tv_nsec / 10;
              if (local_90.st_mtim.tv_nsec != (local_90.st_mtim.tv_nsec / 10) * 10) break;
              iVar6 = iVar6 + -1;
              if (iVar6 == 0) {
                param_5 = 2000000000;
                break;
              }
              param_5 = param_5 * 10;
            } while (param_5 != local_dc);
          }
        }
        local_f0 = local_f0 & ~(uint)(param_5 == 2000000000);
        local_e8 = local_e8 - local_e8 % (int)param_5;
      }
      local_d8[2] = param_5;
      *(undefined1 *)(local_d8 + 3) = 1;
      goto LAB_00021808;
    }
  }
LAB_00021830:
  param_5 = 0xffffffff;
LAB_00021740:
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0002bfb0();
  }
  return param_5;
}

