
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention */

time_t mktime_internal(tm *tp,_func_tm_ptr_time_t_ptr_tm_ptr *convert,mktime_offset_t *offset)

{
  int iVar1;
  int iVar2;
  longlong lVar3;
  longlong lVar4;
  longlong lVar5;
  uint uVar6;
  uint hour1;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  tm *ptVar14;
  uint uVar15;
  int *piVar16;
  int mon;
  uint uVar17;
  int iVar18;
  int min1;
  int iVar19;
  uint uVar20;
  int iVar21;
  uint uVar22;
  uint uVar23;
  int iVar24;
  int in_GS_OFFSET;
  bool bVar25;
  bool bVar26;
  longlong lVar27;
  long_int lVar28;
  int local_10c;
  int local_108;
  uint local_104;
  int local_d4;
  int local_d0;
  uint local_c8;
  time_t x;
  long_int t;
  long_int ot;
  tm tm;
  tm otm;
  
  iVar1 = tp->tm_isdst;
  uVar22 = tp->tm_sec;
  iVar2 = *(int *)(in_GS_OFFSET + 0x14);
  uVar23 = tp->tm_min;
  uVar17 = tp->tm_year;
  uVar15 = tp->tm_hour;
  uVar20 = tp->tm_mday;
  iVar24 = tp->tm_mon % 0xc;
  uVar7 = iVar24 >> 0x1f;
  uVar6 = tp->tm_mon / 0xc + uVar7;
  hour1 = uVar6 + uVar17;
  min1 = ((int)uVar6 >> 0x1f) + ((int)uVar17 >> 0x1f) + (uint)CARRY4(uVar6,uVar17);
  uVar17 = 0;
  if ((hour1 & 3) == 0) {
    lVar27 = __moddi3(hour1,min1,100,0);
    uVar17 = 1;
    if (lVar27 == 0) {
      uVar17 = __divdi3(hour1,min1,100,0);
      uVar17 = (uint)((uVar17 & 3) == 1);
    }
  }
  local_d0 = 6;
  bVar26 = false;
  uVar17 = __mon_yday[uVar17][iVar24 + (uVar7 & 0xc)] - 1;
  iVar24 = *offset;
  uVar7 = uVar17 + uVar20;
  iVar19 = ((int)uVar17 >> 0x1f) + ((int)uVar20 >> 0x1f) + (uint)CARRY4(uVar17,uVar20);
  uVar17 = 0x3b;
  if ((int)uVar22 < 0x3c) {
    uVar17 = uVar22;
  }
  uVar20 = 0;
  if (-1 < (int)uVar17) {
    uVar20 = uVar17;
  }
  iVar18 = ((hour1 >> 2 | min1 * 0x40000000) + 0x1db) - (uint)((hour1 & 3) == 0);
  iVar21 = iVar18 / 0x19 + (iVar18 % 0x19 >> 0x1f);
  uVar17 = (iVar18 - iVar21) + -0x1dd + (iVar21 >> 2);
  lVar27 = (ulonglong)(hour1 - 0x46) * 0x16d;
  uVar6 = (uint)lVar27;
  uVar8 = uVar6 + uVar7;
  lVar3 = (ulonglong)(uVar17 + uVar8) * 0x18;
  uVar9 = (uint)lVar3;
  lVar4 = (ulonglong)(uVar9 + uVar15) * 0x3c;
  uVar10 = (uint)lVar4;
  lVar5 = (ulonglong)(uVar10 + uVar23) * 0x3c;
  uVar11 = (uint)lVar5;
  uVar12 = uVar11 + uVar20;
  uVar13 = uVar12 + iVar24;
  uVar17 = (((int)((ulonglong)lVar5 >> 0x20) +
             ((int)((ulonglong)lVar4 >> 0x20) +
              ((int)((ulonglong)lVar3 >> 0x20) +
               (((int)uVar17 >> 0x1f) +
                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +
                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +
               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +
             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f) +
            (uint)CARRY4(uVar11,uVar20)) - (-iVar24 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar24);
  uVar6 = uVar17;
  uVar8 = uVar13;
  local_104 = uVar13;
  t._0_4_ = uVar13;
  t._4_4_ = uVar17;
  while( true ) {
    uVar10 = uVar17;
    uVar9 = local_104;
    ptVar14 = ranged_convert(convert,&t,&tm);
    if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;
    local_c8 = tm.tm_sec;
    lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,tm.tm_year,
                        tm.tm_yday,tm.tm_hour,tm.tm_min,tm.tm_sec);
    uVar11 = (uint)lVar28;
    local_108 = (int)((ulonglong)lVar28 >> 0x20);
    uVar17 = (uint)t;
    if (local_108 == 0 && uVar11 == 0) break;
    if ((uVar8 == (uint)t && uVar6 == t._4_4_) && (local_104 != (uint)t || uVar10 != t._4_4_)) {
      lVar27 = CONCAT44(t._4_4_,local_104);
      lVar3 = CONCAT44(t._4_4_,(uint)t);
      if (tm.tm_isdst < 0) goto LAB_0004d1e8;
      if (iVar1 < 0) {
        lVar27 = CONCAT44(t._4_4_,local_104);
        lVar3 = CONCAT44(t._4_4_,(uint)t);
        if (bVar26 <= (tm.tm_isdst != 0)) goto LAB_0004d1e8;
      }
      else {
        lVar27 = CONCAT44(t._4_4_,local_104);
        lVar3 = CONCAT44(t._4_4_,(uint)t);
        if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;
      }
    }
    local_d0 = local_d0 + -1;
    if (local_d0 == 0) goto LAB_0004d320;
    local_104 = (uint)t;
    bVar25 = CARRY4(uVar11,(uint)t);
    t._0_4_ = uVar11 + (uint)t;
    bVar26 = tm.tm_isdst != 0;
    uVar17 = t._4_4_;
    uVar6 = uVar10;
    uVar8 = uVar9;
    t._4_4_ = local_108 + t._4_4_ + (uint)bVar25;
  }
  lVar27 = CONCAT44(t._4_4_,local_104);
  lVar3 = CONCAT44(t._4_4_,(uint)t);
  if ((((iVar1 == 0) != (tm.tm_isdst == 0)) &&
      (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1)) &&
     (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < tm.tm_isdst)) {
    local_10c = 0x92c70;
    do {
      local_d4 = 2;
      uVar6 = -local_10c;
      while( true ) {
        uVar17 = (int)uVar6 >> 0x1f;
        ot._0_4_ = (uint)t + uVar6;
        ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6);
        if (-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))) {
          ptVar14 = ranged_convert(convert,&ot,&otm);
          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;
          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {
            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,
                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);
            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);
            uVar17 = (uint)lVar27;
            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {
              x = uVar17;
              ptVar14 = (*convert)(&x,&tm);
              if (ptVar14 != (tm *)0x0) {
                local_c8 = tm.tm_sec;
                lVar3 = lVar27;
                goto LAB_0004d1e8;
              }
              piVar16 = __errno_location();
              if (*piVar16 != 0x4b) goto LAB_0004d32f;
            }
          }
        }
        uVar6 = uVar6 + local_10c * 2;
        if (local_d4 == 1) break;
        local_d4 = 1;
      }
      local_10c = local_10c + 0x92c70;
    } while (local_10c != 0x100dc400);
    goto LAB_0004d320;
  }
LAB_0004d1e8:
  uVar23 = (uint)((ulonglong)lVar3 >> 0x20);
  t._0_4_ = (uint)lVar3;
  t._4_4_ = (uint)((ulonglong)lVar27 >> 0x20);
  *offset = (iVar24 - uVar13) + uVar17;
  if (uVar22 == local_c8) {
LAB_0004d2a1:
    tp->tm_sec = tm.tm_sec;
    tp->tm_min = tm.tm_min;
    tp->tm_hour = tm.tm_hour;
    tp->tm_mday = tm.tm_mday;
    tp->tm_mon = tm.tm_mon;
    tp->tm_year = tm.tm_year;
    tp->tm_wday = tm.tm_wday;
    tp->tm_yday = tm.tm_yday;
    tp->tm_isdst = tm.tm_isdst;
    tp->tm_gmtoff = tm.tm_gmtoff;
    tp->tm_zone = tm.tm_zone;
  }
  else {
    uVar15 = (uint)((int)uVar22 < 1 && local_c8 == 0x3c);
    uVar6 = uVar15 - uVar20;
    uVar7 = uVar22 + uVar6;
    uVar22 = ((int)uVar22 >> 0x1f) + (-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f)) +
             (uint)CARRY4(uVar22,uVar6);
    t._0_4_ = uVar17 + uVar7;
    t._4_4_ = uVar23 + uVar22 + (uint)CARRY4(uVar17,uVar7);
    if (((int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0) ||
       (t._4_4_ + (0x7fffffff < (uint)t) != 0)) {
LAB_0004d320:
      piVar16 = __errno_location();
      *piVar16 = 0x4b;
    }
    else {
      otm.tm_sec = (uint)t;
      ptVar14 = (*convert)(&otm.tm_sec,&tm);
      uVar17 = (uint)t;
      if (ptVar14 != (tm *)0x0) goto LAB_0004d2a1;
    }
LAB_0004d32f:
    uVar17 = 0xffffffff;
  }
  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return uVar17;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

int FUN_0004ce80(uint *param_1,code *param_2,int *param_3)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  int iVar13;
  uint uVar14;
  int *piVar15;
  int iVar16;
  int iVar17;
  uint uVar18;
  int iVar19;
  int iVar20;
  int iVar21;
  uint uVar22;
  int iVar23;
  uint uVar24;
  int iVar25;
  uint uVar26;
  int in_GS_OFFSET;
  bool bVar27;
  longlong lVar28;
  undefined4 uVar29;
  int local_d4;
  int local_d0;
  uint local_c8;
  uint local_90;
  undefined8 local_8c;
  undefined8 local_84;
  uint local_78;
  uint local_74;
  uint local_70;
  uint local_6c;
  uint local_68;
  uint local_64;
  uint local_60;
  uint local_5c;
  uint local_58;
  uint local_54;
  uint local_50;
  uint local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_38;
  undefined4 local_30;
  int local_2c;
  int local_20;
  
  uVar14 = param_1[8];
  uVar26 = *param_1;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  uVar24 = param_1[1];
  uVar18 = param_1[5];
  uVar1 = param_1[2];
  uVar22 = param_1[3];
  iVar25 = (int)param_1[4] % 0xc;
  uVar7 = iVar25 >> 0x1f;
  uVar5 = (int)param_1[4] / 0xc + uVar7;
  uVar6 = uVar5 + uVar18;
  iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);
  uVar18 = 0;
  if ((uVar6 & 3) == 0) {
    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);
    uVar18 = 1;
    if (lVar28 == 0) {
      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);
      uVar18 = (uint)((uVar18 & 3) == 1);
    }
  }
  local_d0 = 6;
  bVar27 = false;
  uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;
  iVar25 = *param_3;
  uVar7 = uVar18 + uVar22;
  iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);
  uVar18 = 0x3b;
  if ((int)uVar26 < 0x3c) {
    uVar18 = uVar26;
  }
  uVar22 = 0;
  if (-1 < (int)uVar18) {
    uVar22 = uVar18;
  }
  iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);
  iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);
  uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);
  lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;
  uVar5 = (uint)lVar28;
  uVar8 = uVar5 + uVar7;
  lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;
  uVar9 = (uint)lVar2;
  lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;
  uVar10 = (uint)lVar3;
  lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;
  uVar11 = (uint)lVar4;
  uVar12 = uVar11 + uVar22;
  iVar19 = uVar12 + iVar25;
  iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +
             ((int)((ulonglong)lVar3 >> 0x20) +
              ((int)((ulonglong)lVar2 >> 0x20) +
               (((int)uVar18 >> 0x1f) +
                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +
                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +
               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +
             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +
            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);
  lVar28 = CONCAT44(iVar23,iVar19);
  iVar20 = iVar19;
  local_8c = lVar28;
  while( true ) {
    lVar3 = CONCAT44(iVar23,iVar20);
    iVar23 = (int)((ulonglong)local_8c >> 0x20);
    iVar20 = (int)local_8c;
    local_8c = lVar28;
    iVar13 = FUN_0004cc20();
    lVar2 = local_8c;
    if (iVar13 == 0) goto LAB_0004d32f;
    local_c8 = local_78;
    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,
                          local_78);
    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);
    lVar2 = local_8c;
    if (lVar28 == 0) break;
    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {
      if ((int)local_58 < 0) goto LAB_0004d1e8;
      if ((int)uVar14 < 0) {
        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;
      }
      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;
    }
    local_d0 = local_d0 + -1;
    if (local_d0 == 0) goto LAB_0004d320;
    lVar28 = lVar28 + local_8c;
    bVar27 = local_58 != 0;
  }
  if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {
    iVar20 = 0x92c70;
    do {
      local_d4 = 2;
      iVar23 = iVar20 * 2;
      iVar13 = -iVar20;
      lVar28 = local_8c;
      while( true ) {
        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);
        local_84 = lVar28 + iVar13;
        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;
        local_8c = lVar28;
        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {
          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);
          lVar2 = local_8c;
          if (iVar16 == 0) goto LAB_0004d32f;
          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {
            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,
                                  local_48,local_4c);
            uVar18 = (uint)(lVar28 + local_84);
            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);
            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {
              local_90 = uVar18;
              iVar17 = (*param_2)(&local_90,&local_78);
              if (iVar17 != 0) {
                local_c8 = local_78;
                lVar2 = CONCAT44(iVar16,uVar18);
                goto LAB_0004d1e8;
              }
              piVar15 = __errno_location();
              lVar2 = local_8c;
              if (*piVar15 != 0x4b) goto LAB_0004d32f;
            }
          }
        }
        iVar13 = iVar13 + iVar23;
        if (local_d4 == 1) break;
        local_d4 = 1;
        lVar28 = local_8c;
      }
      iVar20 = iVar20 + 0x92c70;
    } while (iVar20 != 0x100dc400);
    goto LAB_0004d320;
  }
LAB_0004d1e8:
  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);
  local_8c._0_4_ = (int)lVar2;
  *param_3 = (iVar25 - iVar19) + (int)local_8c;
  if (uVar26 == local_c8) {
LAB_0004d2a1:
    local_8c._0_4_ = (int)lVar2;
    *param_1 = local_78;
    param_1[1] = local_74;
    param_1[2] = local_70;
    param_1[3] = local_6c;
    param_1[4] = local_68;
    param_1[5] = local_64;
    param_1[6] = local_60;
    param_1[7] = local_5c;
    param_1[8] = local_58;
    param_1[9] = local_54;
    param_1[10] = local_50;
  }
  else {
    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);
    uVar18 = uVar14 - uVar22;
    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +
             (uint)CARRY4(uVar26,uVar18);
    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);
    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);
    uVar14 = local_8c._4_4_ ^ uVar24;
    local_8c = lVar2;
    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {
LAB_0004d320:
      piVar15 = __errno_location();
      *piVar15 = 0x4b;
      lVar2 = local_8c;
    }
    else {
      local_4c = (uint)lVar2;
      iVar20 = (*param_2)(&local_4c,&local_78);
      lVar2 = local_8c;
      if (iVar20 != 0) goto LAB_0004d2a1;
    }
LAB_0004d32f:
    local_8c._0_4_ = 0xffffffff;
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
    local_8c = lVar2;
                    /* WARNING: Subroutine does not return */
    FUN_0004e0c0();
  }
  return (int)local_8c;
}


CALL 0x00015b2c
ADD EAX,0x1de63
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xfc
MOV EDI,dword ptr [ESP + 0x114]
MOV EBX,dword ptr [ESP + 0x110]
MOV dword ptr [ESP + 0x48],EAX
MOV ECX,dword ptr [EBX + 0x10]
MOV ESI,dword ptr [EBX + 0x20]
MOV dword ptr [ESP + 0x30],EDI
MOV EDI,dword ptr [ESP + 0x118]
MOV dword ptr [ESP + 0x6c],EBX
MOV EAX,ECX
MOV dword ptr [ESP + 0x68],EDI
MOV EDI,dword ptr [EBX]
MOV EDX,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0xec],EDX
XOR EDX,EDX
MOV EDX,0x2aaaaaab
MOV dword ptr [ESP + 0x50],EDI
MOV EDI,dword ptr [EBX + 0x4]
IMUL EDX
MOV EAX,ECX
MOV dword ptr [ESP + 0x4c],ESI
MOV ESI,ECX
SAR EAX,0x1f
MOV ECX,dword ptr [EBX + 0x14]
MOV dword ptr [ESP + 0x20],EDI
MOV EDI,dword ptr [EBX + 0x8]
SAR EDX,0x1
SUB EDX,EAX
MOV dword ptr [ESP + 0x24],EDI
MOV EDI,dword ptr [EBX + 0xc]
MOV EBX,ECX
MOV EAX,EDX
LEA EDX,[EDX + EDX*0x2]
SAR EBX,0x1f
SHL EDX,0x2
SUB ESI,EDX
MOV EDX,ESI
SHR EDX,0x1f
SUB EAX,EDX
CDQ
ADD EAX,ECX
ADC EDX,EBX
MOV EBP,EAX
MOV dword ptr [ESP + 0x10],EAX
XOR ECX,ECX
MOV dword ptr [ESP + 0x14],EDX
AND EBP,0x3
JNZ 0x0004cf54
PUSH 0x0
PUSH 0x64
MOV dword ptr [ESP + 0x18],EAX
MOV dword ptr [ESP + 0x1c],EDX
PUSH EDX
PUSH EAX
MOV EBX,dword ptr [ESP + 0x58]
CALL 0x0004d870
ADD ESP,0x10
MOV ECX,0x1
OR EDX,EAX
JZ 0x0004d358
MOV EAX,ESI
LEA EDX,[ECX + ECX*0x1]
MOV EBX,EDI
MOV dword ptr [ESP + 0x3c],0x6
SAR EAX,0x1f
ADD EDX,ECX
SAR EBX,0x1f
MOV dword ptr [ESP + 0x40],0x0
AND EAX,0xc
LEA EDX,[ECX + EDX*0x4]
ADD ESI,EAX
MOV EAX,dword ptr [ESP + 0x48]
ADD ESI,EDX
MOVZX EAX,word ptr [EAX + ESI*0x2 + 0xfffeba38]
MOV ESI,dword ptr [ESP + 0x68]
SUB EAX,0x1
MOV ESI,dword ptr [ESI]
CDQ
ADD EAX,EDI
MOV EDI,dword ptr [ESP + 0x14]
ADC EDX,EBX
MOV EBX,dword ptr [ESP + 0x50]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,0x3b
MOV dword ptr [ESP + 0x54],ESI
MOV ESI,dword ptr [ESP + 0x10]
CMP EBX,0x3b
MOV dword ptr [ESP + 0x2c],EDX
MOV EDX,0x0
CMOVLE EAX,EBX
MOV ECX,ESI
TEST EAX,EAX
CMOVNS EDX,EAX
SHRD ECX,EDI,0x2
XOR EAX,EAX
ADD ECX,0x1db
TEST EBP,EBP
SETZ AL
MOV dword ptr [ESP + 0x1c],EDX
MOV EDX,0x51eb851f
MOV EBX,dword ptr [ESP + 0x1c]
SUB ECX,EAX
MOV EAX,ECX
MOV EBP,ECX
MOV dword ptr [ESP + 0x58],EBX
SAR EBX,0x1f
IMUL EDX
MOV EAX,ECX
MOV dword ptr [ESP + 0x5c],EBX
SAR EAX,0x1f
SAR EDX,0x3
SUB EDX,EAX
LEA EAX,[EDX + EDX*0x4]
LEA EAX,[EAX + EAX*0x4]
SUB EBP,EAX
MOV EAX,EBP
SHR EAX,0x1f
SUB EDX,EAX
MOV EAX,ESI
SUB ECX,EDX
SAR EDX,0x2
LEA ECX,[ECX + EDX*0x1 + 0xfffffe23]
MOV EDX,EDI
MOV EDI,0x16d
MOV EBX,ECX
SAR EBX,0x1f
ADD EAX,-0x46
ADC EDX,-0x1
IMUL ESI,EDX,0x16d
MUL EDI
ADD EDX,ESI
ADD EAX,dword ptr [ESP + 0x28]
ADC EDX,dword ptr [ESP + 0x2c]
ADD ECX,EAX
MOV EAX,0x18
MOV ESI,dword ptr [ESP + 0x20]
ADC EBX,EDX
MOV EDX,ECX
MOV ECX,dword ptr [ESP + 0x24]
IMUL EBX,EBX,0x18
MOV EDI,ESI
MUL EDX
ADD EDX,EBX
MOV EBX,ECX
SAR EBX,0x1f
ADD EAX,ECX
MOV ECX,0x3c
ADC EDX,EBX
SAR EDI,0x1f
IMUL EBX,EDX,0x3c
MUL ECX
ADD EDX,EBX
ADD EAX,ESI
ADC EDX,EDI
IMUL EBX,EDX,0x3c
MUL ECX
MOV ECX,dword ptr [ESP + 0x54]
ADD EDX,EBX
ADD EAX,dword ptr [ESP + 0x58]
ADC EDX,dword ptr [ESP + 0x5c]
NEG ECX
MOV EBX,ECX
SAR EBX,0x1f
SUB EAX,ECX
MOV dword ptr [ESP + 0x60],EAX
MOV EDI,EAX
SBB EDX,EBX
MOV dword ptr [ESP + 0x80],EAX
MOV EBP,EDX
MOV ESI,EDX
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[ESP + 0x94]
MOV dword ptr [ESP + 0x34],EAX
LEA EAX,[ESP + 0x80]
MOV dword ptr [ESP + 0x64],EDX
MOV dword ptr [ESP + 0x84],EDX
MOV dword ptr [ESP + 0x38],EAX
MOV ECX,dword ptr [ESP + 0x34]
MOV EDX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESP + 0x30]
CALL 0x0004cc20
TEST EAX,EAX
JZ 0x0004d32f
MOV EAX,dword ptr [ESP + 0x94]
SUB ESP,0x8
MOV dword ptr [ESP + 0x4c],EAX
PUSH EAX
PUSH dword ptr [ESP + 0xa4]
PUSH dword ptr [ESP + 0xac]
PUSH dword ptr [ESP + 0xc4]
PUSH dword ptr [ESP + 0xc0]
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x40]
PUSH dword ptr [ESP + 0x48]
PUSH dword ptr [ESP + 0x54]
PUSH dword ptr [ESP + 0x54]
MOV EAX,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x44]
CALL 0x0004cac0
ADD ESP,0x30
MOV ECX,dword ptr [ESP + 0x80]
MOV EBX,dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0x4],EDX
MOV EDX,EAX
MOV dword ptr [ESP],EAX
MOV EAX,dword ptr [ESP + 0x4]
OR EAX,EDX
JZ 0x0004d398
XOR EDI,ECX
XOR ESI,EBX
OR EDI,ESI
JNZ 0x0004d16f
MOV EDI,dword ptr [ESP + 0x8]
MOV ESI,EBP
XOR ESI,EBX
XOR EDI,ECX
OR EDI,ESI
JNZ 0x0004d1c0
SUB dword ptr [ESP + 0x3c],0x1
JZ 0x0004d320
MOV EAX,dword ptr [ESP]
MOV EDX,dword ptr [ESP + 0x4]
MOV ESI,EBP
MOV EBP,EBX
MOV EDI,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x8],ECX
ADD EAX,ECX
ADC EDX,EBX
MOV dword ptr [ESP + 0x80],EAX
XOR EAX,EAX
MOV dword ptr [ESP + 0x84],EDX
MOV EDX,dword ptr [ESP + 0xb4]
TEST EDX,EDX
SETNZ AL
MOV dword ptr [ESP + 0x40],EAX
JMP 0x0004d0ce
MOV EAX,dword ptr [ESP + 0xb4]
TEST EAX,EAX
JS 0x0004d1e8
MOV EDI,dword ptr [ESP + 0x4c]
SETNZ AL
MOV ESI,EAX
TEST EDI,EDI
JS 0x0004d380
SETNZ AL
MOV EDX,ESI
CMP AL,DL
JZ 0x0004d16f
LEA ESI,[ESI]
MOV EDX,dword ptr [ESP + 0x68]
MOV EAX,dword ptr [ESP + 0x54]
SUB EAX,dword ptr [ESP + 0x60]
MOV EBP,dword ptr [ESP + 0x50]
ADD EAX,ECX
MOV dword ptr [EDX],EAX
MOV EDX,dword ptr [ESP + 0x44]
CMP EBP,EDX
JZ 0x0004d2a1
TEST EBP,EBP
SETLE AL
CMP EDX,0x3c
SETZ DL
XOR EDI,EDI
MOVZX EDX,DL
AND EAX,EDX
MOV ESI,EAX
MOV EAX,EBP
SUB ESI,dword ptr [ESP + 0x58]
SBB EDI,dword ptr [ESP + 0x5c]
CDQ
ADD EAX,ESI
MOV ESI,ECX
ADC EDX,EDI
MOV dword ptr [ESP],EAX
ADD ESI,EAX
MOV EDI,EBX
MOV dword ptr [ESP + 0x4],EDX
MOV EAX,EBX
MOV EBX,dword ptr [ESP + 0x4]
ADC EDI,EDX
MOV dword ptr [ESP + 0x80],ESI
XOR EAX,EBX
MOV EDX,EBX
MOV dword ptr [ESP + 0x84],EDI
XOR EDX,EDI
NOT EAX
TEST EDX,EAX
JS 0x0004d320
MOV EAX,ESI
MOV EDX,EDI
ADD EAX,0x80000000
ADC EDX,0x0
CMP EDX,0x0
JA 0x0004d320
MOV dword ptr [ESP + 0xc0],ESI
SUB ESP,0x8
PUSH dword ptr [ESP + 0x3c]
LEA EAX,[ESP + 0xcc]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x40]
CALL EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0004d32f
MOV ECX,dword ptr [ESP + 0x80]
MOV EDI,dword ptr [ESP + 0x6c]
MOV EAX,dword ptr [ESP + 0x94]
MOV dword ptr [EDI],EAX
MOV EAX,dword ptr [ESP + 0x98]
MOV dword ptr [EDI + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x9c]
MOV dword ptr [EDI + 0x8],EAX
MOV EAX,dword ptr [ESP + 0xa0]
MOV dword ptr [EDI + 0xc],EAX
MOV EAX,dword ptr [ESP + 0xa4]
MOV dword ptr [EDI + 0x10],EAX
MOV EAX,dword ptr [ESP + 0xa8]
MOV dword ptr [EDI + 0x14],EAX
MOV EAX,dword ptr [ESP + 0xac]
MOV dword ptr [EDI + 0x18],EAX
MOV EAX,dword ptr [ESP + 0xb0]
MOV dword ptr [EDI + 0x1c],EAX
MOV EAX,dword ptr [ESP + 0xb4]
MOV dword ptr [EDI + 0x20],EAX
MOV EAX,dword ptr [ESP + 0xb8]
MOV dword ptr [EDI + 0x24],EAX
MOV EAX,dword ptr [ESP + 0xbc]
MOV dword ptr [EDI + 0x28],EAX
MOV EAX,ECX
JMP 0x0004d334
MOV EBX,dword ptr [ESP + 0x48]
CALL 0x00014650
MOV dword ptr [EAX],0x4b
MOV EAX,0xffffffff
MOV EBX,dword ptr [ESP + 0xec]
XOR EBX,dword ptr GS:[0x14]
JNZ 0x0004d588
ADD ESP,0xfc
POP EBX
POP ESI
POP EDI
POP EBP
RET
PUSH 0x0
PUSH 0x64
PUSH dword ptr [ESP + 0x1c]
PUSH dword ptr [ESP + 0x1c]
MOV EBX,dword ptr [ESP + 0x58]
CALL 0x0004d720
XOR ECX,ECX
ADD ESP,0x10
AND EAX,0x3
CMP EAX,0x1
SETZ CL
JMP 0x0004cf54
MOVZX ESI,AL
CMP ESI,dword ptr [ESP + 0x40]
JL 0x0004d16f
JMP 0x0004d1e8
MOV ESI,dword ptr [ESP + 0x4c]
MOV EDX,dword ptr [ESP + 0xb4]
TEST ESI,ESI
SETZ byte ptr [ESP + 0x4c]
TEST EDX,EDX
SETZ AL
CMP byte ptr [ESP + 0x4c],AL
JZ 0x0004d1e8
TEST ESI,ESI
JS 0x0004d1e8
TEST EDX,EDX
JS 0x0004d1e8
MOV dword ptr [ESP],0x92c70
MOV EAX,dword ptr [ESP]
MOV dword ptr [ESP + 0x38],0x2
LEA EDI,[EAX + EAX*0x1]
NEG EAX
MOV EBP,EAX
LEA EAX,[ESP + 0xc0]
MOV dword ptr [ESP + 0x3c],EDI
MOV dword ptr [ESP + 0x40],EAX
MOV EAX,EBP
MOV EDI,EBX
MOV ESI,ECX
MOV dword ptr [ESP + 0x8],EBP
CDQ
MOV EAX,EBX
ADD ESI,EBP
MOV dword ptr [ESP + 0xc],EDX
MOV EBX,dword ptr [ESP + 0xc]
ADC EDI,EDX
MOV dword ptr [ESP + 0x88],ESI
XOR EAX,EBX
MOV EDX,EBX
MOV dword ptr [ESP + 0x8c],EDI
XOR EDX,EDI
NOT EAX
TEST EDX,EAX
JNS 0x0004d480
ADD EBP,dword ptr [ESP + 0x3c]
CMP dword ptr [ESP + 0x38],0x1
JZ 0x0004d450
MOV ECX,dword ptr [ESP + 0x80]
MOV EBX,dword ptr [ESP + 0x84]
MOV dword ptr [ESP + 0x38],0x1
JMP 0x0004d3f1
ADD dword ptr [ESP],0x92c70
MOV EAX,dword ptr [ESP]
CMP EAX,0x100dc400
JZ 0x0004d320
MOV ECX,dword ptr [ESP + 0x80]
MOV EBX,dword ptr [ESP + 0x84]
JMP 0x0004d3d0
MOV ECX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESP + 0x30]
LEA EDX,[ESP + 0x88]
CALL 0x0004cc20
TEST EAX,EAX
JZ 0x0004d32f
MOV EAX,dword ptr [ESP + 0xe0]
TEST EAX,EAX
SETZ DL
CMP byte ptr [ESP + 0x4c],DL
JZ 0x0004d4b6
TEST EAX,EAX
JNS 0x0004d424
SUB ESP,0x8
PUSH dword ptr [ESP + 0xc8]
PUSH dword ptr [ESP + 0xd0]
PUSH dword ptr [ESP + 0xd8]
PUSH dword ptr [ESP + 0xf0]
PUSH dword ptr [ESP + 0xec]
PUSH dword ptr [ESP + 0x38]
PUSH dword ptr [ESP + 0x40]
PUSH dword ptr [ESP + 0x48]
PUSH dword ptr [ESP + 0x54]
PUSH dword ptr [ESP + 0x54]
MOV EAX,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x44]
CALL 0x0004cac0
ADD ESP,0x30
ADD EAX,dword ptr [ESP + 0x88]
ADC EDX,dword ptr [ESP + 0x8c]
MOV ECX,EAX
ADD EAX,0x80000000
MOV EBX,EDX
ADC EDX,0x0
CMP EDX,0x0
JA 0x0004d424
MOV dword ptr [ESP + 0x7c],ECX
SUB ESP,0x8
MOV dword ptr [ESP + 0x10],ECX
MOV dword ptr [ESP + 0x14],EBX
PUSH dword ptr [ESP + 0x3c]
LEA EAX,[ESP + 0x88]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x40]
CALL EAX
MOV ECX,dword ptr [ESP + 0x18]
MOV EBX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0004d56a
MOV EBX,dword ptr [ESP + 0x48]
CALL 0x00014650
CMP dword ptr [EAX],0x4b
JZ 0x0004d424
JMP 0x0004d32f
MOV EAX,dword ptr [ESP + 0x94]
MOV dword ptr [ESP + 0x80],ECX
MOV dword ptr [ESP + 0x84],EBX
MOV dword ptr [ESP + 0x44],EAX
JMP 0x0004d1e8
CALL 0x0004e0c0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nint FUN_0004ce80(uint *param_1,code *param_2,int *param_3)\n\n{\n  uint uVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  int iVar25;\n  uint uVar26;\n  int in_GS_OFFSET;\n  bool bVar27;\n  longlong lVar28;\n  undefined4 uVar29;\n  int local_d4;\n  int local_d0;\n  uint local_c8;\n  uint local_90;\n  undefined8 local_8c;\n  undefined8 local_84;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_64;\n  uint local_60;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_38;\n  undefined4 local_30;\n  int local_2c;\n  int local_20;\n  \n  uVar14 = param_1[8];\n  uVar26 = *param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar24 = param_1[1];\n  uVar18 = param_1[5];\n  uVar1 = param_1[2];\n  uVar22 = param_1[3];\n  iVar25 = (int)param_1[4] % 0xc;\n  uVar7 = iVar25 >> 0x1f;\n  uVar5 = (int)param_1[4] / 0xc + uVar7;\n  uVar6 = uVar5 + uVar18;\n  iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);\n  uVar18 = 0;\n  if ((uVar6 & 3) == 0) {\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }\n  local_d0 = 6;\n  bVar27 = false;\n  uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;\n  iVar25 = *param_3;\n  uVar7 = uVar18 + uVar22;\n  iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);\n  uVar18 = 0x3b;\n  if ((int)uVar26 < 0x3c) {\n    uVar18 = uVar26;\n  }\n  uVar22 = 0;\n  if (-1 < (int)uVar18) {\n    uVar22 = uVar18;\n  }\n  iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);\n  iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);\n  uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);\n  lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;\n  uVar5 = (uint)lVar28;\n  uVar8 = uVar5 + uVar7;\n  lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;\n  uVar9 = (uint)lVar2;\n  lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;\n  uVar10 = (uint)lVar3;\n  lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;\n  uVar11 = (uint)lVar4;\n  uVar12 = uVar11 + uVar22;\n  iVar19 = uVar12 + iVar25;\n  iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);\n  lVar28 = CONCAT44(iVar23,iVar19);\n  iVar20 = iVar19;\n  local_8c = lVar28;\n  while( true ) {\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }\n  if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }\nLAB_0004d1e8:\n  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);\n  local_8c._0_4_ = (int)lVar2;\n  *param_3 = (iVar25 - iVar19) + (int)local_8c;\n  if (uVar26 == local_c8) {\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }\n  else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    local_8c = lVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_0004e0c0();\n  }\n  return (int)local_8c;\n}\n\n" comment (function_definition "int FUN_0004ce80(uint *param_1,code *param_2,int *param_3)\n\n{\n  uint uVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  int iVar25;\n  uint uVar26;\n  int in_GS_OFFSET;\n  bool bVar27;\n  longlong lVar28;\n  undefined4 uVar29;\n  int local_d4;\n  int local_d0;\n  uint local_c8;\n  uint local_90;\n  undefined8 local_8c;\n  undefined8 local_84;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_64;\n  uint local_60;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_38;\n  undefined4 local_30;\n  int local_2c;\n  int local_20;\n  \n  uVar14 = param_1[8];\n  uVar26 = *param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar24 = param_1[1];\n  uVar18 = param_1[5];\n  uVar1 = param_1[2];\n  uVar22 = param_1[3];\n  iVar25 = (int)param_1[4] % 0xc;\n  uVar7 = iVar25 >> 0x1f;\n  uVar5 = (int)param_1[4] / 0xc + uVar7;\n  uVar6 = uVar5 + uVar18;\n  iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);\n  uVar18 = 0;\n  if ((uVar6 & 3) == 0) {\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }\n  local_d0 = 6;\n  bVar27 = false;\n  uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;\n  iVar25 = *param_3;\n  uVar7 = uVar18 + uVar22;\n  iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);\n  uVar18 = 0x3b;\n  if ((int)uVar26 < 0x3c) {\n    uVar18 = uVar26;\n  }\n  uVar22 = 0;\n  if (-1 < (int)uVar18) {\n    uVar22 = uVar18;\n  }\n  iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);\n  iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);\n  uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);\n  lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;\n  uVar5 = (uint)lVar28;\n  uVar8 = uVar5 + uVar7;\n  lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;\n  uVar9 = (uint)lVar2;\n  lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;\n  uVar10 = (uint)lVar3;\n  lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;\n  uVar11 = (uint)lVar4;\n  uVar12 = uVar11 + uVar22;\n  iVar19 = uVar12 + iVar25;\n  iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);\n  lVar28 = CONCAT44(iVar23,iVar19);\n  iVar20 = iVar19;\n  local_8c = lVar28;\n  while( true ) {\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }\n  if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }\nLAB_0004d1e8:\n  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);\n  local_8c._0_4_ = (int)lVar2;\n  *param_3 = (iVar25 - iVar19) + (int)local_8c;\n  if (uVar26 == local_c8) {\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }\n  else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    local_8c = lVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_0004e0c0();\n  }\n  return (int)local_8c;\n}" primitive_type (function_declarator "FUN_0004ce80(uint *param_1,code *param_2,int *param_3)" identifier (parameter_list "(uint *param_1,code *param_2,int *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  int iVar25;\n  uint uVar26;\n  int in_GS_OFFSET;\n  bool bVar27;\n  longlong lVar28;\n  undefined4 uVar29;\n  int local_d4;\n  int local_d0;\n  uint local_c8;\n  uint local_90;\n  undefined8 local_8c;\n  undefined8 local_84;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_64;\n  uint local_60;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_38;\n  undefined4 local_30;\n  int local_2c;\n  int local_20;\n  \n  uVar14 = param_1[8];\n  uVar26 = *param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar24 = param_1[1];\n  uVar18 = param_1[5];\n  uVar1 = param_1[2];\n  uVar22 = param_1[3];\n  iVar25 = (int)param_1[4] % 0xc;\n  uVar7 = iVar25 >> 0x1f;\n  uVar5 = (int)param_1[4] / 0xc + uVar7;\n  uVar6 = uVar5 + uVar18;\n  iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);\n  uVar18 = 0;\n  if ((uVar6 & 3) == 0) {\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }\n  local_d0 = 6;\n  bVar27 = false;\n  uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;\n  iVar25 = *param_3;\n  uVar7 = uVar18 + uVar22;\n  iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);\n  uVar18 = 0x3b;\n  if ((int)uVar26 < 0x3c) {\n    uVar18 = uVar26;\n  }\n  uVar22 = 0;\n  if (-1 < (int)uVar18) {\n    uVar22 = uVar18;\n  }\n  iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);\n  iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);\n  uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);\n  lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;\n  uVar5 = (uint)lVar28;\n  uVar8 = uVar5 + uVar7;\n  lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;\n  uVar9 = (uint)lVar2;\n  lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;\n  uVar10 = (uint)lVar3;\n  lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;\n  uVar11 = (uint)lVar4;\n  uVar12 = uVar11 + uVar22;\n  iVar19 = uVar12 + iVar25;\n  iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);\n  lVar28 = CONCAT44(iVar23,iVar19);\n  iVar20 = iVar19;\n  local_8c = lVar28;\n  while( true ) {\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }\n  if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }\nLAB_0004d1e8:\n  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);\n  local_8c._0_4_ = (int)lVar2;\n  *param_3 = (iVar25 - iVar19) + (int)local_8c;\n  if (uVar26 == local_c8) {\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }\n  else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    local_8c = lVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_0004e0c0();\n  }\n  return (int)local_8c;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "longlong lVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "longlong lVar28;" type_identifier identifier ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "undefined8 local_8c;" type_identifier identifier ;) (declaration "undefined8 local_84;" type_identifier identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar14 = param_1[8];" (assignment_expression "uVar14 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = *param_1;" (assignment_expression "uVar26 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (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 "uVar24 = param_1[1];" (assignment_expression "uVar24 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = param_1[5];" (assignment_expression "uVar18 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = param_1[2];" (assignment_expression "uVar1 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = param_1[3];" (assignment_expression "uVar22 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar25 = (int)param_1[4] % 0xc;" (assignment_expression "iVar25 = (int)param_1[4] % 0xc" identifier = (binary_expression "(int)param_1[4] % 0xc" (cast_expression "(int)param_1[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) % number_literal)) ;) (expression_statement "uVar7 = iVar25 >> 0x1f;" (assignment_expression "uVar7 = iVar25 >> 0x1f" identifier = (binary_expression "iVar25 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "uVar5 = (int)param_1[4] / 0xc + uVar7;" (assignment_expression "uVar5 = (int)param_1[4] / 0xc + uVar7" identifier = (binary_expression "(int)param_1[4] / 0xc + uVar7" (binary_expression "(int)param_1[4] / 0xc" (cast_expression "(int)param_1[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) / number_literal) + identifier)) ;) (expression_statement "uVar6 = uVar5 + uVar18;" (assignment_expression "uVar6 = uVar5 + uVar18" identifier = (binary_expression "uVar5 + uVar18" identifier + identifier)) ;) (expression_statement "iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);" (assignment_expression "iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18)" identifier = (binary_expression "((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18)" (binary_expression "((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f)" (parenthesized_expression "((int)uVar5 >> 0x1f)" ( (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "((int)uVar18 >> 0x1f)" ( (binary_expression "(int)uVar18 >> 0x1f" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar5,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,uVar18)" identifier (argument_list "(uVar5,uVar18)" ( identifier , identifier )))))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (if_statement "if ((uVar6 & 3) == 0) {\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }" if (parenthesized_expression "((uVar6 & 3) == 0)" ( (binary_expression "(uVar6 & 3) == 0" (parenthesized_expression "(uVar6 & 3)" ( (binary_expression "uVar6 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }" { (expression_statement "lVar28 = FUN_0004d870(uVar6,iVar20,100,0);" (assignment_expression "lVar28 = FUN_0004d870(uVar6,iVar20,100,0)" identifier = (call_expression "FUN_0004d870(uVar6,iVar20,100,0)" identifier (argument_list "(uVar6,iVar20,100,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (if_statement "if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }" if (parenthesized_expression "(lVar28 == 0)" ( (binary_expression "lVar28 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }" { (expression_statement "uVar18 = FUN_0004d720(uVar6,iVar20,100,0);" (assignment_expression "uVar18 = FUN_0004d720(uVar6,iVar20,100,0)" identifier = (call_expression "FUN_0004d720(uVar6,iVar20,100,0)" identifier (argument_list "(uVar6,iVar20,100,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar18 = (uint)((uVar18 & 3) == 1);" (assignment_expression "uVar18 = (uint)((uVar18 & 3) == 1)" identifier = (call_expression "(uint)((uVar18 & 3) == 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar18 & 3) == 1)" ( (binary_expression "(uVar18 & 3) == 1" (parenthesized_expression "(uVar18 & 3)" ( (binary_expression "uVar18 & 3" identifier & number_literal) )) == number_literal) )))) ;) })) })) (expression_statement "local_d0 = 6;" (assignment_expression "local_d0 = 6" identifier = number_literal) ;) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;) (expression_statement "uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;" (assignment_expression "uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1" identifier = (binary_expression "*(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1" (pointer_expression "*(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2)" * (cast_expression "(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2)" ( (binary_expression "&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2" (pointer_expression "&DAT_00056720" & identifier) + (binary_expression "(iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2" (parenthesized_expression "(iVar25 + (uVar7 & 0xc) + uVar18 * 0xd)" ( (binary_expression "iVar25 + (uVar7 & 0xc) + uVar18 * 0xd" (binary_expression "iVar25 + (uVar7 & 0xc)" identifier + (parenthesized_expression "(uVar7 & 0xc)" ( (binary_expression "uVar7 & 0xc" identifier & number_literal) ))) + (binary_expression "uVar18 * 0xd" identifier * number_literal)) )) * number_literal)) )))) - number_literal)) ;) (expression_statement "iVar25 = *param_3;" (assignment_expression "iVar25 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uVar7 = uVar18 + uVar22;" (assignment_expression "uVar7 = uVar18 + uVar22" identifier = (binary_expression "uVar18 + uVar22" identifier + identifier)) ;) (expression_statement "iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);" (assignment_expression "iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22)" identifier = (binary_expression "((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22)" (binary_expression "((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f)" (parenthesized_expression "((int)uVar18 >> 0x1f)" ( (binary_expression "(int)uVar18 >> 0x1f" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "((int)uVar22 >> 0x1f)" ( (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar18,uVar22)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,uVar22)" identifier (argument_list "(uVar18,uVar22)" ( identifier , identifier )))))) ;) (expression_statement "uVar18 = 0x3b;" (assignment_expression "uVar18 = 0x3b" identifier = number_literal) ;) (if_statement "if ((int)uVar26 < 0x3c) {\n    uVar18 = uVar26;\n  }" if (parenthesized_expression "((int)uVar26 < 0x3c)" ( (binary_expression "(int)uVar26 < 0x3c" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar18 = uVar26;\n  }" { (expression_statement "uVar18 = uVar26;" (assignment_expression "uVar18 = uVar26" identifier = identifier) ;) })) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar18) {\n    uVar22 = uVar18;\n  }" if (parenthesized_expression "(-1 < (int)uVar18)" ( (binary_expression "-1 < (int)uVar18" number_literal < (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar22 = uVar18;\n  }" { (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" identifier = identifier) ;) })) (expression_statement "iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);" (assignment_expression "iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0)" identifier = (binary_expression "((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0)" (parenthesized_expression "((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db)" ( (binary_expression "(uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db" (parenthesized_expression "(uVar6 >> 2 | iVar20 * 0x40000000)" ( (binary_expression "uVar6 >> 2 | iVar20 * 0x40000000" (binary_expression "uVar6 >> 2" identifier >> number_literal) | (binary_expression "iVar20 * 0x40000000" identifier * number_literal)) )) + number_literal) )) - (call_expression "(uint)((uVar6 & 3) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar6 & 3) == 0)" ( (binary_expression "(uVar6 & 3) == 0" (parenthesized_expression "(uVar6 & 3)" ( (binary_expression "uVar6 & 3" identifier & number_literal) )) == number_literal) ))))) ;) (expression_statement "iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);" (assignment_expression "iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f)" identifier = (binary_expression "iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f)" (binary_expression "iVar19 / 0x19" identifier / number_literal) + (parenthesized_expression "(iVar19 % 0x19 >> 0x1f)" ( (binary_expression "iVar19 % 0x19 >> 0x1f" (binary_expression "iVar19 % 0x19" identifier % number_literal) >> number_literal) )))) ;) (expression_statement "uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);" (assignment_expression "uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2)" identifier = (binary_expression "(iVar19 - iVar23) + -0x1dd + (iVar23 >> 2)" (binary_expression "(iVar19 - iVar23) + -0x1dd" (parenthesized_expression "(iVar19 - iVar23)" ( (binary_expression "iVar19 - iVar23" identifier - identifier) )) + number_literal) + (parenthesized_expression "(iVar23 >> 2)" ( (binary_expression "iVar23 >> 2" identifier >> number_literal) )))) ;) (expression_statement "lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;" (assignment_expression "lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d" identifier = (binary_expression "(ulonglong)(uVar6 - 0x46) * 0x16d" (call_expression "(ulonglong)(uVar6 - 0x46)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar6 - 0x46)" ( (binary_expression "uVar6 - 0x46" identifier - number_literal) ))) * number_literal)) ;) (expression_statement "uVar5 = (uint)lVar28;" (assignment_expression "uVar5 = (uint)lVar28" identifier = (cast_expression "(uint)lVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = uVar5 + uVar7;" (assignment_expression "uVar8 = uVar5 + uVar7" identifier = (binary_expression "uVar5 + uVar7" identifier + identifier)) ;) (expression_statement "lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;" (assignment_expression "lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18" identifier = (binary_expression "(ulonglong)(uVar18 + uVar8) * 0x18" (call_expression "(ulonglong)(uVar18 + uVar8)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar18 + uVar8)" ( (binary_expression "uVar18 + uVar8" identifier + identifier) ))) * number_literal)) ;) (expression_statement "uVar9 = (uint)lVar2;" (assignment_expression "uVar9 = (uint)lVar2" identifier = (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;" (assignment_expression "lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c" identifier = (binary_expression "(ulonglong)(uVar9 + uVar1) * 0x3c" (call_expression "(ulonglong)(uVar9 + uVar1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar9 + uVar1)" ( (binary_expression "uVar9 + uVar1" identifier + identifier) ))) * number_literal)) ;) (expression_statement "uVar10 = (uint)lVar3;" (assignment_expression "uVar10 = (uint)lVar3" identifier = (cast_expression "(uint)lVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;" (assignment_expression "lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c" identifier = (binary_expression "(ulonglong)(uVar10 + uVar24) * 0x3c" (call_expression "(ulonglong)(uVar10 + uVar24)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar10 + uVar24)" ( (binary_expression "uVar10 + uVar24" identifier + identifier) ))) * number_literal)) ;) (expression_statement "uVar11 = (uint)lVar4;" (assignment_expression "uVar11 = (uint)lVar4" identifier = (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = uVar11 + uVar22;" (assignment_expression "uVar12 = uVar11 + uVar22" identifier = (binary_expression "uVar11 + uVar22" identifier + identifier)) ;) (expression_statement "iVar19 = uVar12 + iVar25;" (assignment_expression "iVar19 = uVar12 + iVar25" identifier = (binary_expression "uVar12 + iVar25" identifier + identifier)) ;) (expression_statement "iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);" (assignment_expression "iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25)" identifier = (binary_expression "(((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25)" (parenthesized_expression "(((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f))" ( (binary_expression "((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)" (parenthesized_expression "((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22))" ( (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)" (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c" (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c" (parenthesized_expression "((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24))" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)" (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c" (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c" (parenthesized_expression "((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1))" ( (binary_expression "(int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)" (binary_expression "(int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18" (cast_expression "(int)((ulonglong)lVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "(((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18" (parenthesized_expression "(((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8))" ( (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7)" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20)" (parenthesized_expression "((int)uVar18 >> 0x1f)" ( (binary_expression "(int)uVar18 >> 0x1f" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (cast_expression "(int)((ulonglong)lVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + (binary_expression "(iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d" (parenthesized_expression "(iVar20 + -1 + (uint)(0x45 < uVar6))" ( (binary_expression "iVar20 + -1 + (uint)(0x45 < uVar6)" (binary_expression "iVar20 + -1" identifier + number_literal) + (call_expression "(uint)(0x45 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x45 < uVar6)" ( (binary_expression "0x45 < uVar6" number_literal < identifier) )))) )) * number_literal)) + identifier) + (cast_expression "(uint)CARRY4(uVar5,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,uVar7)" identifier (argument_list "(uVar5,uVar7)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar18,uVar8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,uVar8)" identifier (argument_list "(uVar18,uVar8)" ( identifier , identifier ))))) )) * number_literal)) + (parenthesized_expression "((int)uVar1 >> 0x1f)" ( (binary_expression "(int)uVar1 >> 0x1f" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar9,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar9,uVar1)" identifier (argument_list "(uVar9,uVar1)" ( identifier , identifier ))))) )) * number_literal)) + (parenthesized_expression "((int)uVar24 >> 0x1f)" ( (binary_expression "(int)uVar24 >> 0x1f" (cast_expression "(int)uVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar10,uVar24)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar24)" identifier (argument_list "(uVar10,uVar24)" ( identifier , identifier ))))) )) * number_literal)) + (parenthesized_expression "((int)uVar22 >> 0x1f)" ( (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar11,uVar22)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar11,uVar22)" identifier (argument_list "(uVar11,uVar22)" ( identifier , identifier ))))) )) - (parenthesized_expression "(-iVar25 >> 0x1f)" ( (binary_expression "-iVar25 >> 0x1f" (unary_expression "-iVar25" - identifier) >> number_literal) ))) )) - (call_expression "(uint)(uVar12 < (uint)-iVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < (uint)-iVar25)" ( (binary_expression "uVar12 < (uint)-iVar25" identifier < (binary_expression "(uint)-iVar25" (parenthesized_expression "(uint)" ( identifier )) - identifier)) ))))) ;) (expression_statement "lVar28 = CONCAT44(iVar23,iVar19);" (assignment_expression "lVar28 = CONCAT44(iVar23,iVar19)" identifier = (call_expression "CONCAT44(iVar23,iVar19)" identifier (argument_list "(iVar23,iVar19)" ( identifier , identifier )))) ;) (expression_statement "iVar20 = iVar19;" (assignment_expression "iVar20 = iVar19" identifier = identifier) ;) (expression_statement "local_8c = lVar28;" (assignment_expression "local_8c = lVar28" identifier = identifier) ;) (while_statement "while( true ) {\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }" { (expression_statement "lVar3 = CONCAT44(iVar23,iVar20);" (assignment_expression "lVar3 = CONCAT44(iVar23,iVar20)" identifier = (call_expression "CONCAT44(iVar23,iVar20)" identifier (argument_list "(iVar23,iVar20)" ( identifier , identifier )))) ;) (expression_statement "iVar23 = (int)((ulonglong)local_8c >> 0x20);" (assignment_expression "iVar23 = (int)((ulonglong)local_8c >> 0x20)" identifier = (cast_expression "(int)((ulonglong)local_8c >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)local_8c >> 0x20)" ( (binary_expression "(ulonglong)local_8c >> 0x20" (cast_expression "(ulonglong)local_8c" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar20 = (int)local_8c;" (assignment_expression "iVar20 = (int)local_8c" identifier = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_8c = lVar28;" (assignment_expression "local_8c = lVar28" identifier = identifier) ;) (expression_statement "iVar13 = FUN_0004cc20();" (assignment_expression "iVar13 = FUN_0004cc20()" identifier = (call_expression "FUN_0004cc20()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) (if_statement "if (iVar13 == 0) goto LAB_0004d32f;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004d32f;" goto statement_identifier ;)) (expression_statement "local_c8 = local_78;" (assignment_expression "local_c8 = local_78" identifier = identifier) ;) (expression_statement "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);" (assignment_expression "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78)" identifier = (call_expression "FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78)" identifier (argument_list "(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);" (assignment_expression "uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)lVar28 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) (if_statement "if (lVar28 == 0) break;" if (parenthesized_expression "(lVar28 == 0)" ( (binary_expression "lVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }" if (parenthesized_expression "((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20)))" ( (binary_expression "(local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))" (parenthesized_expression "(local_8c == lVar3)" ( (binary_expression "local_8c == lVar3" identifier == identifier) )) && (parenthesized_expression "(local_8c != CONCAT44(iVar23,iVar20))" ( (binary_expression "local_8c != CONCAT44(iVar23,iVar20)" identifier != (call_expression "CONCAT44(iVar23,iVar20)" identifier (argument_list "(iVar23,iVar20)" ( identifier , identifier )))) ))) )) (compound_statement "{\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }" { (if_statement "if ((int)local_58 < 0) goto LAB_0004d1e8;" if (parenthesized_expression "((int)local_58 < 0)" ( (binary_expression "(int)local_58 < 0" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0004d1e8;" goto statement_identifier ;)) (if_statement "if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;" if (parenthesized_expression "((int)uVar14 < 0)" ( (binary_expression "(int)uVar14 < 0" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }" { (if_statement "if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;" if (parenthesized_expression "(bVar27 <= (local_58 != 0))" ( (binary_expression "bVar27 <= (local_58 != 0)" identifier <= (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0004d1e8;" goto statement_identifier ;)) }) (else_clause "else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;" else (if_statement "if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;" if (parenthesized_expression "((uVar14 != 0) != (local_58 != 0))" ( (binary_expression "(uVar14 != 0) != (local_58 != 0)" (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) != (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0004d1e8;" 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)) ;) (if_statement "if (local_d0 == 0) goto LAB_0004d320;" if (parenthesized_expression "(local_d0 == 0)" ( (binary_expression "local_d0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004d320;" goto statement_identifier ;)) (expression_statement "lVar28 = lVar28 + local_8c;" (assignment_expression "lVar28 = lVar28 + local_8c" identifier = (binary_expression "lVar28 + local_8c" identifier + identifier)) ;) (expression_statement "bVar27 = local_58 != 0;" (assignment_expression "bVar27 = local_58 != 0" identifier = (binary_expression "local_58 != 0" identifier != number_literal)) ;) })) (if_statement "if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }" if (parenthesized_expression "((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58))" ( (binary_expression "(((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)" (parenthesized_expression "(((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14))" ( (binary_expression "((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)" (parenthesized_expression "((uVar14 == 0) != (local_58 == 0))" ( (binary_expression "(uVar14 == 0) != (local_58 == 0)" (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) != (parenthesized_expression "(local_58 == 0)" ( (binary_expression "local_58 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(-1 < (int)uVar14)" ( (binary_expression "-1 < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(-1 < (int)local_58)" ( (binary_expression "-1 < (int)local_58" number_literal < (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }" { (expression_statement "iVar20 = 0x92c70;" (assignment_expression "iVar20 = 0x92c70" identifier = number_literal) ;) (do_statement "do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);" do (compound_statement "{\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    }" { (expression_statement "local_d4 = 2;" (assignment_expression "local_d4 = 2" identifier = number_literal) ;) (expression_statement "iVar23 = iVar20 * 2;" (assignment_expression "iVar23 = iVar20 * 2" identifier = (binary_expression "iVar20 * 2" identifier * number_literal)) ;) (expression_statement "iVar13 = -iVar20;" (assignment_expression "iVar13 = -iVar20" identifier = (unary_expression "-iVar20" - identifier)) ;) (expression_statement "lVar28 = local_8c;" (assignment_expression "lVar28 = local_8c" identifier = identifier) ;) (while_statement "while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }" { (expression_statement "local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);" (assignment_expression "local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20)" (field_expression "local_8c._4_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)lVar28 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = lVar28 + iVar13;" (assignment_expression "local_84 = lVar28 + iVar13" identifier = (binary_expression "lVar28 + iVar13" identifier + identifier)) ;) (expression_statement "uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;" (assignment_expression "uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f" identifier = (binary_expression "local_8c._4_4_ ^ iVar13 >> 0x1f" (field_expression "local_8c._4_4_" identifier . field_identifier) ^ (binary_expression "iVar13 >> 0x1f" identifier >> number_literal))) ;) (expression_statement "local_8c = lVar28;" (assignment_expression "local_8c = lVar28" identifier = identifier) ;) (if_statement "if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }" if (parenthesized_expression "(-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18))" ( (binary_expression "-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)" number_literal < (cast_expression "(int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)" ( (binary_expression "(iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18" (parenthesized_expression "(iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20))" ( (binary_expression "iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)" (binary_expression "iVar13 >> 0x1f" identifier >> number_literal) ^ (call_expression "(uint)((ulonglong)local_84 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)local_84 >> 0x20)" ( (binary_expression "(ulonglong)local_84 >> 0x20" (cast_expression "(ulonglong)local_84" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) & (unary_expression "~uVar18" ~ identifier)) )))) )) (compound_statement "{\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }" { (expression_statement "iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);" (assignment_expression "iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13)" identifier = (call_expression "FUN_0004cc20(iVar20,uVar29,iVar13)" identifier (argument_list "(iVar20,uVar29,iVar13)" ( identifier , identifier , identifier )))) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) (if_statement "if (iVar16 == 0) goto LAB_0004d32f;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004d32f;" goto statement_identifier ;)) (if_statement "if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }" if (parenthesized_expression "(((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0))" ( (binary_expression "((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)" (parenthesized_expression "((uVar14 == 0) == (local_2c == 0))" ( (binary_expression "(uVar14 == 0) == (local_2c == 0)" (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) == (parenthesized_expression "(local_2c == 0)" ( (binary_expression "local_2c == 0" identifier == number_literal) ))) )) || (parenthesized_expression "(local_2c < 0)" ( (binary_expression "local_2c < 0" identifier < number_literal) ))) )) (compound_statement "{\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }" { (expression_statement "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);" (assignment_expression "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c)" identifier = (call_expression "FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c)" identifier (argument_list "(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar18 = (uint)(lVar28 + local_84);" (assignment_expression "uVar18 = (uint)(lVar28 + local_84)" identifier = (call_expression "(uint)(lVar28 + local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar28 + local_84)" ( (binary_expression "lVar28 + local_84" identifier + identifier) )))) ;) (expression_statement "iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);" (assignment_expression "iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20)" identifier = (cast_expression "(int)((ulonglong)(lVar28 + local_84) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar28 + local_84) >> 0x20)" ( (binary_expression "(ulonglong)(lVar28 + local_84) >> 0x20" (call_expression "(ulonglong)(lVar28 + local_84)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar28 + local_84)" ( (binary_expression "lVar28 + local_84" identifier + identifier) ))) >> number_literal) )))) ;) (if_statement "if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }" if (parenthesized_expression "(iVar16 + (uint)(0x7fffffff < uVar18) == 0)" ( (binary_expression "iVar16 + (uint)(0x7fffffff < uVar18) == 0" (binary_expression "iVar16 + (uint)(0x7fffffff < uVar18)" identifier + (call_expression "(uint)(0x7fffffff < uVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x7fffffff < uVar18)" ( (binary_expression "0x7fffffff < uVar18" number_literal < identifier) )))) == number_literal) )) (compound_statement "{\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }" { (expression_statement "local_90 = uVar18;" (assignment_expression "local_90 = uVar18" identifier = identifier) ;) (expression_statement "iVar17 = (*param_2)(&local_90,&local_78);" (assignment_expression "iVar17 = (*param_2)(&local_90,&local_78)" identifier = (call_expression "(*param_2)(&local_90,&local_78)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(&local_90,&local_78)" ( (pointer_expression "&local_90" & identifier) , (pointer_expression "&local_78" & identifier) )))) ;) (if_statement "if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }" { (expression_statement "local_c8 = local_78;" (assignment_expression "local_c8 = local_78" identifier = identifier) ;) (expression_statement "lVar2 = CONCAT44(iVar16,uVar18);" (assignment_expression "lVar2 = CONCAT44(iVar16,uVar18)" identifier = (call_expression "CONCAT44(iVar16,uVar18)" identifier (argument_list "(iVar16,uVar18)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_0004d1e8;" goto statement_identifier ;) })) (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) (if_statement "if (*piVar15 != 0x4b) goto LAB_0004d32f;" if (parenthesized_expression "(*piVar15 != 0x4b)" ( (binary_expression "*piVar15 != 0x4b" (pointer_expression "*piVar15" * identifier) != number_literal) )) (goto_statement "goto LAB_0004d32f;" goto statement_identifier ;)) })) })) })) (expression_statement "iVar13 = iVar13 + iVar23;" (assignment_expression "iVar13 = iVar13 + iVar23" identifier = (binary_expression "iVar13 + iVar23" identifier + identifier)) ;) (if_statement "if (local_d4 == 1) break;" if (parenthesized_expression "(local_d4 == 1)" ( (binary_expression "local_d4 == 1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_d4 = 1;" (assignment_expression "local_d4 = 1" identifier = number_literal) ;) (expression_statement "lVar28 = local_8c;" (assignment_expression "lVar28 = local_8c" identifier = identifier) ;) })) (expression_statement "iVar20 = iVar20 + 0x92c70;" (assignment_expression "iVar20 = iVar20 + 0x92c70" identifier = (binary_expression "iVar20 + 0x92c70" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0x100dc400)" ( (binary_expression "iVar20 != 0x100dc400" identifier != number_literal) )) ;) (goto_statement "goto LAB_0004d320;" goto statement_identifier ;) })) (labeled_statement "LAB_0004d1e8:\n  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);" statement_identifier : (expression_statement "local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);" (assignment_expression "local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20)" (field_expression "local_8c._4_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_8c._0_4_ = (int)lVar2;" (assignment_expression "local_8c._0_4_ = (int)lVar2" (field_expression "local_8c._0_4_" identifier . field_identifier) = (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*param_3 = (iVar25 - iVar19) + (int)local_8c;" (assignment_expression "*param_3 = (iVar25 - iVar19) + (int)local_8c" (pointer_expression "*param_3" * identifier) = (binary_expression "(iVar25 - iVar19) + (int)local_8c" (parenthesized_expression "(iVar25 - iVar19)" ( (binary_expression "iVar25 - iVar19" identifier - identifier) )) + (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar26 == local_c8) {\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }\n  else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }" if (parenthesized_expression "(uVar26 == local_c8)" ( (binary_expression "uVar26 == local_c8" identifier == identifier) )) (compound_statement "{\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }" { (labeled_statement "LAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;" statement_identifier : (expression_statement "local_8c._0_4_ = (int)lVar2;" (assignment_expression "local_8c._0_4_ = (int)lVar2" (field_expression "local_8c._0_4_" identifier . field_identifier) = (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "*param_1 = local_78;" (assignment_expression "*param_1 = local_78" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_74;" (assignment_expression "param_1[1] = local_74" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_70;" (assignment_expression "param_1[2] = local_70" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_6c;" (assignment_expression "param_1[3] = local_6c" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = local_68;" (assignment_expression "param_1[4] = local_68" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_64;" (assignment_expression "param_1[5] = local_64" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[6] = local_60;" (assignment_expression "param_1[6] = local_60" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = local_5c;" (assignment_expression "param_1[7] = local_5c" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[8] = local_58;" (assignment_expression "param_1[8] = local_58" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = local_54;" (assignment_expression "param_1[9] = local_54" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[10] = local_50;" (assignment_expression "param_1[10] = local_50" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }" else (compound_statement "{\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }" { (expression_statement "uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);" (assignment_expression "uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c)" identifier = (call_expression "(uint)((int)uVar26 < 1 && local_c8 == 0x3c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar26 < 1 && local_c8 == 0x3c)" ( (binary_expression "(int)uVar26 < 1 && local_c8 == 0x3c" (binary_expression "(int)uVar26 < 1" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) && (binary_expression "local_c8 == 0x3c" identifier == number_literal)) )))) ;) (expression_statement "uVar18 = uVar14 - uVar22;" (assignment_expression "uVar18 = uVar14 - uVar22" identifier = (binary_expression "uVar14 - uVar22" identifier - identifier)) ;) (expression_statement "uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);" (assignment_expression "uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18)" identifier = (binary_expression "((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18)" (binary_expression "((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f))" (parenthesized_expression "((int)uVar26 >> 0x1f)" ( (binary_expression "(int)uVar26 >> 0x1f" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "(-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f))" ( (binary_expression "-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)" (unary_expression "-(uint)(uVar14 < uVar22)" - (call_expression "(uint)(uVar14 < uVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar22)" ( (binary_expression "uVar14 < uVar22" identifier < identifier) )))) - (parenthesized_expression "((int)uVar22 >> 0x1f)" ( (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) ))) + (cast_expression "(uint)CARRY4(uVar26,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar26,uVar18)" identifier (argument_list "(uVar26,uVar18)" ( identifier , identifier )))))) ;) (expression_statement "lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);" (assignment_expression "lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18)" identifier = (binary_expression "lVar2 + CONCAT44(uVar24,uVar26 + uVar18)" identifier + (call_expression "CONCAT44(uVar24,uVar26 + uVar18)" identifier (argument_list "(uVar24,uVar26 + uVar18)" ( identifier , (binary_expression "uVar26 + uVar18" identifier + identifier) ))))) ;) (expression_statement "uVar26 = (uint)((ulonglong)lVar2 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar2 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = local_8c._4_4_ ^ uVar24;" (assignment_expression "uVar14 = local_8c._4_4_ ^ uVar24" identifier = (binary_expression "local_8c._4_4_ ^ uVar24" (field_expression "local_8c._4_4_" identifier . field_identifier) ^ identifier)) ;) (expression_statement "local_8c = lVar2;" (assignment_expression "local_8c = lVar2" identifier = identifier) ;) (if_statement "if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }" if (parenthesized_expression "(((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0))" ( (binary_expression "((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)" (parenthesized_expression "((int)((uVar24 ^ uVar26) & ~uVar14) < 0)" ( (binary_expression "(int)((uVar24 ^ uVar26) & ~uVar14) < 0" (cast_expression "(int)((uVar24 ^ uVar26) & ~uVar14)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar24 ^ uVar26) & ~uVar14)" ( (binary_expression "(uVar24 ^ uVar26) & ~uVar14" (parenthesized_expression "(uVar24 ^ uVar26)" ( (binary_expression "uVar24 ^ uVar26" identifier ^ identifier) )) & (unary_expression "~uVar14" ~ identifier)) ))) < number_literal) )) || (parenthesized_expression "(uVar26 + (0x7fffffff < (uint)lVar2) != 0)" ( (binary_expression "uVar26 + (0x7fffffff < (uint)lVar2) != 0" (binary_expression "uVar26 + (0x7fffffff < (uint)lVar2)" identifier + (parenthesized_expression "(0x7fffffff < (uint)lVar2)" ( (binary_expression "0x7fffffff < (uint)lVar2" number_literal < (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) != number_literal) ))) )) (compound_statement "{\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }" { (labeled_statement "LAB_0004d320:\n      piVar15 = __errno_location();" statement_identifier : (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "*piVar15 = 0x4b;" (assignment_expression "*piVar15 = 0x4b" (pointer_expression "*piVar15" * identifier) = number_literal) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) }) (else_clause "else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }" else (compound_statement "{\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }" { (expression_statement "local_4c = (uint)lVar2;" (assignment_expression "local_4c = (uint)lVar2" identifier = (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar20 = (*param_2)(&local_4c,&local_78);" (assignment_expression "iVar20 = (*param_2)(&local_4c,&local_78)" identifier = (call_expression "(*param_2)(&local_4c,&local_78)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(&local_4c,&local_78)" ( (pointer_expression "&local_4c" & identifier) , (pointer_expression "&local_78" & identifier) )))) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) (if_statement "if (iVar20 != 0) goto LAB_0004d2a1;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d2a1;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;" statement_identifier : (expression_statement "local_8c._0_4_ = 0xffffffff;" (assignment_expression "local_8c._0_4_ = 0xffffffff" (field_expression "local_8c._0_4_" identifier . field_identifier) = number_literal) ;)) }))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    local_8c = lVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_0004e0c0();\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    local_8c = lVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_0004e0c0();\n  }" { (expression_statement "local_8c = lVar2;" (assignment_expression "local_8c = lVar2" identifier = identifier) ;) comment (expression_statement "FUN_0004e0c0();" (call_expression "FUN_0004e0c0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return (int)local_8c;" return (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Unknown calling convention */\n\ntime_t mktime_internal(tm *tp,_func_tm_ptr_time_t_ptr_tm_ptr *convert,mktime_offset_t *offset)\n\n{\n  int iVar1;\n  int iVar2;\n  longlong lVar3;\n  longlong lVar4;\n  longlong lVar5;\n  uint uVar6;\n  uint hour1;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  tm *ptVar14;\n  uint uVar15;\n  int *piVar16;\n  int mon;\n  uint uVar17;\n  int iVar18;\n  int min1;\n  int iVar19;\n  uint uVar20;\n  int iVar21;\n  uint uVar22;\n  uint uVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  bool bVar26;\n  longlong lVar27;\n  long_int lVar28;\n  int local_10c;\n  int local_108;\n  uint local_104;\n  int local_d4;\n  int local_d0;\n  uint local_c8;\n  time_t x;\n  long_int t;\n  long_int ot;\n  tm tm;\n  tm otm;\n  \n  iVar1 = tp->tm_isdst;\n  uVar22 = tp->tm_sec;\n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar23 = tp->tm_min;\n  uVar17 = tp->tm_year;\n  uVar15 = tp->tm_hour;\n  uVar20 = tp->tm_mday;\n  iVar24 = tp->tm_mon % 0xc;\n  uVar7 = iVar24 >> 0x1f;\n  uVar6 = tp->tm_mon / 0xc + uVar7;\n  hour1 = uVar6 + uVar17;\n  min1 = ((int)uVar6 >> 0x1f) + ((int)uVar17 >> 0x1f) + (uint)CARRY4(uVar6,uVar17);\n  uVar17 = 0;\n  if ((hour1 & 3) == 0) {\n    lVar27 = __moddi3(hour1,min1,100,0);\n    uVar17 = 1;\n    if (lVar27 == 0) {\n      uVar17 = __divdi3(hour1,min1,100,0);\n      uVar17 = (uint)((uVar17 & 3) == 1);\n    }\n  }\n  local_d0 = 6;\n  bVar26 = false;\n  uVar17 = __mon_yday[uVar17][iVar24 + (uVar7 & 0xc)] - 1;\n  iVar24 = *offset;\n  uVar7 = uVar17 + uVar20;\n  iVar19 = ((int)uVar17 >> 0x1f) + ((int)uVar20 >> 0x1f) + (uint)CARRY4(uVar17,uVar20);\n  uVar17 = 0x3b;\n  if ((int)uVar22 < 0x3c) {\n    uVar17 = uVar22;\n  }\n  uVar20 = 0;\n  if (-1 < (int)uVar17) {\n    uVar20 = uVar17;\n  }\n  iVar18 = ((hour1 >> 2 | min1 * 0x40000000) + 0x1db) - (uint)((hour1 & 3) == 0);\n  iVar21 = iVar18 / 0x19 + (iVar18 % 0x19 >> 0x1f);\n  uVar17 = (iVar18 - iVar21) + -0x1dd + (iVar21 >> 2);\n  lVar27 = (ulonglong)(hour1 - 0x46) * 0x16d;\n  uVar6 = (uint)lVar27;\n  uVar8 = uVar6 + uVar7;\n  lVar3 = (ulonglong)(uVar17 + uVar8) * 0x18;\n  uVar9 = (uint)lVar3;\n  lVar4 = (ulonglong)(uVar9 + uVar15) * 0x3c;\n  uVar10 = (uint)lVar4;\n  lVar5 = (ulonglong)(uVar10 + uVar23) * 0x3c;\n  uVar11 = (uint)lVar5;\n  uVar12 = uVar11 + uVar20;\n  uVar13 = uVar12 + iVar24;\n  uVar17 = (((int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar20)) - (-iVar24 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar24);\n  uVar6 = uVar17;\n  uVar8 = uVar13;\n  local_104 = uVar13;\n  t._0_4_ = uVar13;\n  t._4_4_ = uVar17;\n  while( true ) {\n    uVar10 = uVar17;\n    uVar9 = local_104;\n    ptVar14 = ranged_convert(convert,&t,&tm);\n    if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n    local_c8 = tm.tm_sec;\n    lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,tm.tm_year,\n                        tm.tm_yday,tm.tm_hour,tm.tm_min,tm.tm_sec);\n    uVar11 = (uint)lVar28;\n    local_108 = (int)((ulonglong)lVar28 >> 0x20);\n    uVar17 = (uint)t;\n    if (local_108 == 0 && uVar11 == 0) break;\n    if ((uVar8 == (uint)t && uVar6 == t._4_4_) && (local_104 != (uint)t || uVar10 != t._4_4_)) {\n      lVar27 = CONCAT44(t._4_4_,local_104);\n      lVar3 = CONCAT44(t._4_4_,(uint)t);\n      if (tm.tm_isdst < 0) goto LAB_0004d1e8;\n      if (iVar1 < 0) {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if (bVar26 <= (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n      else {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    local_104 = (uint)t;\n    bVar25 = CARRY4(uVar11,(uint)t);\n    t._0_4_ = uVar11 + (uint)t;\n    bVar26 = tm.tm_isdst != 0;\n    uVar17 = t._4_4_;\n    uVar6 = uVar10;\n    uVar8 = uVar9;\n    t._4_4_ = local_108 + t._4_4_ + (uint)bVar25;\n  }\n  lVar27 = CONCAT44(t._4_4_,local_104);\n  lVar3 = CONCAT44(t._4_4_,(uint)t);\n  if ((((iVar1 == 0) != (tm.tm_isdst == 0)) &&\n      (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1)) &&\n     (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < tm.tm_isdst)) {\n    local_10c = 0x92c70;\n    do {\n      local_d4 = 2;\n      uVar6 = -local_10c;\n      while( true ) {\n        uVar17 = (int)uVar6 >> 0x1f;\n        ot._0_4_ = (uint)t + uVar6;\n        ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6);\n        if (-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))) {\n          ptVar14 = ranged_convert(convert,&ot,&otm);\n          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        uVar6 = uVar6 + local_10c * 2;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n      }\n      local_10c = local_10c + 0x92c70;\n    } while (local_10c != 0x100dc400);\n    goto LAB_0004d320;\n  }\nLAB_0004d1e8:\n  uVar23 = (uint)((ulonglong)lVar3 >> 0x20);\n  t._0_4_ = (uint)lVar3;\n  t._4_4_ = (uint)((ulonglong)lVar27 >> 0x20);\n  *offset = (iVar24 - uVar13) + uVar17;\n  if (uVar22 == local_c8) {\nLAB_0004d2a1:\n    tp->tm_sec = tm.tm_sec;\n    tp->tm_min = tm.tm_min;\n    tp->tm_hour = tm.tm_hour;\n    tp->tm_mday = tm.tm_mday;\n    tp->tm_mon = tm.tm_mon;\n    tp->tm_year = tm.tm_year;\n    tp->tm_wday = tm.tm_wday;\n    tp->tm_yday = tm.tm_yday;\n    tp->tm_isdst = tm.tm_isdst;\n    tp->tm_gmtoff = tm.tm_gmtoff;\n    tp->tm_zone = tm.tm_zone;\n  }\n  else {\n    uVar15 = (uint)((int)uVar22 < 1 && local_c8 == 0x3c);\n    uVar6 = uVar15 - uVar20;\n    uVar7 = uVar22 + uVar6;\n    uVar22 = ((int)uVar22 >> 0x1f) + (-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f)) +\n             (uint)CARRY4(uVar22,uVar6);\n    t._0_4_ = uVar17 + uVar7;\n    t._4_4_ = uVar23 + uVar22 + (uint)CARRY4(uVar17,uVar7);\n    if (((int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0) ||\n       (t._4_4_ + (0x7fffffff < (uint)t) != 0)) {\nLAB_0004d320:\n      piVar16 = __errno_location();\n      *piVar16 = 0x4b;\n    }\n    else {\n      otm.tm_sec = (uint)t;\n      ptVar14 = (*convert)(&otm.tm_sec,&tm);\n      uVar17 = (uint)t;\n      if (ptVar14 != (tm *)0x0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    uVar17 = 0xffffffff;\n  }\n  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar17;\n}\n\n" comment comment (function_definition "time_t mktime_internal(tm *tp,_func_tm_ptr_time_t_ptr_tm_ptr *convert,mktime_offset_t *offset)\n\n{\n  int iVar1;\n  int iVar2;\n  longlong lVar3;\n  longlong lVar4;\n  longlong lVar5;\n  uint uVar6;\n  uint hour1;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  tm *ptVar14;\n  uint uVar15;\n  int *piVar16;\n  int mon;\n  uint uVar17;\n  int iVar18;\n  int min1;\n  int iVar19;\n  uint uVar20;\n  int iVar21;\n  uint uVar22;\n  uint uVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  bool bVar26;\n  longlong lVar27;\n  long_int lVar28;\n  int local_10c;\n  int local_108;\n  uint local_104;\n  int local_d4;\n  int local_d0;\n  uint local_c8;\n  time_t x;\n  long_int t;\n  long_int ot;\n  tm tm;\n  tm otm;\n  \n  iVar1 = tp->tm_isdst;\n  uVar22 = tp->tm_sec;\n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar23 = tp->tm_min;\n  uVar17 = tp->tm_year;\n  uVar15 = tp->tm_hour;\n  uVar20 = tp->tm_mday;\n  iVar24 = tp->tm_mon % 0xc;\n  uVar7 = iVar24 >> 0x1f;\n  uVar6 = tp->tm_mon / 0xc + uVar7;\n  hour1 = uVar6 + uVar17;\n  min1 = ((int)uVar6 >> 0x1f) + ((int)uVar17 >> 0x1f) + (uint)CARRY4(uVar6,uVar17);\n  uVar17 = 0;\n  if ((hour1 & 3) == 0) {\n    lVar27 = __moddi3(hour1,min1,100,0);\n    uVar17 = 1;\n    if (lVar27 == 0) {\n      uVar17 = __divdi3(hour1,min1,100,0);\n      uVar17 = (uint)((uVar17 & 3) == 1);\n    }\n  }\n  local_d0 = 6;\n  bVar26 = false;\n  uVar17 = __mon_yday[uVar17][iVar24 + (uVar7 & 0xc)] - 1;\n  iVar24 = *offset;\n  uVar7 = uVar17 + uVar20;\n  iVar19 = ((int)uVar17 >> 0x1f) + ((int)uVar20 >> 0x1f) + (uint)CARRY4(uVar17,uVar20);\n  uVar17 = 0x3b;\n  if ((int)uVar22 < 0x3c) {\n    uVar17 = uVar22;\n  }\n  uVar20 = 0;\n  if (-1 < (int)uVar17) {\n    uVar20 = uVar17;\n  }\n  iVar18 = ((hour1 >> 2 | min1 * 0x40000000) + 0x1db) - (uint)((hour1 & 3) == 0);\n  iVar21 = iVar18 / 0x19 + (iVar18 % 0x19 >> 0x1f);\n  uVar17 = (iVar18 - iVar21) + -0x1dd + (iVar21 >> 2);\n  lVar27 = (ulonglong)(hour1 - 0x46) * 0x16d;\n  uVar6 = (uint)lVar27;\n  uVar8 = uVar6 + uVar7;\n  lVar3 = (ulonglong)(uVar17 + uVar8) * 0x18;\n  uVar9 = (uint)lVar3;\n  lVar4 = (ulonglong)(uVar9 + uVar15) * 0x3c;\n  uVar10 = (uint)lVar4;\n  lVar5 = (ulonglong)(uVar10 + uVar23) * 0x3c;\n  uVar11 = (uint)lVar5;\n  uVar12 = uVar11 + uVar20;\n  uVar13 = uVar12 + iVar24;\n  uVar17 = (((int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar20)) - (-iVar24 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar24);\n  uVar6 = uVar17;\n  uVar8 = uVar13;\n  local_104 = uVar13;\n  t._0_4_ = uVar13;\n  t._4_4_ = uVar17;\n  while( true ) {\n    uVar10 = uVar17;\n    uVar9 = local_104;\n    ptVar14 = ranged_convert(convert,&t,&tm);\n    if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n    local_c8 = tm.tm_sec;\n    lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,tm.tm_year,\n                        tm.tm_yday,tm.tm_hour,tm.tm_min,tm.tm_sec);\n    uVar11 = (uint)lVar28;\n    local_108 = (int)((ulonglong)lVar28 >> 0x20);\n    uVar17 = (uint)t;\n    if (local_108 == 0 && uVar11 == 0) break;\n    if ((uVar8 == (uint)t && uVar6 == t._4_4_) && (local_104 != (uint)t || uVar10 != t._4_4_)) {\n      lVar27 = CONCAT44(t._4_4_,local_104);\n      lVar3 = CONCAT44(t._4_4_,(uint)t);\n      if (tm.tm_isdst < 0) goto LAB_0004d1e8;\n      if (iVar1 < 0) {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if (bVar26 <= (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n      else {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    local_104 = (uint)t;\n    bVar25 = CARRY4(uVar11,(uint)t);\n    t._0_4_ = uVar11 + (uint)t;\n    bVar26 = tm.tm_isdst != 0;\n    uVar17 = t._4_4_;\n    uVar6 = uVar10;\n    uVar8 = uVar9;\n    t._4_4_ = local_108 + t._4_4_ + (uint)bVar25;\n  }\n  lVar27 = CONCAT44(t._4_4_,local_104);\n  lVar3 = CONCAT44(t._4_4_,(uint)t);\n  if ((((iVar1 == 0) != (tm.tm_isdst == 0)) &&\n      (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1)) &&\n     (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < tm.tm_isdst)) {\n    local_10c = 0x92c70;\n    do {\n      local_d4 = 2;\n      uVar6 = -local_10c;\n      while( true ) {\n        uVar17 = (int)uVar6 >> 0x1f;\n        ot._0_4_ = (uint)t + uVar6;\n        ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6);\n        if (-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))) {\n          ptVar14 = ranged_convert(convert,&ot,&otm);\n          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        uVar6 = uVar6 + local_10c * 2;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n      }\n      local_10c = local_10c + 0x92c70;\n    } while (local_10c != 0x100dc400);\n    goto LAB_0004d320;\n  }\nLAB_0004d1e8:\n  uVar23 = (uint)((ulonglong)lVar3 >> 0x20);\n  t._0_4_ = (uint)lVar3;\n  t._4_4_ = (uint)((ulonglong)lVar27 >> 0x20);\n  *offset = (iVar24 - uVar13) + uVar17;\n  if (uVar22 == local_c8) {\nLAB_0004d2a1:\n    tp->tm_sec = tm.tm_sec;\n    tp->tm_min = tm.tm_min;\n    tp->tm_hour = tm.tm_hour;\n    tp->tm_mday = tm.tm_mday;\n    tp->tm_mon = tm.tm_mon;\n    tp->tm_year = tm.tm_year;\n    tp->tm_wday = tm.tm_wday;\n    tp->tm_yday = tm.tm_yday;\n    tp->tm_isdst = tm.tm_isdst;\n    tp->tm_gmtoff = tm.tm_gmtoff;\n    tp->tm_zone = tm.tm_zone;\n  }\n  else {\n    uVar15 = (uint)((int)uVar22 < 1 && local_c8 == 0x3c);\n    uVar6 = uVar15 - uVar20;\n    uVar7 = uVar22 + uVar6;\n    uVar22 = ((int)uVar22 >> 0x1f) + (-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f)) +\n             (uint)CARRY4(uVar22,uVar6);\n    t._0_4_ = uVar17 + uVar7;\n    t._4_4_ = uVar23 + uVar22 + (uint)CARRY4(uVar17,uVar7);\n    if (((int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0) ||\n       (t._4_4_ + (0x7fffffff < (uint)t) != 0)) {\nLAB_0004d320:\n      piVar16 = __errno_location();\n      *piVar16 = 0x4b;\n    }\n    else {\n      otm.tm_sec = (uint)t;\n      ptVar14 = (*convert)(&otm.tm_sec,&tm);\n      uVar17 = (uint)t;\n      if (ptVar14 != (tm *)0x0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    uVar17 = 0xffffffff;\n  }\n  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar17;\n}" type_identifier (function_declarator "mktime_internal(tm *tp,_func_tm_ptr_time_t_ptr_tm_ptr *convert,mktime_offset_t *offset)" identifier (parameter_list "(tm *tp,_func_tm_ptr_time_t_ptr_tm_ptr *convert,mktime_offset_t *offset)" ( (parameter_declaration "tm *tp" type_identifier (pointer_declarator "*tp" * identifier)) , (parameter_declaration "_func_tm_ptr_time_t_ptr_tm_ptr *convert" type_identifier (pointer_declarator "*convert" * identifier)) , (parameter_declaration "mktime_offset_t *offset" type_identifier (pointer_declarator "*offset" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  longlong lVar3;\n  longlong lVar4;\n  longlong lVar5;\n  uint uVar6;\n  uint hour1;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  tm *ptVar14;\n  uint uVar15;\n  int *piVar16;\n  int mon;\n  uint uVar17;\n  int iVar18;\n  int min1;\n  int iVar19;\n  uint uVar20;\n  int iVar21;\n  uint uVar22;\n  uint uVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  bool bVar26;\n  longlong lVar27;\n  long_int lVar28;\n  int local_10c;\n  int local_108;\n  uint local_104;\n  int local_d4;\n  int local_d0;\n  uint local_c8;\n  time_t x;\n  long_int t;\n  long_int ot;\n  tm tm;\n  tm otm;\n  \n  iVar1 = tp->tm_isdst;\n  uVar22 = tp->tm_sec;\n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar23 = tp->tm_min;\n  uVar17 = tp->tm_year;\n  uVar15 = tp->tm_hour;\n  uVar20 = tp->tm_mday;\n  iVar24 = tp->tm_mon % 0xc;\n  uVar7 = iVar24 >> 0x1f;\n  uVar6 = tp->tm_mon / 0xc + uVar7;\n  hour1 = uVar6 + uVar17;\n  min1 = ((int)uVar6 >> 0x1f) + ((int)uVar17 >> 0x1f) + (uint)CARRY4(uVar6,uVar17);\n  uVar17 = 0;\n  if ((hour1 & 3) == 0) {\n    lVar27 = __moddi3(hour1,min1,100,0);\n    uVar17 = 1;\n    if (lVar27 == 0) {\n      uVar17 = __divdi3(hour1,min1,100,0);\n      uVar17 = (uint)((uVar17 & 3) == 1);\n    }\n  }\n  local_d0 = 6;\n  bVar26 = false;\n  uVar17 = __mon_yday[uVar17][iVar24 + (uVar7 & 0xc)] - 1;\n  iVar24 = *offset;\n  uVar7 = uVar17 + uVar20;\n  iVar19 = ((int)uVar17 >> 0x1f) + ((int)uVar20 >> 0x1f) + (uint)CARRY4(uVar17,uVar20);\n  uVar17 = 0x3b;\n  if ((int)uVar22 < 0x3c) {\n    uVar17 = uVar22;\n  }\n  uVar20 = 0;\n  if (-1 < (int)uVar17) {\n    uVar20 = uVar17;\n  }\n  iVar18 = ((hour1 >> 2 | min1 * 0x40000000) + 0x1db) - (uint)((hour1 & 3) == 0);\n  iVar21 = iVar18 / 0x19 + (iVar18 % 0x19 >> 0x1f);\n  uVar17 = (iVar18 - iVar21) + -0x1dd + (iVar21 >> 2);\n  lVar27 = (ulonglong)(hour1 - 0x46) * 0x16d;\n  uVar6 = (uint)lVar27;\n  uVar8 = uVar6 + uVar7;\n  lVar3 = (ulonglong)(uVar17 + uVar8) * 0x18;\n  uVar9 = (uint)lVar3;\n  lVar4 = (ulonglong)(uVar9 + uVar15) * 0x3c;\n  uVar10 = (uint)lVar4;\n  lVar5 = (ulonglong)(uVar10 + uVar23) * 0x3c;\n  uVar11 = (uint)lVar5;\n  uVar12 = uVar11 + uVar20;\n  uVar13 = uVar12 + iVar24;\n  uVar17 = (((int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar20)) - (-iVar24 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar24);\n  uVar6 = uVar17;\n  uVar8 = uVar13;\n  local_104 = uVar13;\n  t._0_4_ = uVar13;\n  t._4_4_ = uVar17;\n  while( true ) {\n    uVar10 = uVar17;\n    uVar9 = local_104;\n    ptVar14 = ranged_convert(convert,&t,&tm);\n    if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n    local_c8 = tm.tm_sec;\n    lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,tm.tm_year,\n                        tm.tm_yday,tm.tm_hour,tm.tm_min,tm.tm_sec);\n    uVar11 = (uint)lVar28;\n    local_108 = (int)((ulonglong)lVar28 >> 0x20);\n    uVar17 = (uint)t;\n    if (local_108 == 0 && uVar11 == 0) break;\n    if ((uVar8 == (uint)t && uVar6 == t._4_4_) && (local_104 != (uint)t || uVar10 != t._4_4_)) {\n      lVar27 = CONCAT44(t._4_4_,local_104);\n      lVar3 = CONCAT44(t._4_4_,(uint)t);\n      if (tm.tm_isdst < 0) goto LAB_0004d1e8;\n      if (iVar1 < 0) {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if (bVar26 <= (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n      else {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    local_104 = (uint)t;\n    bVar25 = CARRY4(uVar11,(uint)t);\n    t._0_4_ = uVar11 + (uint)t;\n    bVar26 = tm.tm_isdst != 0;\n    uVar17 = t._4_4_;\n    uVar6 = uVar10;\n    uVar8 = uVar9;\n    t._4_4_ = local_108 + t._4_4_ + (uint)bVar25;\n  }\n  lVar27 = CONCAT44(t._4_4_,local_104);\n  lVar3 = CONCAT44(t._4_4_,(uint)t);\n  if ((((iVar1 == 0) != (tm.tm_isdst == 0)) &&\n      (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1)) &&\n     (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < tm.tm_isdst)) {\n    local_10c = 0x92c70;\n    do {\n      local_d4 = 2;\n      uVar6 = -local_10c;\n      while( true ) {\n        uVar17 = (int)uVar6 >> 0x1f;\n        ot._0_4_ = (uint)t + uVar6;\n        ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6);\n        if (-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))) {\n          ptVar14 = ranged_convert(convert,&ot,&otm);\n          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        uVar6 = uVar6 + local_10c * 2;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n      }\n      local_10c = local_10c + 0x92c70;\n    } while (local_10c != 0x100dc400);\n    goto LAB_0004d320;\n  }\nLAB_0004d1e8:\n  uVar23 = (uint)((ulonglong)lVar3 >> 0x20);\n  t._0_4_ = (uint)lVar3;\n  t._4_4_ = (uint)((ulonglong)lVar27 >> 0x20);\n  *offset = (iVar24 - uVar13) + uVar17;\n  if (uVar22 == local_c8) {\nLAB_0004d2a1:\n    tp->tm_sec = tm.tm_sec;\n    tp->tm_min = tm.tm_min;\n    tp->tm_hour = tm.tm_hour;\n    tp->tm_mday = tm.tm_mday;\n    tp->tm_mon = tm.tm_mon;\n    tp->tm_year = tm.tm_year;\n    tp->tm_wday = tm.tm_wday;\n    tp->tm_yday = tm.tm_yday;\n    tp->tm_isdst = tm.tm_isdst;\n    tp->tm_gmtoff = tm.tm_gmtoff;\n    tp->tm_zone = tm.tm_zone;\n  }\n  else {\n    uVar15 = (uint)((int)uVar22 < 1 && local_c8 == 0x3c);\n    uVar6 = uVar15 - uVar20;\n    uVar7 = uVar22 + uVar6;\n    uVar22 = ((int)uVar22 >> 0x1f) + (-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f)) +\n             (uint)CARRY4(uVar22,uVar6);\n    t._0_4_ = uVar17 + uVar7;\n    t._4_4_ = uVar23 + uVar22 + (uint)CARRY4(uVar17,uVar7);\n    if (((int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0) ||\n       (t._4_4_ + (0x7fffffff < (uint)t) != 0)) {\nLAB_0004d320:\n      piVar16 = __errno_location();\n      *piVar16 = 0x4b;\n    }\n    else {\n      otm.tm_sec = (uint)t;\n      ptVar14 = (*convert)(&otm.tm_sec,&tm);\n      uVar17 = (uint)t;\n      if (ptVar14 != (tm *)0x0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    uVar17 = 0xffffffff;\n  }\n  if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar17;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "longlong lVar4;" type_identifier identifier ;) (declaration "longlong lVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint hour1;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "tm *ptVar14;" type_identifier (pointer_declarator "*ptVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "int mon;" primitive_type identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int min1;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "uint uVar23;" type_identifier identifier ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "longlong lVar27;" type_identifier identifier ;) (declaration "long_int lVar28;" type_identifier identifier ;) (declaration "int local_10c;" primitive_type identifier ;) (declaration "int local_108;" primitive_type identifier ;) (declaration "uint local_104;" type_identifier identifier ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "time_t x;" type_identifier identifier ;) (declaration "long_int t;" type_identifier identifier ;) (declaration "long_int ot;" type_identifier identifier ;) (declaration "tm tm;" type_identifier identifier ;) (declaration "tm otm;" type_identifier identifier ;) (expression_statement "iVar1 = tp->tm_isdst;" (assignment_expression "iVar1 = tp->tm_isdst" identifier = (field_expression "tp->tm_isdst" identifier -> field_identifier)) ;) (expression_statement "uVar22 = tp->tm_sec;" (assignment_expression "uVar22 = tp->tm_sec" identifier = (field_expression "tp->tm_sec" identifier -> field_identifier)) ;) (expression_statement "iVar2 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar2 = *(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 "uVar23 = tp->tm_min;" (assignment_expression "uVar23 = tp->tm_min" identifier = (field_expression "tp->tm_min" identifier -> field_identifier)) ;) (expression_statement "uVar17 = tp->tm_year;" (assignment_expression "uVar17 = tp->tm_year" identifier = (field_expression "tp->tm_year" identifier -> field_identifier)) ;) (expression_statement "uVar15 = tp->tm_hour;" (assignment_expression "uVar15 = tp->tm_hour" identifier = (field_expression "tp->tm_hour" identifier -> field_identifier)) ;) (expression_statement "uVar20 = tp->tm_mday;" (assignment_expression "uVar20 = tp->tm_mday" identifier = (field_expression "tp->tm_mday" identifier -> field_identifier)) ;) (expression_statement "iVar24 = tp->tm_mon % 0xc;" (assignment_expression "iVar24 = tp->tm_mon % 0xc" identifier = (binary_expression "tp->tm_mon % 0xc" (field_expression "tp->tm_mon" identifier -> field_identifier) % number_literal)) ;) (expression_statement "uVar7 = iVar24 >> 0x1f;" (assignment_expression "uVar7 = iVar24 >> 0x1f" identifier = (binary_expression "iVar24 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "uVar6 = tp->tm_mon / 0xc + uVar7;" (assignment_expression "uVar6 = tp->tm_mon / 0xc + uVar7" identifier = (binary_expression "tp->tm_mon / 0xc + uVar7" (binary_expression "tp->tm_mon / 0xc" (field_expression "tp->tm_mon" identifier -> field_identifier) / number_literal) + identifier)) ;) (expression_statement "hour1 = uVar6 + uVar17;" (assignment_expression "hour1 = uVar6 + uVar17" identifier = (binary_expression "uVar6 + uVar17" identifier + identifier)) ;) (expression_statement "min1 = ((int)uVar6 >> 0x1f) + ((int)uVar17 >> 0x1f) + (uint)CARRY4(uVar6,uVar17);" (assignment_expression "min1 = ((int)uVar6 >> 0x1f) + ((int)uVar17 >> 0x1f) + (uint)CARRY4(uVar6,uVar17)" identifier = (binary_expression "((int)uVar6 >> 0x1f) + ((int)uVar17 >> 0x1f) + (uint)CARRY4(uVar6,uVar17)" (binary_expression "((int)uVar6 >> 0x1f) + ((int)uVar17 >> 0x1f)" (parenthesized_expression "((int)uVar6 >> 0x1f)" ( (binary_expression "(int)uVar6 >> 0x1f" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "((int)uVar17 >> 0x1f)" ( (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar6,uVar17)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar6,uVar17)" identifier (argument_list "(uVar6,uVar17)" ( identifier , identifier )))))) ;) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (if_statement "if ((hour1 & 3) == 0) {\n    lVar27 = __moddi3(hour1,min1,100,0);\n    uVar17 = 1;\n    if (lVar27 == 0) {\n      uVar17 = __divdi3(hour1,min1,100,0);\n      uVar17 = (uint)((uVar17 & 3) == 1);\n    }\n  }" if (parenthesized_expression "((hour1 & 3) == 0)" ( (binary_expression "(hour1 & 3) == 0" (parenthesized_expression "(hour1 & 3)" ( (binary_expression "hour1 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    lVar27 = __moddi3(hour1,min1,100,0);\n    uVar17 = 1;\n    if (lVar27 == 0) {\n      uVar17 = __divdi3(hour1,min1,100,0);\n      uVar17 = (uint)((uVar17 & 3) == 1);\n    }\n  }" { (expression_statement "lVar27 = __moddi3(hour1,min1,100,0);" (assignment_expression "lVar27 = __moddi3(hour1,min1,100,0)" identifier = (call_expression "__moddi3(hour1,min1,100,0)" identifier (argument_list "(hour1,min1,100,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (if_statement "if (lVar27 == 0) {\n      uVar17 = __divdi3(hour1,min1,100,0);\n      uVar17 = (uint)((uVar17 & 3) == 1);\n    }" if (parenthesized_expression "(lVar27 == 0)" ( (binary_expression "lVar27 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar17 = __divdi3(hour1,min1,100,0);\n      uVar17 = (uint)((uVar17 & 3) == 1);\n    }" { (expression_statement "uVar17 = __divdi3(hour1,min1,100,0);" (assignment_expression "uVar17 = __divdi3(hour1,min1,100,0)" identifier = (call_expression "__divdi3(hour1,min1,100,0)" identifier (argument_list "(hour1,min1,100,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar17 = (uint)((uVar17 & 3) == 1);" (assignment_expression "uVar17 = (uint)((uVar17 & 3) == 1)" identifier = (call_expression "(uint)((uVar17 & 3) == 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar17 & 3) == 1)" ( (binary_expression "(uVar17 & 3) == 1" (parenthesized_expression "(uVar17 & 3)" ( (binary_expression "uVar17 & 3" identifier & number_literal) )) == number_literal) )))) ;) })) })) (expression_statement "local_d0 = 6;" (assignment_expression "local_d0 = 6" identifier = number_literal) ;) (expression_statement "bVar26 = false;" (assignment_expression "bVar26 = false" identifier = false) ;) (expression_statement "uVar17 = __mon_yday[uVar17][iVar24 + (uVar7 & 0xc)] - 1;" (assignment_expression "uVar17 = __mon_yday[uVar17][iVar24 + (uVar7 & 0xc)] - 1" identifier = (binary_expression "__mon_yday[uVar17][iVar24 + (uVar7 & 0xc)] - 1" (subscript_expression "__mon_yday[uVar17][iVar24 + (uVar7 & 0xc)]" (subscript_expression "__mon_yday[uVar17]" identifier [ identifier ]) [ (binary_expression "iVar24 + (uVar7 & 0xc)" identifier + (parenthesized_expression "(uVar7 & 0xc)" ( (binary_expression "uVar7 & 0xc" identifier & number_literal) ))) ]) - number_literal)) ;) (expression_statement "iVar24 = *offset;" (assignment_expression "iVar24 = *offset" identifier = (pointer_expression "*offset" * identifier)) ;) (expression_statement "uVar7 = uVar17 + uVar20;" (assignment_expression "uVar7 = uVar17 + uVar20" identifier = (binary_expression "uVar17 + uVar20" identifier + identifier)) ;) (expression_statement "iVar19 = ((int)uVar17 >> 0x1f) + ((int)uVar20 >> 0x1f) + (uint)CARRY4(uVar17,uVar20);" (assignment_expression "iVar19 = ((int)uVar17 >> 0x1f) + ((int)uVar20 >> 0x1f) + (uint)CARRY4(uVar17,uVar20)" identifier = (binary_expression "((int)uVar17 >> 0x1f) + ((int)uVar20 >> 0x1f) + (uint)CARRY4(uVar17,uVar20)" (binary_expression "((int)uVar17 >> 0x1f) + ((int)uVar20 >> 0x1f)" (parenthesized_expression "((int)uVar17 >> 0x1f)" ( (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "((int)uVar20 >> 0x1f)" ( (binary_expression "(int)uVar20 >> 0x1f" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar17,uVar20)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,uVar20)" identifier (argument_list "(uVar17,uVar20)" ( identifier , identifier )))))) ;) (expression_statement "uVar17 = 0x3b;" (assignment_expression "uVar17 = 0x3b" identifier = number_literal) ;) (if_statement "if ((int)uVar22 < 0x3c) {\n    uVar17 = uVar22;\n  }" if (parenthesized_expression "((int)uVar22 < 0x3c)" ( (binary_expression "(int)uVar22 < 0x3c" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar17 = uVar22;\n  }" { (expression_statement "uVar17 = uVar22;" (assignment_expression "uVar17 = uVar22" identifier = identifier) ;) })) (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar17) {\n    uVar20 = uVar17;\n  }" if (parenthesized_expression "(-1 < (int)uVar17)" ( (binary_expression "-1 < (int)uVar17" number_literal < (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar20 = uVar17;\n  }" { (expression_statement "uVar20 = uVar17;" (assignment_expression "uVar20 = uVar17" identifier = identifier) ;) })) (expression_statement "iVar18 = ((hour1 >> 2 | min1 * 0x40000000) + 0x1db) - (uint)((hour1 & 3) == 0);" (assignment_expression "iVar18 = ((hour1 >> 2 | min1 * 0x40000000) + 0x1db) - (uint)((hour1 & 3) == 0)" identifier = (binary_expression "((hour1 >> 2 | min1 * 0x40000000) + 0x1db) - (uint)((hour1 & 3) == 0)" (parenthesized_expression "((hour1 >> 2 | min1 * 0x40000000) + 0x1db)" ( (binary_expression "(hour1 >> 2 | min1 * 0x40000000) + 0x1db" (parenthesized_expression "(hour1 >> 2 | min1 * 0x40000000)" ( (binary_expression "hour1 >> 2 | min1 * 0x40000000" (binary_expression "hour1 >> 2" identifier >> number_literal) | (binary_expression "min1 * 0x40000000" identifier * number_literal)) )) + number_literal) )) - (call_expression "(uint)((hour1 & 3) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((hour1 & 3) == 0)" ( (binary_expression "(hour1 & 3) == 0" (parenthesized_expression "(hour1 & 3)" ( (binary_expression "hour1 & 3" identifier & number_literal) )) == number_literal) ))))) ;) (expression_statement "iVar21 = iVar18 / 0x19 + (iVar18 % 0x19 >> 0x1f);" (assignment_expression "iVar21 = iVar18 / 0x19 + (iVar18 % 0x19 >> 0x1f)" identifier = (binary_expression "iVar18 / 0x19 + (iVar18 % 0x19 >> 0x1f)" (binary_expression "iVar18 / 0x19" identifier / number_literal) + (parenthesized_expression "(iVar18 % 0x19 >> 0x1f)" ( (binary_expression "iVar18 % 0x19 >> 0x1f" (binary_expression "iVar18 % 0x19" identifier % number_literal) >> number_literal) )))) ;) (expression_statement "uVar17 = (iVar18 - iVar21) + -0x1dd + (iVar21 >> 2);" (assignment_expression "uVar17 = (iVar18 - iVar21) + -0x1dd + (iVar21 >> 2)" identifier = (binary_expression "(iVar18 - iVar21) + -0x1dd + (iVar21 >> 2)" (binary_expression "(iVar18 - iVar21) + -0x1dd" (parenthesized_expression "(iVar18 - iVar21)" ( (binary_expression "iVar18 - iVar21" identifier - identifier) )) + number_literal) + (parenthesized_expression "(iVar21 >> 2)" ( (binary_expression "iVar21 >> 2" identifier >> number_literal) )))) ;) (expression_statement "lVar27 = (ulonglong)(hour1 - 0x46) * 0x16d;" (assignment_expression "lVar27 = (ulonglong)(hour1 - 0x46) * 0x16d" identifier = (binary_expression "(ulonglong)(hour1 - 0x46) * 0x16d" (call_expression "(ulonglong)(hour1 - 0x46)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(hour1 - 0x46)" ( (binary_expression "hour1 - 0x46" identifier - number_literal) ))) * number_literal)) ;) (expression_statement "uVar6 = (uint)lVar27;" (assignment_expression "uVar6 = (uint)lVar27" identifier = (cast_expression "(uint)lVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = uVar6 + uVar7;" (assignment_expression "uVar8 = uVar6 + uVar7" identifier = (binary_expression "uVar6 + uVar7" identifier + identifier)) ;) (expression_statement "lVar3 = (ulonglong)(uVar17 + uVar8) * 0x18;" (assignment_expression "lVar3 = (ulonglong)(uVar17 + uVar8) * 0x18" identifier = (binary_expression "(ulonglong)(uVar17 + uVar8) * 0x18" (call_expression "(ulonglong)(uVar17 + uVar8)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar17 + uVar8)" ( (binary_expression "uVar17 + uVar8" identifier + identifier) ))) * number_literal)) ;) (expression_statement "uVar9 = (uint)lVar3;" (assignment_expression "uVar9 = (uint)lVar3" identifier = (cast_expression "(uint)lVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar4 = (ulonglong)(uVar9 + uVar15) * 0x3c;" (assignment_expression "lVar4 = (ulonglong)(uVar9 + uVar15) * 0x3c" identifier = (binary_expression "(ulonglong)(uVar9 + uVar15) * 0x3c" (call_expression "(ulonglong)(uVar9 + uVar15)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar9 + uVar15)" ( (binary_expression "uVar9 + uVar15" identifier + identifier) ))) * number_literal)) ;) (expression_statement "uVar10 = (uint)lVar4;" (assignment_expression "uVar10 = (uint)lVar4" identifier = (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar5 = (ulonglong)(uVar10 + uVar23) * 0x3c;" (assignment_expression "lVar5 = (ulonglong)(uVar10 + uVar23) * 0x3c" identifier = (binary_expression "(ulonglong)(uVar10 + uVar23) * 0x3c" (call_expression "(ulonglong)(uVar10 + uVar23)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar10 + uVar23)" ( (binary_expression "uVar10 + uVar23" identifier + identifier) ))) * number_literal)) ;) (expression_statement "uVar11 = (uint)lVar5;" (assignment_expression "uVar11 = (uint)lVar5" identifier = (cast_expression "(uint)lVar5" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = uVar11 + uVar20;" (assignment_expression "uVar12 = uVar11 + uVar20" identifier = (binary_expression "uVar11 + uVar20" identifier + identifier)) ;) (expression_statement "uVar13 = uVar12 + iVar24;" (assignment_expression "uVar13 = uVar12 + iVar24" identifier = (binary_expression "uVar12 + iVar24" identifier + identifier)) ;) (expression_statement "uVar17 = (((int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar20)) - (-iVar24 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar24);" (assignment_expression "uVar17 = (((int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar20)) - (-iVar24 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar24)" identifier = (binary_expression "(((int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar20)) - (-iVar24 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar24)" (parenthesized_expression "(((int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar20)) - (-iVar24 >> 0x1f))" ( (binary_expression "((int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar20)) - (-iVar24 >> 0x1f)" (parenthesized_expression "((int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar20))" ( (binary_expression "(int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar20)" (binary_expression "(int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c + ((int)uVar20 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar5 >> 0x20) +\n             ((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c" (cast_expression "(int)((ulonglong)lVar5 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar5 >> 0x20)" ( (binary_expression "(ulonglong)lVar5 >> 0x20" (cast_expression "(ulonglong)lVar5" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)) * 0x3c" (parenthesized_expression "((int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23))" ( (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar23)" (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c + ((int)uVar23 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n              ((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c" (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)) * 0x3c" (parenthesized_expression "((int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15))" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f) + (uint)CARRY4(uVar9,uVar15)" (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18 +\n               ((int)uVar15 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n               (((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18" (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "(((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)) * 0x18" (parenthesized_expression "(((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8))" ( (binary_expression "((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7) + (uint)CARRY4(uVar17,uVar8)" (binary_expression "((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19 + (uint)CARRY4(uVar6,uVar7)" (binary_expression "((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d +\n                iVar19" (binary_expression "((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20) + (min1 + -1 + (uint)(0x45 < hour1)) * 0x16d" (binary_expression "((int)uVar17 >> 0x1f) +\n                (int)((ulonglong)lVar27 >> 0x20)" (parenthesized_expression "((int)uVar17 >> 0x1f)" ( (binary_expression "(int)uVar17 >> 0x1f" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (cast_expression "(int)((ulonglong)lVar27 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar27 >> 0x20)" ( (binary_expression "(ulonglong)lVar27 >> 0x20" (cast_expression "(ulonglong)lVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + (binary_expression "(min1 + -1 + (uint)(0x45 < hour1)) * 0x16d" (parenthesized_expression "(min1 + -1 + (uint)(0x45 < hour1))" ( (binary_expression "min1 + -1 + (uint)(0x45 < hour1)" (binary_expression "min1 + -1" identifier + number_literal) + (call_expression "(uint)(0x45 < hour1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x45 < hour1)" ( (binary_expression "0x45 < hour1" number_literal < identifier) )))) )) * number_literal)) + identifier) + (cast_expression "(uint)CARRY4(uVar6,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar6,uVar7)" identifier (argument_list "(uVar6,uVar7)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar17,uVar8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,uVar8)" identifier (argument_list "(uVar17,uVar8)" ( identifier , identifier ))))) )) * number_literal)) + (parenthesized_expression "((int)uVar15 >> 0x1f)" ( (binary_expression "(int)uVar15 >> 0x1f" (cast_expression "(int)uVar15" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar9,uVar15)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar9,uVar15)" identifier (argument_list "(uVar9,uVar15)" ( identifier , identifier ))))) )) * number_literal)) + (parenthesized_expression "((int)uVar23 >> 0x1f)" ( (binary_expression "(int)uVar23 >> 0x1f" (cast_expression "(int)uVar23" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar10,uVar23)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar23)" identifier (argument_list "(uVar10,uVar23)" ( identifier , identifier ))))) )) * number_literal)) + (parenthesized_expression "((int)uVar20 >> 0x1f)" ( (binary_expression "(int)uVar20 >> 0x1f" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar11,uVar20)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar11,uVar20)" identifier (argument_list "(uVar11,uVar20)" ( identifier , identifier ))))) )) - (parenthesized_expression "(-iVar24 >> 0x1f)" ( (binary_expression "-iVar24 >> 0x1f" (unary_expression "-iVar24" - identifier) >> number_literal) ))) )) - (call_expression "(uint)(uVar12 < (uint)-iVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < (uint)-iVar24)" ( (binary_expression "uVar12 < (uint)-iVar24" identifier < (binary_expression "(uint)-iVar24" (parenthesized_expression "(uint)" ( identifier )) - identifier)) ))))) ;) (expression_statement "uVar6 = uVar17;" (assignment_expression "uVar6 = uVar17" identifier = identifier) ;) (expression_statement "uVar8 = uVar13;" (assignment_expression "uVar8 = uVar13" identifier = identifier) ;) (expression_statement "local_104 = uVar13;" (assignment_expression "local_104 = uVar13" identifier = identifier) ;) (expression_statement "t._0_4_ = uVar13;" (assignment_expression "t._0_4_ = uVar13" (field_expression "t._0_4_" identifier . field_identifier) = identifier) ;) (expression_statement "t._4_4_ = uVar17;" (assignment_expression "t._4_4_ = uVar17" (field_expression "t._4_4_" identifier . field_identifier) = identifier) ;) (while_statement "while( true ) {\n    uVar10 = uVar17;\n    uVar9 = local_104;\n    ptVar14 = ranged_convert(convert,&t,&tm);\n    if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n    local_c8 = tm.tm_sec;\n    lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,tm.tm_year,\n                        tm.tm_yday,tm.tm_hour,tm.tm_min,tm.tm_sec);\n    uVar11 = (uint)lVar28;\n    local_108 = (int)((ulonglong)lVar28 >> 0x20);\n    uVar17 = (uint)t;\n    if (local_108 == 0 && uVar11 == 0) break;\n    if ((uVar8 == (uint)t && uVar6 == t._4_4_) && (local_104 != (uint)t || uVar10 != t._4_4_)) {\n      lVar27 = CONCAT44(t._4_4_,local_104);\n      lVar3 = CONCAT44(t._4_4_,(uint)t);\n      if (tm.tm_isdst < 0) goto LAB_0004d1e8;\n      if (iVar1 < 0) {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if (bVar26 <= (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n      else {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    local_104 = (uint)t;\n    bVar25 = CARRY4(uVar11,(uint)t);\n    t._0_4_ = uVar11 + (uint)t;\n    bVar26 = tm.tm_isdst != 0;\n    uVar17 = t._4_4_;\n    uVar6 = uVar10;\n    uVar8 = uVar9;\n    t._4_4_ = local_108 + t._4_4_ + (uint)bVar25;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar10 = uVar17;\n    uVar9 = local_104;\n    ptVar14 = ranged_convert(convert,&t,&tm);\n    if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n    local_c8 = tm.tm_sec;\n    lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,tm.tm_year,\n                        tm.tm_yday,tm.tm_hour,tm.tm_min,tm.tm_sec);\n    uVar11 = (uint)lVar28;\n    local_108 = (int)((ulonglong)lVar28 >> 0x20);\n    uVar17 = (uint)t;\n    if (local_108 == 0 && uVar11 == 0) break;\n    if ((uVar8 == (uint)t && uVar6 == t._4_4_) && (local_104 != (uint)t || uVar10 != t._4_4_)) {\n      lVar27 = CONCAT44(t._4_4_,local_104);\n      lVar3 = CONCAT44(t._4_4_,(uint)t);\n      if (tm.tm_isdst < 0) goto LAB_0004d1e8;\n      if (iVar1 < 0) {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if (bVar26 <= (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n      else {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    local_104 = (uint)t;\n    bVar25 = CARRY4(uVar11,(uint)t);\n    t._0_4_ = uVar11 + (uint)t;\n    bVar26 = tm.tm_isdst != 0;\n    uVar17 = t._4_4_;\n    uVar6 = uVar10;\n    uVar8 = uVar9;\n    t._4_4_ = local_108 + t._4_4_ + (uint)bVar25;\n  }" { (expression_statement "uVar10 = uVar17;" (assignment_expression "uVar10 = uVar17" identifier = identifier) ;) (expression_statement "uVar9 = local_104;" (assignment_expression "uVar9 = local_104" identifier = identifier) ;) (expression_statement "ptVar14 = ranged_convert(convert,&t,&tm);" (assignment_expression "ptVar14 = ranged_convert(convert,&t,&tm)" identifier = (call_expression "ranged_convert(convert,&t,&tm)" identifier (argument_list "(convert,&t,&tm)" ( identifier , (pointer_expression "&t" & identifier) , (pointer_expression "&tm" & identifier) )))) ;) (if_statement "if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;" if (parenthesized_expression "(ptVar14 == (tm *)0x0)" ( (binary_expression "ptVar14 == (tm *)0x0" identifier == (cast_expression "(tm *)0x0" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004d32f;" goto statement_identifier ;)) (expression_statement "local_c8 = tm.tm_sec;" (assignment_expression "local_c8 = tm.tm_sec" identifier = (field_expression "tm.tm_sec" identifier . field_identifier)) ;) (expression_statement "lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,tm.tm_year,\n                        tm.tm_yday,tm.tm_hour,tm.tm_min,tm.tm_sec);" (assignment_expression "lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,tm.tm_year,\n                        tm.tm_yday,tm.tm_hour,tm.tm_min,tm.tm_sec)" identifier = (call_expression "ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,tm.tm_year,\n                        tm.tm_yday,tm.tm_hour,tm.tm_min,tm.tm_sec)" identifier (argument_list "(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,tm.tm_year,\n                        tm.tm_yday,tm.tm_hour,tm.tm_min,tm.tm_sec)" ( (call_expression "CONCAT44(iVar19,uVar7)" identifier (argument_list "(iVar19,uVar7)" ( identifier , identifier ))) , (call_expression "CONCAT44(uVar23,uVar15)" identifier (argument_list "(uVar23,uVar15)" ( identifier , identifier ))) , identifier , identifier , identifier , (field_expression "tm.tm_year" identifier . field_identifier) , (field_expression "tm.tm_yday" identifier . field_identifier) , (field_expression "tm.tm_hour" identifier . field_identifier) , (field_expression "tm.tm_min" identifier . field_identifier) , (field_expression "tm.tm_sec" identifier . field_identifier) )))) ;) (expression_statement "uVar11 = (uint)lVar28;" (assignment_expression "uVar11 = (uint)lVar28" identifier = (cast_expression "(uint)lVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_108 = (int)((ulonglong)lVar28 >> 0x20);" (assignment_expression "local_108 = (int)((ulonglong)lVar28 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar17 = (uint)t;" (assignment_expression "uVar17 = (uint)t" identifier = (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_108 == 0 && uVar11 == 0) break;" if (parenthesized_expression "(local_108 == 0 && uVar11 == 0)" ( (binary_expression "local_108 == 0 && uVar11 == 0" (binary_expression "local_108 == 0" identifier == number_literal) && (binary_expression "uVar11 == 0" identifier == number_literal)) )) (break_statement "break;" break ;)) (if_statement "if ((uVar8 == (uint)t && uVar6 == t._4_4_) && (local_104 != (uint)t || uVar10 != t._4_4_)) {\n      lVar27 = CONCAT44(t._4_4_,local_104);\n      lVar3 = CONCAT44(t._4_4_,(uint)t);\n      if (tm.tm_isdst < 0) goto LAB_0004d1e8;\n      if (iVar1 < 0) {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if (bVar26 <= (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n      else {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n    }" if (parenthesized_expression "((uVar8 == (uint)t && uVar6 == t._4_4_) && (local_104 != (uint)t || uVar10 != t._4_4_))" ( (binary_expression "(uVar8 == (uint)t && uVar6 == t._4_4_) && (local_104 != (uint)t || uVar10 != t._4_4_)" (parenthesized_expression "(uVar8 == (uint)t && uVar6 == t._4_4_)" ( (binary_expression "uVar8 == (uint)t && uVar6 == t._4_4_" (binary_expression "uVar8 == (uint)t" identifier == (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier)) && (binary_expression "uVar6 == t._4_4_" identifier == (field_expression "t._4_4_" identifier . field_identifier))) )) && (parenthesized_expression "(local_104 != (uint)t || uVar10 != t._4_4_)" ( (binary_expression "local_104 != (uint)t || uVar10 != t._4_4_" (binary_expression "local_104 != (uint)t" identifier != (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier)) || (binary_expression "uVar10 != t._4_4_" identifier != (field_expression "t._4_4_" identifier . field_identifier))) ))) )) (compound_statement "{\n      lVar27 = CONCAT44(t._4_4_,local_104);\n      lVar3 = CONCAT44(t._4_4_,(uint)t);\n      if (tm.tm_isdst < 0) goto LAB_0004d1e8;\n      if (iVar1 < 0) {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if (bVar26 <= (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n      else {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n    }" { (expression_statement "lVar27 = CONCAT44(t._4_4_,local_104);" (assignment_expression "lVar27 = CONCAT44(t._4_4_,local_104)" identifier = (call_expression "CONCAT44(t._4_4_,local_104)" identifier (argument_list "(t._4_4_,local_104)" ( (field_expression "t._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "lVar3 = CONCAT44(t._4_4_,(uint)t);" (assignment_expression "lVar3 = CONCAT44(t._4_4_,(uint)t)" identifier = (call_expression "CONCAT44(t._4_4_,(uint)t)" identifier (argument_list "(t._4_4_,(uint)t)" ( (field_expression "t._4_4_" identifier . field_identifier) , (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if (tm.tm_isdst < 0) goto LAB_0004d1e8;" if (parenthesized_expression "(tm.tm_isdst < 0)" ( (binary_expression "tm.tm_isdst < 0" (field_expression "tm.tm_isdst" identifier . field_identifier) < number_literal) )) (goto_statement "goto LAB_0004d1e8;" goto statement_identifier ;)) (if_statement "if (iVar1 < 0) {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if (bVar26 <= (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }\n      else {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if (bVar26 <= (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }" { (expression_statement "lVar27 = CONCAT44(t._4_4_,local_104);" (assignment_expression "lVar27 = CONCAT44(t._4_4_,local_104)" identifier = (call_expression "CONCAT44(t._4_4_,local_104)" identifier (argument_list "(t._4_4_,local_104)" ( (field_expression "t._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "lVar3 = CONCAT44(t._4_4_,(uint)t);" (assignment_expression "lVar3 = CONCAT44(t._4_4_,(uint)t)" identifier = (call_expression "CONCAT44(t._4_4_,(uint)t)" identifier (argument_list "(t._4_4_,(uint)t)" ( (field_expression "t._4_4_" identifier . field_identifier) , (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if (bVar26 <= (tm.tm_isdst != 0)) goto LAB_0004d1e8;" if (parenthesized_expression "(bVar26 <= (tm.tm_isdst != 0))" ( (binary_expression "bVar26 <= (tm.tm_isdst != 0)" identifier <= (parenthesized_expression "(tm.tm_isdst != 0)" ( (binary_expression "tm.tm_isdst != 0" (field_expression "tm.tm_isdst" identifier . field_identifier) != number_literal) ))) )) (goto_statement "goto LAB_0004d1e8;" goto statement_identifier ;)) }) (else_clause "else {\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }" else (compound_statement "{\n        lVar27 = CONCAT44(t._4_4_,local_104);\n        lVar3 = CONCAT44(t._4_4_,(uint)t);\n        if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;\n      }" { (expression_statement "lVar27 = CONCAT44(t._4_4_,local_104);" (assignment_expression "lVar27 = CONCAT44(t._4_4_,local_104)" identifier = (call_expression "CONCAT44(t._4_4_,local_104)" identifier (argument_list "(t._4_4_,local_104)" ( (field_expression "t._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "lVar3 = CONCAT44(t._4_4_,(uint)t);" (assignment_expression "lVar3 = CONCAT44(t._4_4_,(uint)t)" identifier = (call_expression "CONCAT44(t._4_4_,(uint)t)" identifier (argument_list "(t._4_4_,(uint)t)" ( (field_expression "t._4_4_" identifier . field_identifier) , (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if ((iVar1 != 0) != (tm.tm_isdst != 0)) goto LAB_0004d1e8;" if (parenthesized_expression "((iVar1 != 0) != (tm.tm_isdst != 0))" ( (binary_expression "(iVar1 != 0) != (tm.tm_isdst != 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) != (parenthesized_expression "(tm.tm_isdst != 0)" ( (binary_expression "tm.tm_isdst != 0" (field_expression "tm.tm_isdst" identifier . field_identifier) != number_literal) ))) )) (goto_statement "goto LAB_0004d1e8;" 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)) ;) (if_statement "if (local_d0 == 0) goto LAB_0004d320;" if (parenthesized_expression "(local_d0 == 0)" ( (binary_expression "local_d0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004d320;" goto statement_identifier ;)) (expression_statement "local_104 = (uint)t;" (assignment_expression "local_104 = (uint)t" identifier = (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "bVar25 = CARRY4(uVar11,(uint)t);" (assignment_expression "bVar25 = CARRY4(uVar11,(uint)t)" identifier = (call_expression "CARRY4(uVar11,(uint)t)" identifier (argument_list "(uVar11,(uint)t)" ( identifier , (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "t._0_4_ = uVar11 + (uint)t;" (assignment_expression "t._0_4_ = uVar11 + (uint)t" (field_expression "t._0_4_" identifier . field_identifier) = (binary_expression "uVar11 + (uint)t" identifier + (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (expression_statement "bVar26 = tm.tm_isdst != 0;" (assignment_expression "bVar26 = tm.tm_isdst != 0" identifier = (binary_expression "tm.tm_isdst != 0" (field_expression "tm.tm_isdst" identifier . field_identifier) != number_literal)) ;) (expression_statement "uVar17 = t._4_4_;" (assignment_expression "uVar17 = t._4_4_" identifier = (field_expression "t._4_4_" identifier . field_identifier)) ;) (expression_statement "uVar6 = uVar10;" (assignment_expression "uVar6 = uVar10" identifier = identifier) ;) (expression_statement "uVar8 = uVar9;" (assignment_expression "uVar8 = uVar9" identifier = identifier) ;) (expression_statement "t._4_4_ = local_108 + t._4_4_ + (uint)bVar25;" (assignment_expression "t._4_4_ = local_108 + t._4_4_ + (uint)bVar25" (field_expression "t._4_4_" identifier . field_identifier) = (binary_expression "local_108 + t._4_4_ + (uint)bVar25" (binary_expression "local_108 + t._4_4_" identifier + (field_expression "t._4_4_" identifier . field_identifier)) + (cast_expression "(uint)bVar25" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) })) (expression_statement "lVar27 = CONCAT44(t._4_4_,local_104);" (assignment_expression "lVar27 = CONCAT44(t._4_4_,local_104)" identifier = (call_expression "CONCAT44(t._4_4_,local_104)" identifier (argument_list "(t._4_4_,local_104)" ( (field_expression "t._4_4_" identifier . field_identifier) , identifier )))) ;) (expression_statement "lVar3 = CONCAT44(t._4_4_,(uint)t);" (assignment_expression "lVar3 = CONCAT44(t._4_4_,(uint)t)" identifier = (call_expression "CONCAT44(t._4_4_,(uint)t)" identifier (argument_list "(t._4_4_,(uint)t)" ( (field_expression "t._4_4_" identifier . field_identifier) , (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if ((((iVar1 == 0) != (tm.tm_isdst == 0)) &&\n      (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1)) &&\n     (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < tm.tm_isdst)) {\n    local_10c = 0x92c70;\n    do {\n      local_d4 = 2;\n      uVar6 = -local_10c;\n      while( true ) {\n        uVar17 = (int)uVar6 >> 0x1f;\n        ot._0_4_ = (uint)t + uVar6;\n        ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6);\n        if (-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))) {\n          ptVar14 = ranged_convert(convert,&ot,&otm);\n          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        uVar6 = uVar6 + local_10c * 2;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n      }\n      local_10c = local_10c + 0x92c70;\n    } while (local_10c != 0x100dc400);\n    goto LAB_0004d320;\n  }" if (parenthesized_expression "((((iVar1 == 0) != (tm.tm_isdst == 0)) &&\n      (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1)) &&\n     (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < tm.tm_isdst))" ( (binary_expression "(((iVar1 == 0) != (tm.tm_isdst == 0)) &&\n      (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1)) &&\n     (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < tm.tm_isdst)" (parenthesized_expression "(((iVar1 == 0) != (tm.tm_isdst == 0)) &&\n      (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1))" ( (binary_expression "((iVar1 == 0) != (tm.tm_isdst == 0)) &&\n      (lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1)" (parenthesized_expression "((iVar1 == 0) != (tm.tm_isdst == 0))" ( (binary_expression "(iVar1 == 0) != (tm.tm_isdst == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) != (parenthesized_expression "(tm.tm_isdst == 0)" ( (binary_expression "tm.tm_isdst == 0" (field_expression "tm.tm_isdst" identifier . field_identifier) == number_literal) ))) )) && (parenthesized_expression "(lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1)" ( (comma_expression "lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1" (assignment_expression "lVar27 = CONCAT44(t._4_4_,local_104)" identifier = (call_expression "CONCAT44(t._4_4_,local_104)" identifier (argument_list "(t._4_4_,local_104)" ( (field_expression "t._4_4_" identifier . field_identifier) , identifier )))) , (comma_expression "lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < iVar1" (assignment_expression "lVar3 = CONCAT44(t._4_4_,(uint)t)" identifier = (call_expression "CONCAT44(t._4_4_,(uint)t)" identifier (argument_list "(t._4_4_,(uint)t)" ( (field_expression "t._4_4_" identifier . field_identifier) , (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier) )))) , (binary_expression "-1 < iVar1" number_literal < identifier))) ))) )) && (parenthesized_expression "(lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < tm.tm_isdst)" ( (comma_expression "lVar27 = CONCAT44(t._4_4_,local_104), lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < tm.tm_isdst" (assignment_expression "lVar27 = CONCAT44(t._4_4_,local_104)" identifier = (call_expression "CONCAT44(t._4_4_,local_104)" identifier (argument_list "(t._4_4_,local_104)" ( (field_expression "t._4_4_" identifier . field_identifier) , identifier )))) , (comma_expression "lVar3 = CONCAT44(t._4_4_,(uint)t), -1 < tm.tm_isdst" (assignment_expression "lVar3 = CONCAT44(t._4_4_,(uint)t)" identifier = (call_expression "CONCAT44(t._4_4_,(uint)t)" identifier (argument_list "(t._4_4_,(uint)t)" ( (field_expression "t._4_4_" identifier . field_identifier) , (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier) )))) , (binary_expression "-1 < tm.tm_isdst" number_literal < (field_expression "tm.tm_isdst" identifier . field_identifier)))) ))) )) (compound_statement "{\n    local_10c = 0x92c70;\n    do {\n      local_d4 = 2;\n      uVar6 = -local_10c;\n      while( true ) {\n        uVar17 = (int)uVar6 >> 0x1f;\n        ot._0_4_ = (uint)t + uVar6;\n        ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6);\n        if (-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))) {\n          ptVar14 = ranged_convert(convert,&ot,&otm);\n          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        uVar6 = uVar6 + local_10c * 2;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n      }\n      local_10c = local_10c + 0x92c70;\n    } while (local_10c != 0x100dc400);\n    goto LAB_0004d320;\n  }" { (expression_statement "local_10c = 0x92c70;" (assignment_expression "local_10c = 0x92c70" identifier = number_literal) ;) (do_statement "do {\n      local_d4 = 2;\n      uVar6 = -local_10c;\n      while( true ) {\n        uVar17 = (int)uVar6 >> 0x1f;\n        ot._0_4_ = (uint)t + uVar6;\n        ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6);\n        if (-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))) {\n          ptVar14 = ranged_convert(convert,&ot,&otm);\n          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        uVar6 = uVar6 + local_10c * 2;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n      }\n      local_10c = local_10c + 0x92c70;\n    } while (local_10c != 0x100dc400);" do (compound_statement "{\n      local_d4 = 2;\n      uVar6 = -local_10c;\n      while( true ) {\n        uVar17 = (int)uVar6 >> 0x1f;\n        ot._0_4_ = (uint)t + uVar6;\n        ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6);\n        if (-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))) {\n          ptVar14 = ranged_convert(convert,&ot,&otm);\n          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        uVar6 = uVar6 + local_10c * 2;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n      }\n      local_10c = local_10c + 0x92c70;\n    }" { (expression_statement "local_d4 = 2;" (assignment_expression "local_d4 = 2" identifier = number_literal) ;) (expression_statement "uVar6 = -local_10c;" (assignment_expression "uVar6 = -local_10c" identifier = (unary_expression "-local_10c" - identifier)) ;) (while_statement "while( true ) {\n        uVar17 = (int)uVar6 >> 0x1f;\n        ot._0_4_ = (uint)t + uVar6;\n        ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6);\n        if (-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))) {\n          ptVar14 = ranged_convert(convert,&ot,&otm);\n          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        uVar6 = uVar6 + local_10c * 2;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        uVar17 = (int)uVar6 >> 0x1f;\n        ot._0_4_ = (uint)t + uVar6;\n        ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6);\n        if (-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))) {\n          ptVar14 = ranged_convert(convert,&ot,&otm);\n          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        uVar6 = uVar6 + local_10c * 2;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n      }" { (expression_statement "uVar17 = (int)uVar6 >> 0x1f;" (assignment_expression "uVar17 = (int)uVar6 >> 0x1f" identifier = (binary_expression "(int)uVar6 >> 0x1f" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "ot._0_4_ = (uint)t + uVar6;" (assignment_expression "ot._0_4_ = (uint)t + uVar6" (field_expression "ot._0_4_" identifier . field_identifier) = (binary_expression "(uint)t + uVar6" (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier) + identifier)) ;) (expression_statement "ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6);" (assignment_expression "ot._4_4_ = t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6)" (field_expression "ot._4_4_" identifier . field_identifier) = (binary_expression "t._4_4_ + uVar17 + (uint)CARRY4((uint)t,uVar6)" (binary_expression "t._4_4_ + uVar17" (field_expression "t._4_4_" identifier . field_identifier) + identifier) + (cast_expression "(uint)CARRY4((uint)t,uVar6)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4((uint)t,uVar6)" identifier (argument_list "((uint)t,uVar6)" ( (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier) , identifier )))))) ;) (if_statement "if (-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))) {\n          ptVar14 = ranged_convert(convert,&ot,&otm);\n          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }" if (parenthesized_expression "(-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17)))" ( (binary_expression "-1 < (int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))" number_literal < (cast_expression "(int)((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17))" ( (binary_expression "(uVar17 ^ ot._4_4_) & ~(t._4_4_ ^ uVar17)" (parenthesized_expression "(uVar17 ^ ot._4_4_)" ( (binary_expression "uVar17 ^ ot._4_4_" identifier ^ (field_expression "ot._4_4_" identifier . field_identifier)) )) & (unary_expression "~(t._4_4_ ^ uVar17)" ~ (parenthesized_expression "(t._4_4_ ^ uVar17)" ( (binary_expression "t._4_4_ ^ uVar17" (field_expression "t._4_4_" identifier . field_identifier) ^ identifier) )))) )))) )) (compound_statement "{\n          ptVar14 = ranged_convert(convert,&ot,&otm);\n          if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;\n          if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }" { (expression_statement "ptVar14 = ranged_convert(convert,&ot,&otm);" (assignment_expression "ptVar14 = ranged_convert(convert,&ot,&otm)" identifier = (call_expression "ranged_convert(convert,&ot,&otm)" identifier (argument_list "(convert,&ot,&otm)" ( identifier , (pointer_expression "&ot" & identifier) , (pointer_expression "&otm" & identifier) )))) ;) (if_statement "if (ptVar14 == (tm *)0x0) goto LAB_0004d32f;" if (parenthesized_expression "(ptVar14 == (tm *)0x0)" ( (binary_expression "ptVar14 == (tm *)0x0" identifier == (cast_expression "(tm *)0x0" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004d32f;" goto statement_identifier ;)) (if_statement "if (((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }" if (parenthesized_expression "(((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0))" ( (binary_expression "((iVar1 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)" (parenthesized_expression "((iVar1 == 0) == (otm.tm_isdst == 0))" ( (binary_expression "(iVar1 == 0) == (otm.tm_isdst == 0)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) == (parenthesized_expression "(otm.tm_isdst == 0)" ( (binary_expression "otm.tm_isdst == 0" (field_expression "otm.tm_isdst" identifier . field_identifier) == number_literal) ))) )) || (parenthesized_expression "(otm.tm_isdst < 0)" ( (binary_expression "otm.tm_isdst < 0" (field_expression "otm.tm_isdst" identifier . field_identifier) < number_literal) ))) )) (compound_statement "{\n            lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);\n            lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);\n            uVar17 = (uint)lVar27;\n            if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }\n          }" { (expression_statement "lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);" (assignment_expression "lVar28 = ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec)" identifier = (call_expression "ydhms_diff(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec)" identifier (argument_list "(CONCAT44(iVar19,uVar7),CONCAT44(uVar23,uVar15),hour1,min1,uVar20,\n                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec)" ( (call_expression "CONCAT44(iVar19,uVar7)" identifier (argument_list "(iVar19,uVar7)" ( identifier , identifier ))) , (call_expression "CONCAT44(uVar23,uVar15)" identifier (argument_list "(uVar23,uVar15)" ( identifier , identifier ))) , identifier , identifier , identifier , (field_expression "otm.tm_year" identifier . field_identifier) , (field_expression "otm.tm_yday" identifier . field_identifier) , (field_expression "otm.tm_hour" identifier . field_identifier) , (field_expression "otm.tm_min" identifier . field_identifier) , (field_expression "otm.tm_sec" identifier . field_identifier) )))) ;) (expression_statement "lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot);" (assignment_expression "lVar27 = lVar28 + CONCAT44(ot._4_4_,(int)ot)" identifier = (binary_expression "lVar28 + CONCAT44(ot._4_4_,(int)ot)" identifier + (call_expression "CONCAT44(ot._4_4_,(int)ot)" identifier (argument_list "(ot._4_4_,(int)ot)" ( (field_expression "ot._4_4_" identifier . field_identifier) , (cast_expression "(int)ot" ( (type_descriptor "int" primitive_type) ) identifier) ))))) ;) (expression_statement "uVar17 = (uint)lVar27;" (assignment_expression "uVar17 = (uint)lVar27" identifier = (cast_expression "(uint)lVar27" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0) {\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }" if (parenthesized_expression "((int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0)" ( (binary_expression "(int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17) == 0" (binary_expression "(int)((ulonglong)lVar27 >> 0x20) + (uint)(0x7fffffff < uVar17)" (cast_expression "(int)((ulonglong)lVar27 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar27 >> 0x20)" ( (binary_expression "(ulonglong)lVar27 >> 0x20" (cast_expression "(ulonglong)lVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (call_expression "(uint)(0x7fffffff < uVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x7fffffff < uVar17)" ( (binary_expression "0x7fffffff < uVar17" number_literal < identifier) )))) == number_literal) )) (compound_statement "{\n              x = uVar17;\n              ptVar14 = (*convert)(&x,&tm);\n              if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }\n              piVar16 = __errno_location();\n              if (*piVar16 != 0x4b) goto LAB_0004d32f;\n            }" { (expression_statement "x = uVar17;" (assignment_expression "x = uVar17" identifier = identifier) ;) (expression_statement "ptVar14 = (*convert)(&x,&tm);" (assignment_expression "ptVar14 = (*convert)(&x,&tm)" identifier = (call_expression "(*convert)(&x,&tm)" (parenthesized_expression "(*convert)" ( (pointer_expression "*convert" * identifier) )) (argument_list "(&x,&tm)" ( (pointer_expression "&x" & identifier) , (pointer_expression "&tm" & identifier) )))) ;) (if_statement "if (ptVar14 != (tm *)0x0) {\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }" if (parenthesized_expression "(ptVar14 != (tm *)0x0)" ( (binary_expression "ptVar14 != (tm *)0x0" identifier != (cast_expression "(tm *)0x0" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_c8 = tm.tm_sec;\n                lVar3 = lVar27;\n                goto LAB_0004d1e8;\n              }" { (expression_statement "local_c8 = tm.tm_sec;" (assignment_expression "local_c8 = tm.tm_sec" identifier = (field_expression "tm.tm_sec" identifier . field_identifier)) ;) (expression_statement "lVar3 = lVar27;" (assignment_expression "lVar3 = lVar27" identifier = identifier) ;) (goto_statement "goto LAB_0004d1e8;" goto statement_identifier ;) })) (expression_statement "piVar16 = __errno_location();" (assignment_expression "piVar16 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (if_statement "if (*piVar16 != 0x4b) goto LAB_0004d32f;" if (parenthesized_expression "(*piVar16 != 0x4b)" ( (binary_expression "*piVar16 != 0x4b" (pointer_expression "*piVar16" * identifier) != number_literal) )) (goto_statement "goto LAB_0004d32f;" goto statement_identifier ;)) })) })) })) (expression_statement "uVar6 = uVar6 + local_10c * 2;" (assignment_expression "uVar6 = uVar6 + local_10c * 2" identifier = (binary_expression "uVar6 + local_10c * 2" identifier + (binary_expression "local_10c * 2" identifier * number_literal))) ;) (if_statement "if (local_d4 == 1) break;" if (parenthesized_expression "(local_d4 == 1)" ( (binary_expression "local_d4 == 1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_d4 = 1;" (assignment_expression "local_d4 = 1" identifier = number_literal) ;) })) (expression_statement "local_10c = local_10c + 0x92c70;" (assignment_expression "local_10c = local_10c + 0x92c70" identifier = (binary_expression "local_10c + 0x92c70" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_10c != 0x100dc400)" ( (binary_expression "local_10c != 0x100dc400" identifier != number_literal) )) ;) (goto_statement "goto LAB_0004d320;" goto statement_identifier ;) })) (labeled_statement "LAB_0004d1e8:\n  uVar23 = (uint)((ulonglong)lVar3 >> 0x20);" statement_identifier : (expression_statement "uVar23 = (uint)((ulonglong)lVar3 >> 0x20);" (assignment_expression "uVar23 = (uint)((ulonglong)lVar3 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar3 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "t._0_4_ = (uint)lVar3;" (assignment_expression "t._0_4_ = (uint)lVar3" (field_expression "t._0_4_" identifier . field_identifier) = (cast_expression "(uint)lVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "t._4_4_ = (uint)((ulonglong)lVar27 >> 0x20);" (assignment_expression "t._4_4_ = (uint)((ulonglong)lVar27 >> 0x20)" (field_expression "t._4_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)lVar27 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar27 >> 0x20)" ( (binary_expression "(ulonglong)lVar27 >> 0x20" (cast_expression "(ulonglong)lVar27" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "*offset = (iVar24 - uVar13) + uVar17;" (assignment_expression "*offset = (iVar24 - uVar13) + uVar17" (pointer_expression "*offset" * identifier) = (binary_expression "(iVar24 - uVar13) + uVar17" (parenthesized_expression "(iVar24 - uVar13)" ( (binary_expression "iVar24 - uVar13" identifier - identifier) )) + identifier)) ;) (if_statement "if (uVar22 == local_c8) {\nLAB_0004d2a1:\n    tp->tm_sec = tm.tm_sec;\n    tp->tm_min = tm.tm_min;\n    tp->tm_hour = tm.tm_hour;\n    tp->tm_mday = tm.tm_mday;\n    tp->tm_mon = tm.tm_mon;\n    tp->tm_year = tm.tm_year;\n    tp->tm_wday = tm.tm_wday;\n    tp->tm_yday = tm.tm_yday;\n    tp->tm_isdst = tm.tm_isdst;\n    tp->tm_gmtoff = tm.tm_gmtoff;\n    tp->tm_zone = tm.tm_zone;\n  }\n  else {\n    uVar15 = (uint)((int)uVar22 < 1 && local_c8 == 0x3c);\n    uVar6 = uVar15 - uVar20;\n    uVar7 = uVar22 + uVar6;\n    uVar22 = ((int)uVar22 >> 0x1f) + (-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f)) +\n             (uint)CARRY4(uVar22,uVar6);\n    t._0_4_ = uVar17 + uVar7;\n    t._4_4_ = uVar23 + uVar22 + (uint)CARRY4(uVar17,uVar7);\n    if (((int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0) ||\n       (t._4_4_ + (0x7fffffff < (uint)t) != 0)) {\nLAB_0004d320:\n      piVar16 = __errno_location();\n      *piVar16 = 0x4b;\n    }\n    else {\n      otm.tm_sec = (uint)t;\n      ptVar14 = (*convert)(&otm.tm_sec,&tm);\n      uVar17 = (uint)t;\n      if (ptVar14 != (tm *)0x0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    uVar17 = 0xffffffff;\n  }" if (parenthesized_expression "(uVar22 == local_c8)" ( (binary_expression "uVar22 == local_c8" identifier == identifier) )) (compound_statement "{\nLAB_0004d2a1:\n    tp->tm_sec = tm.tm_sec;\n    tp->tm_min = tm.tm_min;\n    tp->tm_hour = tm.tm_hour;\n    tp->tm_mday = tm.tm_mday;\n    tp->tm_mon = tm.tm_mon;\n    tp->tm_year = tm.tm_year;\n    tp->tm_wday = tm.tm_wday;\n    tp->tm_yday = tm.tm_yday;\n    tp->tm_isdst = tm.tm_isdst;\n    tp->tm_gmtoff = tm.tm_gmtoff;\n    tp->tm_zone = tm.tm_zone;\n  }" { (labeled_statement "LAB_0004d2a1:\n    tp->tm_sec = tm.tm_sec;" statement_identifier : (expression_statement "tp->tm_sec = tm.tm_sec;" (assignment_expression "tp->tm_sec = tm.tm_sec" (field_expression "tp->tm_sec" identifier -> field_identifier) = (field_expression "tm.tm_sec" identifier . field_identifier)) ;)) (expression_statement "tp->tm_min = tm.tm_min;" (assignment_expression "tp->tm_min = tm.tm_min" (field_expression "tp->tm_min" identifier -> field_identifier) = (field_expression "tm.tm_min" identifier . field_identifier)) ;) (expression_statement "tp->tm_hour = tm.tm_hour;" (assignment_expression "tp->tm_hour = tm.tm_hour" (field_expression "tp->tm_hour" identifier -> field_identifier) = (field_expression "tm.tm_hour" identifier . field_identifier)) ;) (expression_statement "tp->tm_mday = tm.tm_mday;" (assignment_expression "tp->tm_mday = tm.tm_mday" (field_expression "tp->tm_mday" identifier -> field_identifier) = (field_expression "tm.tm_mday" identifier . field_identifier)) ;) (expression_statement "tp->tm_mon = tm.tm_mon;" (assignment_expression "tp->tm_mon = tm.tm_mon" (field_expression "tp->tm_mon" identifier -> field_identifier) = (field_expression "tm.tm_mon" identifier . field_identifier)) ;) (expression_statement "tp->tm_year = tm.tm_year;" (assignment_expression "tp->tm_year = tm.tm_year" (field_expression "tp->tm_year" identifier -> field_identifier) = (field_expression "tm.tm_year" identifier . field_identifier)) ;) (expression_statement "tp->tm_wday = tm.tm_wday;" (assignment_expression "tp->tm_wday = tm.tm_wday" (field_expression "tp->tm_wday" identifier -> field_identifier) = (field_expression "tm.tm_wday" identifier . field_identifier)) ;) (expression_statement "tp->tm_yday = tm.tm_yday;" (assignment_expression "tp->tm_yday = tm.tm_yday" (field_expression "tp->tm_yday" identifier -> field_identifier) = (field_expression "tm.tm_yday" identifier . field_identifier)) ;) (expression_statement "tp->tm_isdst = tm.tm_isdst;" (assignment_expression "tp->tm_isdst = tm.tm_isdst" (field_expression "tp->tm_isdst" identifier -> field_identifier) = (field_expression "tm.tm_isdst" identifier . field_identifier)) ;) (expression_statement "tp->tm_gmtoff = tm.tm_gmtoff;" (assignment_expression "tp->tm_gmtoff = tm.tm_gmtoff" (field_expression "tp->tm_gmtoff" identifier -> field_identifier) = (field_expression "tm.tm_gmtoff" identifier . field_identifier)) ;) (expression_statement "tp->tm_zone = tm.tm_zone;" (assignment_expression "tp->tm_zone = tm.tm_zone" (field_expression "tp->tm_zone" identifier -> field_identifier) = (field_expression "tm.tm_zone" identifier . field_identifier)) ;) }) (else_clause "else {\n    uVar15 = (uint)((int)uVar22 < 1 && local_c8 == 0x3c);\n    uVar6 = uVar15 - uVar20;\n    uVar7 = uVar22 + uVar6;\n    uVar22 = ((int)uVar22 >> 0x1f) + (-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f)) +\n             (uint)CARRY4(uVar22,uVar6);\n    t._0_4_ = uVar17 + uVar7;\n    t._4_4_ = uVar23 + uVar22 + (uint)CARRY4(uVar17,uVar7);\n    if (((int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0) ||\n       (t._4_4_ + (0x7fffffff < (uint)t) != 0)) {\nLAB_0004d320:\n      piVar16 = __errno_location();\n      *piVar16 = 0x4b;\n    }\n    else {\n      otm.tm_sec = (uint)t;\n      ptVar14 = (*convert)(&otm.tm_sec,&tm);\n      uVar17 = (uint)t;\n      if (ptVar14 != (tm *)0x0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    uVar17 = 0xffffffff;\n  }" else (compound_statement "{\n    uVar15 = (uint)((int)uVar22 < 1 && local_c8 == 0x3c);\n    uVar6 = uVar15 - uVar20;\n    uVar7 = uVar22 + uVar6;\n    uVar22 = ((int)uVar22 >> 0x1f) + (-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f)) +\n             (uint)CARRY4(uVar22,uVar6);\n    t._0_4_ = uVar17 + uVar7;\n    t._4_4_ = uVar23 + uVar22 + (uint)CARRY4(uVar17,uVar7);\n    if (((int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0) ||\n       (t._4_4_ + (0x7fffffff < (uint)t) != 0)) {\nLAB_0004d320:\n      piVar16 = __errno_location();\n      *piVar16 = 0x4b;\n    }\n    else {\n      otm.tm_sec = (uint)t;\n      ptVar14 = (*convert)(&otm.tm_sec,&tm);\n      uVar17 = (uint)t;\n      if (ptVar14 != (tm *)0x0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    uVar17 = 0xffffffff;\n  }" { (expression_statement "uVar15 = (uint)((int)uVar22 < 1 && local_c8 == 0x3c);" (assignment_expression "uVar15 = (uint)((int)uVar22 < 1 && local_c8 == 0x3c)" identifier = (call_expression "(uint)((int)uVar22 < 1 && local_c8 == 0x3c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar22 < 1 && local_c8 == 0x3c)" ( (binary_expression "(int)uVar22 < 1 && local_c8 == 0x3c" (binary_expression "(int)uVar22 < 1" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) && (binary_expression "local_c8 == 0x3c" identifier == number_literal)) )))) ;) (expression_statement "uVar6 = uVar15 - uVar20;" (assignment_expression "uVar6 = uVar15 - uVar20" identifier = (binary_expression "uVar15 - uVar20" identifier - identifier)) ;) (expression_statement "uVar7 = uVar22 + uVar6;" (assignment_expression "uVar7 = uVar22 + uVar6" identifier = (binary_expression "uVar22 + uVar6" identifier + identifier)) ;) (expression_statement "uVar22 = ((int)uVar22 >> 0x1f) + (-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f)) +\n             (uint)CARRY4(uVar22,uVar6);" (assignment_expression "uVar22 = ((int)uVar22 >> 0x1f) + (-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f)) +\n             (uint)CARRY4(uVar22,uVar6)" identifier = (binary_expression "((int)uVar22 >> 0x1f) + (-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f)) +\n             (uint)CARRY4(uVar22,uVar6)" (binary_expression "((int)uVar22 >> 0x1f) + (-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f))" (parenthesized_expression "((int)uVar22 >> 0x1f)" ( (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "(-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f))" ( (binary_expression "-(uint)(uVar15 < uVar20) - ((int)uVar20 >> 0x1f)" (unary_expression "-(uint)(uVar15 < uVar20)" - (call_expression "(uint)(uVar15 < uVar20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar15 < uVar20)" ( (binary_expression "uVar15 < uVar20" identifier < identifier) )))) - (parenthesized_expression "((int)uVar20 >> 0x1f)" ( (binary_expression "(int)uVar20 >> 0x1f" (cast_expression "(int)uVar20" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) ))) + (cast_expression "(uint)CARRY4(uVar22,uVar6)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar22,uVar6)" identifier (argument_list "(uVar22,uVar6)" ( identifier , identifier )))))) ;) (expression_statement "t._0_4_ = uVar17 + uVar7;" (assignment_expression "t._0_4_ = uVar17 + uVar7" (field_expression "t._0_4_" identifier . field_identifier) = (binary_expression "uVar17 + uVar7" identifier + identifier)) ;) (expression_statement "t._4_4_ = uVar23 + uVar22 + (uint)CARRY4(uVar17,uVar7);" (assignment_expression "t._4_4_ = uVar23 + uVar22 + (uint)CARRY4(uVar17,uVar7)" (field_expression "t._4_4_" identifier . field_identifier) = (binary_expression "uVar23 + uVar22 + (uint)CARRY4(uVar17,uVar7)" (binary_expression "uVar23 + uVar22" identifier + identifier) + (cast_expression "(uint)CARRY4(uVar17,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar17,uVar7)" identifier (argument_list "(uVar17,uVar7)" ( identifier , identifier )))))) ;) (if_statement "if (((int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0) ||\n       (t._4_4_ + (0x7fffffff < (uint)t) != 0)) {\nLAB_0004d320:\n      piVar16 = __errno_location();\n      *piVar16 = 0x4b;\n    }\n    else {\n      otm.tm_sec = (uint)t;\n      ptVar14 = (*convert)(&otm.tm_sec,&tm);\n      uVar17 = (uint)t;\n      if (ptVar14 != (tm *)0x0) goto LAB_0004d2a1;\n    }" if (parenthesized_expression "(((int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0) ||\n       (t._4_4_ + (0x7fffffff < (uint)t) != 0))" ( (binary_expression "((int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0) ||\n       (t._4_4_ + (0x7fffffff < (uint)t) != 0)" (parenthesized_expression "((int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0)" ( (binary_expression "(int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)) < 0" (cast_expression "(int)((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22))" ( (binary_expression "(uVar22 ^ t._4_4_) & ~(uVar23 ^ uVar22)" (parenthesized_expression "(uVar22 ^ t._4_4_)" ( (binary_expression "uVar22 ^ t._4_4_" identifier ^ (field_expression "t._4_4_" identifier . field_identifier)) )) & (unary_expression "~(uVar23 ^ uVar22)" ~ (parenthesized_expression "(uVar23 ^ uVar22)" ( (binary_expression "uVar23 ^ uVar22" identifier ^ identifier) )))) ))) < number_literal) )) || (parenthesized_expression "(t._4_4_ + (0x7fffffff < (uint)t) != 0)" ( (binary_expression "t._4_4_ + (0x7fffffff < (uint)t) != 0" (binary_expression "t._4_4_ + (0x7fffffff < (uint)t)" (field_expression "t._4_4_" identifier . field_identifier) + (parenthesized_expression "(0x7fffffff < (uint)t)" ( (binary_expression "0x7fffffff < (uint)t" number_literal < (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) != number_literal) ))) )) (compound_statement "{\nLAB_0004d320:\n      piVar16 = __errno_location();\n      *piVar16 = 0x4b;\n    }" { (labeled_statement "LAB_0004d320:\n      piVar16 = __errno_location();" statement_identifier : (expression_statement "piVar16 = __errno_location();" (assignment_expression "piVar16 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "*piVar16 = 0x4b;" (assignment_expression "*piVar16 = 0x4b" (pointer_expression "*piVar16" * identifier) = number_literal) ;) }) (else_clause "else {\n      otm.tm_sec = (uint)t;\n      ptVar14 = (*convert)(&otm.tm_sec,&tm);\n      uVar17 = (uint)t;\n      if (ptVar14 != (tm *)0x0) goto LAB_0004d2a1;\n    }" else (compound_statement "{\n      otm.tm_sec = (uint)t;\n      ptVar14 = (*convert)(&otm.tm_sec,&tm);\n      uVar17 = (uint)t;\n      if (ptVar14 != (tm *)0x0) goto LAB_0004d2a1;\n    }" { (expression_statement "otm.tm_sec = (uint)t;" (assignment_expression "otm.tm_sec = (uint)t" (field_expression "otm.tm_sec" identifier . field_identifier) = (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "ptVar14 = (*convert)(&otm.tm_sec,&tm);" (assignment_expression "ptVar14 = (*convert)(&otm.tm_sec,&tm)" identifier = (call_expression "(*convert)(&otm.tm_sec,&tm)" (parenthesized_expression "(*convert)" ( (pointer_expression "*convert" * identifier) )) (argument_list "(&otm.tm_sec,&tm)" ( (pointer_expression "&otm.tm_sec" & (field_expression "otm.tm_sec" identifier . field_identifier)) , (pointer_expression "&tm" & identifier) )))) ;) (expression_statement "uVar17 = (uint)t;" (assignment_expression "uVar17 = (uint)t" identifier = (cast_expression "(uint)t" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (ptVar14 != (tm *)0x0) goto LAB_0004d2a1;" if (parenthesized_expression "(ptVar14 != (tm *)0x0)" ( (binary_expression "ptVar14 != (tm *)0x0" identifier != (cast_expression "(tm *)0x0" ( (type_descriptor "tm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004d2a1;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0004d32f:\n    uVar17 = 0xffffffff;" statement_identifier : (expression_statement "uVar17 = 0xffffffff;" (assignment_expression "uVar17 = 0xffffffff" identifier = number_literal) ;)) }))) (if_statement "if (iVar2 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar2 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar2 != *(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 uVar17;" return identifier ;) })))
(translation_unit "int FUN_0004ce80(uint *param_1,code *param_2,int *param_3)\n\n{\n  uint uVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  int iVar25;\n  uint uVar26;\n  int in_GS_OFFSET;\n  bool bVar27;\n  longlong lVar28;\n  undefined4 uVar29;\n  int local_d4;\n  int local_d0;\n  uint local_c8;\n  uint local_90;\n  undefined8 local_8c;\n  undefined8 local_84;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_64;\n  uint local_60;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_38;\n  undefined4 local_30;\n  int local_2c;\n  int local_20;\n  \n  uVar14 = param_1[8];\n  uVar26 = *param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar24 = param_1[1];\n  uVar18 = param_1[5];\n  uVar1 = param_1[2];\n  uVar22 = param_1[3];\n  iVar25 = (int)param_1[4] % 0xc;\n  uVar7 = iVar25 >> 0x1f;\n  uVar5 = (int)param_1[4] / 0xc + uVar7;\n  uVar6 = uVar5 + uVar18;\n  iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);\n  uVar18 = 0;\n  if ((uVar6 & 3) == 0) {\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }\n  local_d0 = 6;\n  bVar27 = false;\n  uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;\n  iVar25 = *param_3;\n  uVar7 = uVar18 + uVar22;\n  iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);\n  uVar18 = 0x3b;\n  if ((int)uVar26 < 0x3c) {\n    uVar18 = uVar26;\n  }\n  uVar22 = 0;\n  if (-1 < (int)uVar18) {\n    uVar22 = uVar18;\n  }\n  iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);\n  iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);\n  uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);\n  lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;\n  uVar5 = (uint)lVar28;\n  uVar8 = uVar5 + uVar7;\n  lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;\n  uVar9 = (uint)lVar2;\n  lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;\n  uVar10 = (uint)lVar3;\n  lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;\n  uVar11 = (uint)lVar4;\n  uVar12 = uVar11 + uVar22;\n  iVar19 = uVar12 + iVar25;\n  iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);\n  lVar28 = CONCAT44(iVar23,iVar19);\n  iVar20 = iVar19;\n  local_8c = lVar28;\n  while( true ) {\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }\n  if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }\nLAB_0004d1e8:\n  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);\n  local_8c._0_4_ = (int)lVar2;\n  *param_3 = (iVar25 - iVar19) + (int)local_8c;\n  if (uVar26 == local_c8) {\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }\n  else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    local_8c = lVar2;\n                    \n    FUN_0004e0c0();\n  }\n  return (int)local_8c;\n}\n\n" (function_definition "int FUN_0004ce80(uint *param_1,code *param_2,int *param_3)\n\n{\n  uint uVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  int iVar25;\n  uint uVar26;\n  int in_GS_OFFSET;\n  bool bVar27;\n  longlong lVar28;\n  undefined4 uVar29;\n  int local_d4;\n  int local_d0;\n  uint local_c8;\n  uint local_90;\n  undefined8 local_8c;\n  undefined8 local_84;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_64;\n  uint local_60;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_38;\n  undefined4 local_30;\n  int local_2c;\n  int local_20;\n  \n  uVar14 = param_1[8];\n  uVar26 = *param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar24 = param_1[1];\n  uVar18 = param_1[5];\n  uVar1 = param_1[2];\n  uVar22 = param_1[3];\n  iVar25 = (int)param_1[4] % 0xc;\n  uVar7 = iVar25 >> 0x1f;\n  uVar5 = (int)param_1[4] / 0xc + uVar7;\n  uVar6 = uVar5 + uVar18;\n  iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);\n  uVar18 = 0;\n  if ((uVar6 & 3) == 0) {\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }\n  local_d0 = 6;\n  bVar27 = false;\n  uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;\n  iVar25 = *param_3;\n  uVar7 = uVar18 + uVar22;\n  iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);\n  uVar18 = 0x3b;\n  if ((int)uVar26 < 0x3c) {\n    uVar18 = uVar26;\n  }\n  uVar22 = 0;\n  if (-1 < (int)uVar18) {\n    uVar22 = uVar18;\n  }\n  iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);\n  iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);\n  uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);\n  lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;\n  uVar5 = (uint)lVar28;\n  uVar8 = uVar5 + uVar7;\n  lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;\n  uVar9 = (uint)lVar2;\n  lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;\n  uVar10 = (uint)lVar3;\n  lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;\n  uVar11 = (uint)lVar4;\n  uVar12 = uVar11 + uVar22;\n  iVar19 = uVar12 + iVar25;\n  iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);\n  lVar28 = CONCAT44(iVar23,iVar19);\n  iVar20 = iVar19;\n  local_8c = lVar28;\n  while( true ) {\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }\n  if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }\nLAB_0004d1e8:\n  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);\n  local_8c._0_4_ = (int)lVar2;\n  *param_3 = (iVar25 - iVar19) + (int)local_8c;\n  if (uVar26 == local_c8) {\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }\n  else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    local_8c = lVar2;\n                    \n    FUN_0004e0c0();\n  }\n  return (int)local_8c;\n}" primitive_type (function_declarator "FUN_0004ce80(uint *param_1,code *param_2,int *param_3)" identifier (parameter_list "(uint *param_1,code *param_2,int *param_3)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  int iVar25;\n  uint uVar26;\n  int in_GS_OFFSET;\n  bool bVar27;\n  longlong lVar28;\n  undefined4 uVar29;\n  int local_d4;\n  int local_d0;\n  uint local_c8;\n  uint local_90;\n  undefined8 local_8c;\n  undefined8 local_84;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_64;\n  uint local_60;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_38;\n  undefined4 local_30;\n  int local_2c;\n  int local_20;\n  \n  uVar14 = param_1[8];\n  uVar26 = *param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar24 = param_1[1];\n  uVar18 = param_1[5];\n  uVar1 = param_1[2];\n  uVar22 = param_1[3];\n  iVar25 = (int)param_1[4] % 0xc;\n  uVar7 = iVar25 >> 0x1f;\n  uVar5 = (int)param_1[4] / 0xc + uVar7;\n  uVar6 = uVar5 + uVar18;\n  iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);\n  uVar18 = 0;\n  if ((uVar6 & 3) == 0) {\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }\n  local_d0 = 6;\n  bVar27 = false;\n  uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;\n  iVar25 = *param_3;\n  uVar7 = uVar18 + uVar22;\n  iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);\n  uVar18 = 0x3b;\n  if ((int)uVar26 < 0x3c) {\n    uVar18 = uVar26;\n  }\n  uVar22 = 0;\n  if (-1 < (int)uVar18) {\n    uVar22 = uVar18;\n  }\n  iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);\n  iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);\n  uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);\n  lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;\n  uVar5 = (uint)lVar28;\n  uVar8 = uVar5 + uVar7;\n  lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;\n  uVar9 = (uint)lVar2;\n  lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;\n  uVar10 = (uint)lVar3;\n  lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;\n  uVar11 = (uint)lVar4;\n  uVar12 = uVar11 + uVar22;\n  iVar19 = uVar12 + iVar25;\n  iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);\n  lVar28 = CONCAT44(iVar23,iVar19);\n  iVar20 = iVar19;\n  local_8c = lVar28;\n  while( true ) {\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }\n  if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }\nLAB_0004d1e8:\n  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);\n  local_8c._0_4_ = (int)lVar2;\n  *param_3 = (iVar25 - iVar19) + (int)local_8c;\n  if (uVar26 == local_c8) {\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }\n  else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    local_8c = lVar2;\n                    \n    FUN_0004e0c0();\n  }\n  return (int)local_8c;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "longlong lVar2;" type_identifier identifier ;) (declaration "longlong lVar3;" type_identifier identifier ;) (declaration "longlong lVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "uint uVar26;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar27;" primitive_type identifier ;) (declaration "longlong lVar28;" type_identifier identifier ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "int local_d4;" primitive_type identifier ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "undefined8 local_8c;" type_identifier identifier ;) (declaration "undefined8 local_84;" type_identifier identifier ;) (declaration "uint local_78;" type_identifier identifier ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "uint local_70;" type_identifier identifier ;) (declaration "uint local_6c;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60;" type_identifier identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint local_58;" type_identifier identifier ;) (declaration "uint local_54;" type_identifier identifier ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "uVar14 = param_1[8];" (assignment_expression "uVar14 = param_1[8]" identifier = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = *param_1;" (assignment_expression "uVar26 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (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 "uVar24 = param_1[1];" (assignment_expression "uVar24 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar18 = param_1[5];" (assignment_expression "uVar18 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = param_1[2];" (assignment_expression "uVar1 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = param_1[3];" (assignment_expression "uVar22 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar25 = (int)param_1[4] % 0xc;" (assignment_expression "iVar25 = (int)param_1[4] % 0xc" identifier = (binary_expression "(int)param_1[4] % 0xc" (cast_expression "(int)param_1[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) % number_literal)) ;) (expression_statement "uVar7 = iVar25 >> 0x1f;" (assignment_expression "uVar7 = iVar25 >> 0x1f" identifier = (binary_expression "iVar25 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "uVar5 = (int)param_1[4] / 0xc + uVar7;" (assignment_expression "uVar5 = (int)param_1[4] / 0xc + uVar7" identifier = (binary_expression "(int)param_1[4] / 0xc + uVar7" (binary_expression "(int)param_1[4] / 0xc" (cast_expression "(int)param_1[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[4]" identifier [ number_literal ])) / number_literal) + identifier)) ;) (expression_statement "uVar6 = uVar5 + uVar18;" (assignment_expression "uVar6 = uVar5 + uVar18" identifier = (binary_expression "uVar5 + uVar18" identifier + identifier)) ;) (expression_statement "iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);" (assignment_expression "iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18)" identifier = (binary_expression "((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18)" (binary_expression "((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f)" (parenthesized_expression "((int)uVar5 >> 0x1f)" ( (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "((int)uVar18 >> 0x1f)" ( (binary_expression "(int)uVar18 >> 0x1f" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar5,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,uVar18)" identifier (argument_list "(uVar5,uVar18)" ( identifier , identifier )))))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (if_statement "if ((uVar6 & 3) == 0) {\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }" if (parenthesized_expression "((uVar6 & 3) == 0)" ( (binary_expression "(uVar6 & 3) == 0" (parenthesized_expression "(uVar6 & 3)" ( (binary_expression "uVar6 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }" { (expression_statement "lVar28 = FUN_0004d870(uVar6,iVar20,100,0);" (assignment_expression "lVar28 = FUN_0004d870(uVar6,iVar20,100,0)" identifier = (call_expression "FUN_0004d870(uVar6,iVar20,100,0)" identifier (argument_list "(uVar6,iVar20,100,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" identifier = number_literal) ;) (if_statement "if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }" if (parenthesized_expression "(lVar28 == 0)" ( (binary_expression "lVar28 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }" { (expression_statement "uVar18 = FUN_0004d720(uVar6,iVar20,100,0);" (assignment_expression "uVar18 = FUN_0004d720(uVar6,iVar20,100,0)" identifier = (call_expression "FUN_0004d720(uVar6,iVar20,100,0)" identifier (argument_list "(uVar6,iVar20,100,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "uVar18 = (uint)((uVar18 & 3) == 1);" (assignment_expression "uVar18 = (uint)((uVar18 & 3) == 1)" identifier = (call_expression "(uint)((uVar18 & 3) == 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar18 & 3) == 1)" ( (binary_expression "(uVar18 & 3) == 1" (parenthesized_expression "(uVar18 & 3)" ( (binary_expression "uVar18 & 3" identifier & number_literal) )) == number_literal) )))) ;) })) })) (expression_statement "local_d0 = 6;" (assignment_expression "local_d0 = 6" identifier = number_literal) ;) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" identifier = false) ;) (expression_statement "uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;" (assignment_expression "uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1" identifier = (binary_expression "*(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1" (pointer_expression "*(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2)" * (cast_expression "(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2)" ( (binary_expression "&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2" (pointer_expression "&DAT_00056720" & identifier) + (binary_expression "(iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2" (parenthesized_expression "(iVar25 + (uVar7 & 0xc) + uVar18 * 0xd)" ( (binary_expression "iVar25 + (uVar7 & 0xc) + uVar18 * 0xd" (binary_expression "iVar25 + (uVar7 & 0xc)" identifier + (parenthesized_expression "(uVar7 & 0xc)" ( (binary_expression "uVar7 & 0xc" identifier & number_literal) ))) + (binary_expression "uVar18 * 0xd" identifier * number_literal)) )) * number_literal)) )))) - number_literal)) ;) (expression_statement "iVar25 = *param_3;" (assignment_expression "iVar25 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "uVar7 = uVar18 + uVar22;" (assignment_expression "uVar7 = uVar18 + uVar22" identifier = (binary_expression "uVar18 + uVar22" identifier + identifier)) ;) (expression_statement "iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);" (assignment_expression "iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22)" identifier = (binary_expression "((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22)" (binary_expression "((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f)" (parenthesized_expression "((int)uVar18 >> 0x1f)" ( (binary_expression "(int)uVar18 >> 0x1f" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "((int)uVar22 >> 0x1f)" ( (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar18,uVar22)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,uVar22)" identifier (argument_list "(uVar18,uVar22)" ( identifier , identifier )))))) ;) (expression_statement "uVar18 = 0x3b;" (assignment_expression "uVar18 = 0x3b" identifier = number_literal) ;) (if_statement "if ((int)uVar26 < 0x3c) {\n    uVar18 = uVar26;\n  }" if (parenthesized_expression "((int)uVar26 < 0x3c)" ( (binary_expression "(int)uVar26 < 0x3c" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    uVar18 = uVar26;\n  }" { (expression_statement "uVar18 = uVar26;" (assignment_expression "uVar18 = uVar26" identifier = identifier) ;) })) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (if_statement "if (-1 < (int)uVar18) {\n    uVar22 = uVar18;\n  }" if (parenthesized_expression "(-1 < (int)uVar18)" ( (binary_expression "-1 < (int)uVar18" number_literal < (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    uVar22 = uVar18;\n  }" { (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" identifier = identifier) ;) })) (expression_statement "iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);" (assignment_expression "iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0)" identifier = (binary_expression "((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0)" (parenthesized_expression "((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db)" ( (binary_expression "(uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db" (parenthesized_expression "(uVar6 >> 2 | iVar20 * 0x40000000)" ( (binary_expression "uVar6 >> 2 | iVar20 * 0x40000000" (binary_expression "uVar6 >> 2" identifier >> number_literal) | (binary_expression "iVar20 * 0x40000000" identifier * number_literal)) )) + number_literal) )) - (call_expression "(uint)((uVar6 & 3) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar6 & 3) == 0)" ( (binary_expression "(uVar6 & 3) == 0" (parenthesized_expression "(uVar6 & 3)" ( (binary_expression "uVar6 & 3" identifier & number_literal) )) == number_literal) ))))) ;) (expression_statement "iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);" (assignment_expression "iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f)" identifier = (binary_expression "iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f)" (binary_expression "iVar19 / 0x19" identifier / number_literal) + (parenthesized_expression "(iVar19 % 0x19 >> 0x1f)" ( (binary_expression "iVar19 % 0x19 >> 0x1f" (binary_expression "iVar19 % 0x19" identifier % number_literal) >> number_literal) )))) ;) (expression_statement "uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);" (assignment_expression "uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2)" identifier = (binary_expression "(iVar19 - iVar23) + -0x1dd + (iVar23 >> 2)" (binary_expression "(iVar19 - iVar23) + -0x1dd" (parenthesized_expression "(iVar19 - iVar23)" ( (binary_expression "iVar19 - iVar23" identifier - identifier) )) + number_literal) + (parenthesized_expression "(iVar23 >> 2)" ( (binary_expression "iVar23 >> 2" identifier >> number_literal) )))) ;) (expression_statement "lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;" (assignment_expression "lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d" identifier = (binary_expression "(ulonglong)(uVar6 - 0x46) * 0x16d" (call_expression "(ulonglong)(uVar6 - 0x46)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar6 - 0x46)" ( (binary_expression "uVar6 - 0x46" identifier - number_literal) ))) * number_literal)) ;) (expression_statement "uVar5 = (uint)lVar28;" (assignment_expression "uVar5 = (uint)lVar28" identifier = (cast_expression "(uint)lVar28" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar8 = uVar5 + uVar7;" (assignment_expression "uVar8 = uVar5 + uVar7" identifier = (binary_expression "uVar5 + uVar7" identifier + identifier)) ;) (expression_statement "lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;" (assignment_expression "lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18" identifier = (binary_expression "(ulonglong)(uVar18 + uVar8) * 0x18" (call_expression "(ulonglong)(uVar18 + uVar8)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar18 + uVar8)" ( (binary_expression "uVar18 + uVar8" identifier + identifier) ))) * number_literal)) ;) (expression_statement "uVar9 = (uint)lVar2;" (assignment_expression "uVar9 = (uint)lVar2" identifier = (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;" (assignment_expression "lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c" identifier = (binary_expression "(ulonglong)(uVar9 + uVar1) * 0x3c" (call_expression "(ulonglong)(uVar9 + uVar1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar9 + uVar1)" ( (binary_expression "uVar9 + uVar1" identifier + identifier) ))) * number_literal)) ;) (expression_statement "uVar10 = (uint)lVar3;" (assignment_expression "uVar10 = (uint)lVar3" identifier = (cast_expression "(uint)lVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;" (assignment_expression "lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c" identifier = (binary_expression "(ulonglong)(uVar10 + uVar24) * 0x3c" (call_expression "(ulonglong)(uVar10 + uVar24)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(uVar10 + uVar24)" ( (binary_expression "uVar10 + uVar24" identifier + identifier) ))) * number_literal)) ;) (expression_statement "uVar11 = (uint)lVar4;" (assignment_expression "uVar11 = (uint)lVar4" identifier = (cast_expression "(uint)lVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar12 = uVar11 + uVar22;" (assignment_expression "uVar12 = uVar11 + uVar22" identifier = (binary_expression "uVar11 + uVar22" identifier + identifier)) ;) (expression_statement "iVar19 = uVar12 + iVar25;" (assignment_expression "iVar19 = uVar12 + iVar25" identifier = (binary_expression "uVar12 + iVar25" identifier + identifier)) ;) (expression_statement "iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);" (assignment_expression "iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25)" identifier = (binary_expression "(((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25)" (parenthesized_expression "(((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f))" ( (binary_expression "((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)" (parenthesized_expression "((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22))" ( (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)" (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c" (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" ( (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c" (parenthesized_expression "((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24))" ( (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)" (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c" (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" ( (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c" (parenthesized_expression "((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1))" ( (binary_expression "(int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)" (binary_expression "(int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18" (cast_expression "(int)((ulonglong)lVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "(((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18" (parenthesized_expression "(((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8))" ( (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7)" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20)" (parenthesized_expression "((int)uVar18 >> 0x1f)" ( (binary_expression "(int)uVar18 >> 0x1f" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (cast_expression "(int)((ulonglong)lVar28 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) + (binary_expression "(iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d" (parenthesized_expression "(iVar20 + -1 + (uint)(0x45 < uVar6))" ( (binary_expression "iVar20 + -1 + (uint)(0x45 < uVar6)" (binary_expression "iVar20 + -1" identifier + number_literal) + (call_expression "(uint)(0x45 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x45 < uVar6)" ( (binary_expression "0x45 < uVar6" number_literal < identifier) )))) )) * number_literal)) + identifier) + (cast_expression "(uint)CARRY4(uVar5,uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar5,uVar7)" identifier (argument_list "(uVar5,uVar7)" ( identifier , identifier ))))) + (cast_expression "(uint)CARRY4(uVar18,uVar8)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar18,uVar8)" identifier (argument_list "(uVar18,uVar8)" ( identifier , identifier ))))) )) * number_literal)) + (parenthesized_expression "((int)uVar1 >> 0x1f)" ( (binary_expression "(int)uVar1 >> 0x1f" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar9,uVar1)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar9,uVar1)" identifier (argument_list "(uVar9,uVar1)" ( identifier , identifier ))))) )) * number_literal)) + (parenthesized_expression "((int)uVar24 >> 0x1f)" ( (binary_expression "(int)uVar24 >> 0x1f" (cast_expression "(int)uVar24" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar10,uVar24)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar10,uVar24)" identifier (argument_list "(uVar10,uVar24)" ( identifier , identifier ))))) )) * number_literal)) + (parenthesized_expression "((int)uVar22 >> 0x1f)" ( (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) + (cast_expression "(uint)CARRY4(uVar11,uVar22)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar11,uVar22)" identifier (argument_list "(uVar11,uVar22)" ( identifier , identifier ))))) )) - (parenthesized_expression "(-iVar25 >> 0x1f)" ( (binary_expression "-iVar25 >> 0x1f" (unary_expression "-iVar25" - identifier) >> number_literal) ))) )) - (call_expression "(uint)(uVar12 < (uint)-iVar25)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < (uint)-iVar25)" ( (binary_expression "uVar12 < (uint)-iVar25" identifier < (binary_expression "(uint)-iVar25" (parenthesized_expression "(uint)" ( identifier )) - identifier)) ))))) ;) (expression_statement "lVar28 = CONCAT44(iVar23,iVar19);" (assignment_expression "lVar28 = CONCAT44(iVar23,iVar19)" identifier = (call_expression "CONCAT44(iVar23,iVar19)" identifier (argument_list "(iVar23,iVar19)" ( identifier , identifier )))) ;) (expression_statement "iVar20 = iVar19;" (assignment_expression "iVar20 = iVar19" identifier = identifier) ;) (expression_statement "local_8c = lVar28;" (assignment_expression "local_8c = lVar28" identifier = identifier) ;) (while_statement "while( true ) {\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }" { (expression_statement "lVar3 = CONCAT44(iVar23,iVar20);" (assignment_expression "lVar3 = CONCAT44(iVar23,iVar20)" identifier = (call_expression "CONCAT44(iVar23,iVar20)" identifier (argument_list "(iVar23,iVar20)" ( identifier , identifier )))) ;) (expression_statement "iVar23 = (int)((ulonglong)local_8c >> 0x20);" (assignment_expression "iVar23 = (int)((ulonglong)local_8c >> 0x20)" identifier = (cast_expression "(int)((ulonglong)local_8c >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)local_8c >> 0x20)" ( (binary_expression "(ulonglong)local_8c >> 0x20" (cast_expression "(ulonglong)local_8c" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar20 = (int)local_8c;" (assignment_expression "iVar20 = (int)local_8c" identifier = (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_8c = lVar28;" (assignment_expression "local_8c = lVar28" identifier = identifier) ;) (expression_statement "iVar13 = FUN_0004cc20();" (assignment_expression "iVar13 = FUN_0004cc20()" identifier = (call_expression "FUN_0004cc20()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) (if_statement "if (iVar13 == 0) goto LAB_0004d32f;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004d32f;" goto statement_identifier ;)) (expression_statement "local_c8 = local_78;" (assignment_expression "local_c8 = local_78" identifier = identifier) ;) (expression_statement "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);" (assignment_expression "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78)" identifier = (call_expression "FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78)" identifier (argument_list "(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);" (assignment_expression "uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)lVar28 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) (if_statement "if (lVar28 == 0) break;" if (parenthesized_expression "(lVar28 == 0)" ( (binary_expression "lVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }" if (parenthesized_expression "((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20)))" ( (binary_expression "(local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))" (parenthesized_expression "(local_8c == lVar3)" ( (binary_expression "local_8c == lVar3" identifier == identifier) )) && (parenthesized_expression "(local_8c != CONCAT44(iVar23,iVar20))" ( (binary_expression "local_8c != CONCAT44(iVar23,iVar20)" identifier != (call_expression "CONCAT44(iVar23,iVar20)" identifier (argument_list "(iVar23,iVar20)" ( identifier , identifier )))) ))) )) (compound_statement "{\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }" { (if_statement "if ((int)local_58 < 0) goto LAB_0004d1e8;" if (parenthesized_expression "((int)local_58 < 0)" ( (binary_expression "(int)local_58 < 0" (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0004d1e8;" goto statement_identifier ;)) (if_statement "if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;" if (parenthesized_expression "((int)uVar14 < 0)" ( (binary_expression "(int)uVar14 < 0" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }" { (if_statement "if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;" if (parenthesized_expression "(bVar27 <= (local_58 != 0))" ( (binary_expression "bVar27 <= (local_58 != 0)" identifier <= (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0004d1e8;" goto statement_identifier ;)) }) (else_clause "else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;" else (if_statement "if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;" if (parenthesized_expression "((uVar14 != 0) != (local_58 != 0))" ( (binary_expression "(uVar14 != 0) != (local_58 != 0)" (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) != (parenthesized_expression "(local_58 != 0)" ( (binary_expression "local_58 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_0004d1e8;" 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)) ;) (if_statement "if (local_d0 == 0) goto LAB_0004d320;" if (parenthesized_expression "(local_d0 == 0)" ( (binary_expression "local_d0 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004d320;" goto statement_identifier ;)) (expression_statement "lVar28 = lVar28 + local_8c;" (assignment_expression "lVar28 = lVar28 + local_8c" identifier = (binary_expression "lVar28 + local_8c" identifier + identifier)) ;) (expression_statement "bVar27 = local_58 != 0;" (assignment_expression "bVar27 = local_58 != 0" identifier = (binary_expression "local_58 != 0" identifier != number_literal)) ;) })) (if_statement "if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }" if (parenthesized_expression "((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58))" ( (binary_expression "(((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)" (parenthesized_expression "(((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14))" ( (binary_expression "((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)" (parenthesized_expression "((uVar14 == 0) != (local_58 == 0))" ( (binary_expression "(uVar14 == 0) != (local_58 == 0)" (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) != (parenthesized_expression "(local_58 == 0)" ( (binary_expression "local_58 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(-1 < (int)uVar14)" ( (binary_expression "-1 < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) && (parenthesized_expression "(-1 < (int)local_58)" ( (binary_expression "-1 < (int)local_58" number_literal < (cast_expression "(int)local_58" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }" { (expression_statement "iVar20 = 0x92c70;" (assignment_expression "iVar20 = 0x92c70" identifier = number_literal) ;) (do_statement "do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);" do (compound_statement "{\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    }" { (expression_statement "local_d4 = 2;" (assignment_expression "local_d4 = 2" identifier = number_literal) ;) (expression_statement "iVar23 = iVar20 * 2;" (assignment_expression "iVar23 = iVar20 * 2" identifier = (binary_expression "iVar20 * 2" identifier * number_literal)) ;) (expression_statement "iVar13 = -iVar20;" (assignment_expression "iVar13 = -iVar20" identifier = (unary_expression "-iVar20" - identifier)) ;) (expression_statement "lVar28 = local_8c;" (assignment_expression "lVar28 = local_8c" identifier = identifier) ;) (while_statement "while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }" { (expression_statement "local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);" (assignment_expression "local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20)" (field_expression "local_8c._4_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)lVar28 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar28 >> 0x20)" ( (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_84 = lVar28 + iVar13;" (assignment_expression "local_84 = lVar28 + iVar13" identifier = (binary_expression "lVar28 + iVar13" identifier + identifier)) ;) (expression_statement "uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;" (assignment_expression "uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f" identifier = (binary_expression "local_8c._4_4_ ^ iVar13 >> 0x1f" (field_expression "local_8c._4_4_" identifier . field_identifier) ^ (binary_expression "iVar13 >> 0x1f" identifier >> number_literal))) ;) (expression_statement "local_8c = lVar28;" (assignment_expression "local_8c = lVar28" identifier = identifier) ;) (if_statement "if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }" if (parenthesized_expression "(-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18))" ( (binary_expression "-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)" number_literal < (cast_expression "(int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)" ( (binary_expression "(iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18" (parenthesized_expression "(iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20))" ( (binary_expression "iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)" (binary_expression "iVar13 >> 0x1f" identifier >> number_literal) ^ (call_expression "(uint)((ulonglong)local_84 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)local_84 >> 0x20)" ( (binary_expression "(ulonglong)local_84 >> 0x20" (cast_expression "(ulonglong)local_84" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) )) & (unary_expression "~uVar18" ~ identifier)) )))) )) (compound_statement "{\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }" { (expression_statement "iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);" (assignment_expression "iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13)" identifier = (call_expression "FUN_0004cc20(iVar20,uVar29,iVar13)" identifier (argument_list "(iVar20,uVar29,iVar13)" ( identifier , identifier , identifier )))) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) (if_statement "if (iVar16 == 0) goto LAB_0004d32f;" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004d32f;" goto statement_identifier ;)) (if_statement "if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }" if (parenthesized_expression "(((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0))" ( (binary_expression "((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)" (parenthesized_expression "((uVar14 == 0) == (local_2c == 0))" ( (binary_expression "(uVar14 == 0) == (local_2c == 0)" (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) == (parenthesized_expression "(local_2c == 0)" ( (binary_expression "local_2c == 0" identifier == number_literal) ))) )) || (parenthesized_expression "(local_2c < 0)" ( (binary_expression "local_2c < 0" identifier < number_literal) ))) )) (compound_statement "{\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }" { (expression_statement "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);" (assignment_expression "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c)" identifier = (call_expression "FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c)" identifier (argument_list "(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "uVar18 = (uint)(lVar28 + local_84);" (assignment_expression "uVar18 = (uint)(lVar28 + local_84)" identifier = (call_expression "(uint)(lVar28 + local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar28 + local_84)" ( (binary_expression "lVar28 + local_84" identifier + identifier) )))) ;) (expression_statement "iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);" (assignment_expression "iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20)" identifier = (cast_expression "(int)((ulonglong)(lVar28 + local_84) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar28 + local_84) >> 0x20)" ( (binary_expression "(ulonglong)(lVar28 + local_84) >> 0x20" (call_expression "(ulonglong)(lVar28 + local_84)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar28 + local_84)" ( (binary_expression "lVar28 + local_84" identifier + identifier) ))) >> number_literal) )))) ;) (if_statement "if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }" if (parenthesized_expression "(iVar16 + (uint)(0x7fffffff < uVar18) == 0)" ( (binary_expression "iVar16 + (uint)(0x7fffffff < uVar18) == 0" (binary_expression "iVar16 + (uint)(0x7fffffff < uVar18)" identifier + (call_expression "(uint)(0x7fffffff < uVar18)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0x7fffffff < uVar18)" ( (binary_expression "0x7fffffff < uVar18" number_literal < identifier) )))) == number_literal) )) (compound_statement "{\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }" { (expression_statement "local_90 = uVar18;" (assignment_expression "local_90 = uVar18" identifier = identifier) ;) (expression_statement "iVar17 = (*param_2)(&local_90,&local_78);" (assignment_expression "iVar17 = (*param_2)(&local_90,&local_78)" identifier = (call_expression "(*param_2)(&local_90,&local_78)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(&local_90,&local_78)" ( (pointer_expression "&local_90" & identifier) , (pointer_expression "&local_78" & identifier) )))) ;) (if_statement "if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }" { (expression_statement "local_c8 = local_78;" (assignment_expression "local_c8 = local_78" identifier = identifier) ;) (expression_statement "lVar2 = CONCAT44(iVar16,uVar18);" (assignment_expression "lVar2 = CONCAT44(iVar16,uVar18)" identifier = (call_expression "CONCAT44(iVar16,uVar18)" identifier (argument_list "(iVar16,uVar18)" ( identifier , identifier )))) ;) (goto_statement "goto LAB_0004d1e8;" goto statement_identifier ;) })) (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) (if_statement "if (*piVar15 != 0x4b) goto LAB_0004d32f;" if (parenthesized_expression "(*piVar15 != 0x4b)" ( (binary_expression "*piVar15 != 0x4b" (pointer_expression "*piVar15" * identifier) != number_literal) )) (goto_statement "goto LAB_0004d32f;" goto statement_identifier ;)) })) })) })) (expression_statement "iVar13 = iVar13 + iVar23;" (assignment_expression "iVar13 = iVar13 + iVar23" identifier = (binary_expression "iVar13 + iVar23" identifier + identifier)) ;) (if_statement "if (local_d4 == 1) break;" if (parenthesized_expression "(local_d4 == 1)" ( (binary_expression "local_d4 == 1" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "local_d4 = 1;" (assignment_expression "local_d4 = 1" identifier = number_literal) ;) (expression_statement "lVar28 = local_8c;" (assignment_expression "lVar28 = local_8c" identifier = identifier) ;) })) (expression_statement "iVar20 = iVar20 + 0x92c70;" (assignment_expression "iVar20 = iVar20 + 0x92c70" identifier = (binary_expression "iVar20 + 0x92c70" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 != 0x100dc400)" ( (binary_expression "iVar20 != 0x100dc400" identifier != number_literal) )) ;) (goto_statement "goto LAB_0004d320;" goto statement_identifier ;) })) (labeled_statement "LAB_0004d1e8:\n  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);" statement_identifier : (expression_statement "local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);" (assignment_expression "local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20)" (field_expression "local_8c._4_4_" identifier . field_identifier) = (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;)) (expression_statement "local_8c._0_4_ = (int)lVar2;" (assignment_expression "local_8c._0_4_ = (int)lVar2" (field_expression "local_8c._0_4_" identifier . field_identifier) = (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*param_3 = (iVar25 - iVar19) + (int)local_8c;" (assignment_expression "*param_3 = (iVar25 - iVar19) + (int)local_8c" (pointer_expression "*param_3" * identifier) = (binary_expression "(iVar25 - iVar19) + (int)local_8c" (parenthesized_expression "(iVar25 - iVar19)" ( (binary_expression "iVar25 - iVar19" identifier - identifier) )) + (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar26 == local_c8) {\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }\n  else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }" if (parenthesized_expression "(uVar26 == local_c8)" ( (binary_expression "uVar26 == local_c8" identifier == identifier) )) (compound_statement "{\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }" { (labeled_statement "LAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;" statement_identifier : (expression_statement "local_8c._0_4_ = (int)lVar2;" (assignment_expression "local_8c._0_4_ = (int)lVar2" (field_expression "local_8c._0_4_" identifier . field_identifier) = (cast_expression "(int)lVar2" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "*param_1 = local_78;" (assignment_expression "*param_1 = local_78" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "param_1[1] = local_74;" (assignment_expression "param_1[1] = local_74" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[2] = local_70;" (assignment_expression "param_1[2] = local_70" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[3] = local_6c;" (assignment_expression "param_1[3] = local_6c" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[4] = local_68;" (assignment_expression "param_1[4] = local_68" (subscript_expression "param_1[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[5] = local_64;" (assignment_expression "param_1[5] = local_64" (subscript_expression "param_1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[6] = local_60;" (assignment_expression "param_1[6] = local_60" (subscript_expression "param_1[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[7] = local_5c;" (assignment_expression "param_1[7] = local_5c" (subscript_expression "param_1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[8] = local_58;" (assignment_expression "param_1[8] = local_58" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[9] = local_54;" (assignment_expression "param_1[9] = local_54" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[10] = local_50;" (assignment_expression "param_1[10] = local_50" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }" else (compound_statement "{\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }" { (expression_statement "uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);" (assignment_expression "uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c)" identifier = (call_expression "(uint)((int)uVar26 < 1 && local_c8 == 0x3c)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)uVar26 < 1 && local_c8 == 0x3c)" ( (binary_expression "(int)uVar26 < 1 && local_c8 == 0x3c" (binary_expression "(int)uVar26 < 1" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) && (binary_expression "local_c8 == 0x3c" identifier == number_literal)) )))) ;) (expression_statement "uVar18 = uVar14 - uVar22;" (assignment_expression "uVar18 = uVar14 - uVar22" identifier = (binary_expression "uVar14 - uVar22" identifier - identifier)) ;) (expression_statement "uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);" (assignment_expression "uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18)" identifier = (binary_expression "((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18)" (binary_expression "((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f))" (parenthesized_expression "((int)uVar26 >> 0x1f)" ( (binary_expression "(int)uVar26 >> 0x1f" (cast_expression "(int)uVar26" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (parenthesized_expression "(-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f))" ( (binary_expression "-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)" (unary_expression "-(uint)(uVar14 < uVar22)" - (call_expression "(uint)(uVar14 < uVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < uVar22)" ( (binary_expression "uVar14 < uVar22" identifier < identifier) )))) - (parenthesized_expression "((int)uVar22 >> 0x1f)" ( (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))) ))) + (cast_expression "(uint)CARRY4(uVar26,uVar18)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY4(uVar26,uVar18)" identifier (argument_list "(uVar26,uVar18)" ( identifier , identifier )))))) ;) (expression_statement "lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);" (assignment_expression "lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18)" identifier = (binary_expression "lVar2 + CONCAT44(uVar24,uVar26 + uVar18)" identifier + (call_expression "CONCAT44(uVar24,uVar26 + uVar18)" identifier (argument_list "(uVar24,uVar26 + uVar18)" ( identifier , (binary_expression "uVar26 + uVar18" identifier + identifier) ))))) ;) (expression_statement "uVar26 = (uint)((ulonglong)lVar2 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar2 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar2 >> 0x20)" ( (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = local_8c._4_4_ ^ uVar24;" (assignment_expression "uVar14 = local_8c._4_4_ ^ uVar24" identifier = (binary_expression "local_8c._4_4_ ^ uVar24" (field_expression "local_8c._4_4_" identifier . field_identifier) ^ identifier)) ;) (expression_statement "local_8c = lVar2;" (assignment_expression "local_8c = lVar2" identifier = identifier) ;) (if_statement "if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }" if (parenthesized_expression "(((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0))" ( (binary_expression "((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)" (parenthesized_expression "((int)((uVar24 ^ uVar26) & ~uVar14) < 0)" ( (binary_expression "(int)((uVar24 ^ uVar26) & ~uVar14) < 0" (cast_expression "(int)((uVar24 ^ uVar26) & ~uVar14)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar24 ^ uVar26) & ~uVar14)" ( (binary_expression "(uVar24 ^ uVar26) & ~uVar14" (parenthesized_expression "(uVar24 ^ uVar26)" ( (binary_expression "uVar24 ^ uVar26" identifier ^ identifier) )) & (unary_expression "~uVar14" ~ identifier)) ))) < number_literal) )) || (parenthesized_expression "(uVar26 + (0x7fffffff < (uint)lVar2) != 0)" ( (binary_expression "uVar26 + (0x7fffffff < (uint)lVar2) != 0" (binary_expression "uVar26 + (0x7fffffff < (uint)lVar2)" identifier + (parenthesized_expression "(0x7fffffff < (uint)lVar2)" ( (binary_expression "0x7fffffff < (uint)lVar2" number_literal < (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) != number_literal) ))) )) (compound_statement "{\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }" { (labeled_statement "LAB_0004d320:\n      piVar15 = __errno_location();" statement_identifier : (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;)) (expression_statement "*piVar15 = 0x4b;" (assignment_expression "*piVar15 = 0x4b" (pointer_expression "*piVar15" * identifier) = number_literal) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) }) (else_clause "else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }" else (compound_statement "{\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }" { (expression_statement "local_4c = (uint)lVar2;" (assignment_expression "local_4c = (uint)lVar2" identifier = (cast_expression "(uint)lVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iVar20 = (*param_2)(&local_4c,&local_78);" (assignment_expression "iVar20 = (*param_2)(&local_4c,&local_78)" identifier = (call_expression "(*param_2)(&local_4c,&local_78)" (parenthesized_expression "(*param_2)" ( (pointer_expression "*param_2" * identifier) )) (argument_list "(&local_4c,&local_78)" ( (pointer_expression "&local_4c" & identifier) , (pointer_expression "&local_78" & identifier) )))) ;) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" identifier = identifier) ;) (if_statement "if (iVar20 != 0) goto LAB_0004d2a1;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0004d2a1;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;" statement_identifier : (expression_statement "local_8c._0_4_ = 0xffffffff;" (assignment_expression "local_8c._0_4_ = 0xffffffff" (field_expression "local_8c._0_4_" identifier . field_identifier) = number_literal) ;)) }))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    local_8c = lVar2;\n                    \n    FUN_0004e0c0();\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    local_8c = lVar2;\n                    \n    FUN_0004e0c0();\n  }" { (expression_statement "local_8c = lVar2;" (assignment_expression "local_8c = lVar2" identifier = identifier) ;) (expression_statement "FUN_0004e0c0();" (call_expression "FUN_0004e0c0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return (int)local_8c;" return (cast_expression "(int)local_8c" ( (type_descriptor "int" primitive_type) ) identifier) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) % LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) / LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )))) ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT & LIT) ))) + (binary_expression IDENT * LIT)) )) * LIT)) )))) - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) | (binary_expression IDENT * LIT)) )) + LIT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT / LIT) + (parenthesized_expression ( (binary_expression (binary_expression IDENT % LIT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + LIT) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) )) * LIT)) + IDENT) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) )) * LIT)) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) )) * LIT)) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) )) * LIT)) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) )) - (parenthesized_expression ( (binary_expression (unary_expression - IDENT) >> LIT) ))) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (binary_expression (parenthesized_expression ( IDENT )) - IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != (call_expression IDENT (argument_list ( IDENT , IDENT )))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) != (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) != (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) ^ (binary_expression IDENT >> LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) ^ (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) )) & (unary_expression ~ IDENT)) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) == (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) })) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) && (binary_expression IDENT == LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ))) + (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) & (unary_expression ~ IDENT)) ))) < LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;)) }))) (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 (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;) })))
(function_definition "int FUN_0004ce80(uint *param_1,code *param_2,int *param_3)\n\n{\n  uint uVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  int iVar25;\n  uint uVar26;\n  int in_GS_OFFSET;\n  bool bVar27;\n  longlong lVar28;\n  undefined4 uVar29;\n  int local_d4;\n  int local_d0;\n  uint local_c8;\n  uint local_90;\n  undefined8 local_8c;\n  undefined8 local_84;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_64;\n  uint local_60;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_38;\n  undefined4 local_30;\n  int local_2c;\n  int local_20;\n  \n  uVar14 = param_1[8];\n  uVar26 = *param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar24 = param_1[1];\n  uVar18 = param_1[5];\n  uVar1 = param_1[2];\n  uVar22 = param_1[3];\n  iVar25 = (int)param_1[4] % 0xc;\n  uVar7 = iVar25 >> 0x1f;\n  uVar5 = (int)param_1[4] / 0xc + uVar7;\n  uVar6 = uVar5 + uVar18;\n  iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);\n  uVar18 = 0;\n  if ((uVar6 & 3) == 0) {\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }\n  local_d0 = 6;\n  bVar27 = false;\n  uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;\n  iVar25 = *param_3;\n  uVar7 = uVar18 + uVar22;\n  iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);\n  uVar18 = 0x3b;\n  if ((int)uVar26 < 0x3c) {\n    uVar18 = uVar26;\n  }\n  uVar22 = 0;\n  if (-1 < (int)uVar18) {\n    uVar22 = uVar18;\n  }\n  iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);\n  iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);\n  uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);\n  lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;\n  uVar5 = (uint)lVar28;\n  uVar8 = uVar5 + uVar7;\n  lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;\n  uVar9 = (uint)lVar2;\n  lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;\n  uVar10 = (uint)lVar3;\n  lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;\n  uVar11 = (uint)lVar4;\n  uVar12 = uVar11 + uVar22;\n  iVar19 = uVar12 + iVar25;\n  iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);\n  lVar28 = CONCAT44(iVar23,iVar19);\n  iVar20 = iVar19;\n  local_8c = lVar28;\n  while( true ) {\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }\n  if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }\nLAB_0004d1e8:\n  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);\n  local_8c._0_4_ = (int)lVar2;\n  *param_3 = (iVar25 - iVar19) + (int)local_8c;\n  if (uVar26 == local_c8) {\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }\n  else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    local_8c = lVar2;\n                    \n    FUN_0004e0c0();\n  }\n  return (int)local_8c;\n}" (primitive_type "int") (function_declarator "FUN_0004ce80(uint *param_1,code *param_2,int *param_3)" (identifier "FUN_0004ce80") (parameter_list "(uint *param_1,code *param_2,int *param_3)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "code *param_2" (type_identifier "code") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  uint uVar1;\n  longlong lVar2;\n  longlong lVar3;\n  longlong lVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  uint uVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  uint uVar18;\n  int iVar19;\n  int iVar20;\n  int iVar21;\n  uint uVar22;\n  int iVar23;\n  uint uVar24;\n  int iVar25;\n  uint uVar26;\n  int in_GS_OFFSET;\n  bool bVar27;\n  longlong lVar28;\n  undefined4 uVar29;\n  int local_d4;\n  int local_d0;\n  uint local_c8;\n  uint local_90;\n  undefined8 local_8c;\n  undefined8 local_84;\n  uint local_78;\n  uint local_74;\n  uint local_70;\n  uint local_6c;\n  uint local_68;\n  uint local_64;\n  uint local_60;\n  uint local_5c;\n  uint local_58;\n  uint local_54;\n  uint local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_38;\n  undefined4 local_30;\n  int local_2c;\n  int local_20;\n  \n  uVar14 = param_1[8];\n  uVar26 = *param_1;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar24 = param_1[1];\n  uVar18 = param_1[5];\n  uVar1 = param_1[2];\n  uVar22 = param_1[3];\n  iVar25 = (int)param_1[4] % 0xc;\n  uVar7 = iVar25 >> 0x1f;\n  uVar5 = (int)param_1[4] / 0xc + uVar7;\n  uVar6 = uVar5 + uVar18;\n  iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);\n  uVar18 = 0;\n  if ((uVar6 & 3) == 0) {\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }\n  local_d0 = 6;\n  bVar27 = false;\n  uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;\n  iVar25 = *param_3;\n  uVar7 = uVar18 + uVar22;\n  iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);\n  uVar18 = 0x3b;\n  if ((int)uVar26 < 0x3c) {\n    uVar18 = uVar26;\n  }\n  uVar22 = 0;\n  if (-1 < (int)uVar18) {\n    uVar22 = uVar18;\n  }\n  iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);\n  iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);\n  uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);\n  lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;\n  uVar5 = (uint)lVar28;\n  uVar8 = uVar5 + uVar7;\n  lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;\n  uVar9 = (uint)lVar2;\n  lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;\n  uVar10 = (uint)lVar3;\n  lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;\n  uVar11 = (uint)lVar4;\n  uVar12 = uVar11 + uVar22;\n  iVar19 = uVar12 + iVar25;\n  iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);\n  lVar28 = CONCAT44(iVar23,iVar19);\n  iVar20 = iVar19;\n  local_8c = lVar28;\n  while( true ) {\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }\n  if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }\nLAB_0004d1e8:\n  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);\n  local_8c._0_4_ = (int)lVar2;\n  *param_3 = (iVar25 - iVar19) + (int)local_8c;\n  if (uVar26 == local_c8) {\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }\n  else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    local_8c = lVar2;\n                    \n    FUN_0004e0c0();\n  }\n  return (int)local_8c;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "longlong lVar2;" (type_identifier "longlong") (identifier "lVar2") (; ";")) (declaration "longlong lVar3;" (type_identifier "longlong") (identifier "lVar3") (; ";")) (declaration "longlong lVar4;" (type_identifier "longlong") (identifier "lVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "int iVar25;" (primitive_type "int") (identifier "iVar25") (; ";")) (declaration "uint uVar26;" (type_identifier "uint") (identifier "uVar26") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar27;" (primitive_type "bool") (identifier "bVar27") (; ";")) (declaration "longlong lVar28;" (type_identifier "longlong") (identifier "lVar28") (; ";")) (declaration "undefined4 uVar29;" (type_identifier "undefined4") (identifier "uVar29") (; ";")) (declaration "int local_d4;" (primitive_type "int") (identifier "local_d4") (; ";")) (declaration "int local_d0;" (primitive_type "int") (identifier "local_d0") (; ";")) (declaration "uint local_c8;" (type_identifier "uint") (identifier "local_c8") (; ";")) (declaration "uint local_90;" (type_identifier "uint") (identifier "local_90") (; ";")) (declaration "undefined8 local_8c;" (type_identifier "undefined8") (identifier "local_8c") (; ";")) (declaration "undefined8 local_84;" (type_identifier "undefined8") (identifier "local_84") (; ";")) (declaration "uint local_78;" (type_identifier "uint") (identifier "local_78") (; ";")) (declaration "uint local_74;" (type_identifier "uint") (identifier "local_74") (; ";")) (declaration "uint local_70;" (type_identifier "uint") (identifier "local_70") (; ";")) (declaration "uint local_6c;" (type_identifier "uint") (identifier "local_6c") (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (declaration "uint local_60;" (type_identifier "uint") (identifier "local_60") (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "uint local_58;" (type_identifier "uint") (identifier "local_58") (; ";")) (declaration "uint local_54;" (type_identifier "uint") (identifier "local_54") (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "uVar14 = param_1[8];" (assignment_expression "uVar14 = param_1[8]" (identifier "uVar14") (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "uVar26 = *param_1;" (assignment_expression "uVar26 = *param_1" (identifier "uVar26") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (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 "uVar24 = param_1[1];" (assignment_expression "uVar24 = param_1[1]" (identifier "uVar24") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar18 = param_1[5];" (assignment_expression "uVar18 = param_1[5]" (identifier "uVar18") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar1 = param_1[2];" (assignment_expression "uVar1 = param_1[2]" (identifier "uVar1") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar22 = param_1[3];" (assignment_expression "uVar22 = param_1[3]" (identifier "uVar22") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar25 = (int)param_1[4] % 0xc;" (assignment_expression "iVar25 = (int)param_1[4] % 0xc" (identifier "iVar25") (= "=") (binary_expression "(int)param_1[4] % 0xc" (cast_expression "(int)param_1[4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (% "%") (number_literal "0xc"))) (; ";")) (expression_statement "uVar7 = iVar25 >> 0x1f;" (assignment_expression "uVar7 = iVar25 >> 0x1f" (identifier "uVar7") (= "=") (binary_expression "iVar25 >> 0x1f" (identifier "iVar25") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "uVar5 = (int)param_1[4] / 0xc + uVar7;" (assignment_expression "uVar5 = (int)param_1[4] / 0xc + uVar7" (identifier "uVar5") (= "=") (binary_expression "(int)param_1[4] / 0xc + uVar7" (binary_expression "(int)param_1[4] / 0xc" (cast_expression "(int)param_1[4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (/ "/") (number_literal "0xc")) (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "uVar6 = uVar5 + uVar18;" (assignment_expression "uVar6 = uVar5 + uVar18" (identifier "uVar6") (= "=") (binary_expression "uVar5 + uVar18" (identifier "uVar5") (+ "+") (identifier "uVar18"))) (; ";")) (expression_statement "iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);" (assignment_expression "iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18)" (identifier "iVar20") (= "=") (binary_expression "((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18)" (binary_expression "((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f)" (parenthesized_expression "((int)uVar5 >> 0x1f)" (( "(") (binary_expression "(int)uVar5 >> 0x1f" (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (parenthesized_expression "((int)uVar18 >> 0x1f)" (( "(") (binary_expression "(int)uVar18 >> 0x1f" (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar5,uVar18)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar5,uVar18)" (identifier "CARRY4") (argument_list "(uVar5,uVar18)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar18") () ")")))))) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uVar6 & 3) == 0) {\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }" (if "if") (parenthesized_expression "((uVar6 & 3) == 0)" (( "(") (binary_expression "(uVar6 & 3) == 0" (parenthesized_expression "(uVar6 & 3)" (( "(") (binary_expression "uVar6 & 3" (identifier "uVar6") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);\n    uVar18 = 1;\n    if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }\n  }" ({ "{") (expression_statement "lVar28 = FUN_0004d870(uVar6,iVar20,100,0);" (assignment_expression "lVar28 = FUN_0004d870(uVar6,iVar20,100,0)" (identifier "lVar28") (= "=") (call_expression "FUN_0004d870(uVar6,iVar20,100,0)" (identifier "FUN_0004d870") (argument_list "(uVar6,iVar20,100,0)" (( "(") (identifier "uVar6") (, ",") (identifier "iVar20") (, ",") (number_literal "100") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar18 = 1;" (assignment_expression "uVar18 = 1" (identifier "uVar18") (= "=") (number_literal "1")) (; ";")) (if_statement "if (lVar28 == 0) {\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }" (if "if") (parenthesized_expression "(lVar28 == 0)" (( "(") (binary_expression "lVar28 == 0" (identifier "lVar28") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);\n      uVar18 = (uint)((uVar18 & 3) == 1);\n    }" ({ "{") (expression_statement "uVar18 = FUN_0004d720(uVar6,iVar20,100,0);" (assignment_expression "uVar18 = FUN_0004d720(uVar6,iVar20,100,0)" (identifier "uVar18") (= "=") (call_expression "FUN_0004d720(uVar6,iVar20,100,0)" (identifier "FUN_0004d720") (argument_list "(uVar6,iVar20,100,0)" (( "(") (identifier "uVar6") (, ",") (identifier "iVar20") (, ",") (number_literal "100") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "uVar18 = (uint)((uVar18 & 3) == 1);" (assignment_expression "uVar18 = (uint)((uVar18 & 3) == 1)" (identifier "uVar18") (= "=") (call_expression "(uint)((uVar18 & 3) == 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar18 & 3) == 1)" (( "(") (binary_expression "(uVar18 & 3) == 1" (parenthesized_expression "(uVar18 & 3)" (( "(") (binary_expression "uVar18 & 3" (identifier "uVar18") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_d0 = 6;" (assignment_expression "local_d0 = 6" (identifier "local_d0") (= "=") (number_literal "6")) (; ";")) (expression_statement "bVar27 = false;" (assignment_expression "bVar27 = false" (identifier "bVar27") (= "=") (false "false")) (; ";")) (expression_statement "uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;" (assignment_expression "uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1" (identifier "uVar18") (= "=") (binary_expression "*(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1" (pointer_expression "*(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2)" (* "*") (cast_expression "(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2)" (( "(") (binary_expression "&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2" (pointer_expression "&DAT_00056720" (& "&") (identifier "DAT_00056720")) (+ "+") (binary_expression "(iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2" (parenthesized_expression "(iVar25 + (uVar7 & 0xc) + uVar18 * 0xd)" (( "(") (binary_expression "iVar25 + (uVar7 & 0xc) + uVar18 * 0xd" (binary_expression "iVar25 + (uVar7 & 0xc)" (identifier "iVar25") (+ "+") (parenthesized_expression "(uVar7 & 0xc)" (( "(") (binary_expression "uVar7 & 0xc" (identifier "uVar7") (& "&") (number_literal "0xc")) () ")"))) (+ "+") (binary_expression "uVar18 * 0xd" (identifier "uVar18") (* "*") (number_literal "0xd"))) () ")")) (* "*") (number_literal "2"))) () ")")))) (- "-") (number_literal "1"))) (; ";")) (expression_statement "iVar25 = *param_3;" (assignment_expression "iVar25 = *param_3" (identifier "iVar25") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "uVar7 = uVar18 + uVar22;" (assignment_expression "uVar7 = uVar18 + uVar22" (identifier "uVar7") (= "=") (binary_expression "uVar18 + uVar22" (identifier "uVar18") (+ "+") (identifier "uVar22"))) (; ";")) (expression_statement "iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);" (assignment_expression "iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22)" (identifier "iVar21") (= "=") (binary_expression "((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22)" (binary_expression "((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f)" (parenthesized_expression "((int)uVar18 >> 0x1f)" (( "(") (binary_expression "(int)uVar18 >> 0x1f" (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (parenthesized_expression "((int)uVar22 >> 0x1f)" (( "(") (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar18,uVar22)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar18,uVar22)" (identifier "CARRY4") (argument_list "(uVar18,uVar22)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar22") () ")")))))) (; ";")) (expression_statement "uVar18 = 0x3b;" (assignment_expression "uVar18 = 0x3b" (identifier "uVar18") (= "=") (number_literal "0x3b")) (; ";")) (if_statement "if ((int)uVar26 < 0x3c) {\n    uVar18 = uVar26;\n  }" (if "if") (parenthesized_expression "((int)uVar26 < 0x3c)" (( "(") (binary_expression "(int)uVar26 < 0x3c" (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26")) (< "<") (number_literal "0x3c")) () ")")) (compound_statement "{\n    uVar18 = uVar26;\n  }" ({ "{") (expression_statement "uVar18 = uVar26;" (assignment_expression "uVar18 = uVar26" (identifier "uVar18") (= "=") (identifier "uVar26")) (; ";")) (} "}"))) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)uVar18) {\n    uVar22 = uVar18;\n  }" (if "if") (parenthesized_expression "(-1 < (int)uVar18)" (( "(") (binary_expression "-1 < (int)uVar18" (number_literal "-1") (< "<") (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18"))) () ")")) (compound_statement "{\n    uVar22 = uVar18;\n  }" ({ "{") (expression_statement "uVar22 = uVar18;" (assignment_expression "uVar22 = uVar18" (identifier "uVar22") (= "=") (identifier "uVar18")) (; ";")) (} "}"))) (expression_statement "iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);" (assignment_expression "iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0)" (identifier "iVar19") (= "=") (binary_expression "((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0)" (parenthesized_expression "((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db)" (( "(") (binary_expression "(uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db" (parenthesized_expression "(uVar6 >> 2 | iVar20 * 0x40000000)" (( "(") (binary_expression "uVar6 >> 2 | iVar20 * 0x40000000" (binary_expression "uVar6 >> 2" (identifier "uVar6") (>> ">>") (number_literal "2")) (| "|") (binary_expression "iVar20 * 0x40000000" (identifier "iVar20") (* "*") (number_literal "0x40000000"))) () ")")) (+ "+") (number_literal "0x1db")) () ")")) (- "-") (call_expression "(uint)((uVar6 & 3) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar6 & 3) == 0)" (( "(") (binary_expression "(uVar6 & 3) == 0" (parenthesized_expression "(uVar6 & 3)" (( "(") (binary_expression "uVar6 & 3" (identifier "uVar6") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);" (assignment_expression "iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f)" (identifier "iVar23") (= "=") (binary_expression "iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f)" (binary_expression "iVar19 / 0x19" (identifier "iVar19") (/ "/") (number_literal "0x19")) (+ "+") (parenthesized_expression "(iVar19 % 0x19 >> 0x1f)" (( "(") (binary_expression "iVar19 % 0x19 >> 0x1f" (binary_expression "iVar19 % 0x19" (identifier "iVar19") (% "%") (number_literal "0x19")) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);" (assignment_expression "uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2)" (identifier "uVar18") (= "=") (binary_expression "(iVar19 - iVar23) + -0x1dd + (iVar23 >> 2)" (binary_expression "(iVar19 - iVar23) + -0x1dd" (parenthesized_expression "(iVar19 - iVar23)" (( "(") (binary_expression "iVar19 - iVar23" (identifier "iVar19") (- "-") (identifier "iVar23")) () ")")) (+ "+") (number_literal "-0x1dd")) (+ "+") (parenthesized_expression "(iVar23 >> 2)" (( "(") (binary_expression "iVar23 >> 2" (identifier "iVar23") (>> ">>") (number_literal "2")) () ")")))) (; ";")) (expression_statement "lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;" (assignment_expression "lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d" (identifier "lVar28") (= "=") (binary_expression "(ulonglong)(uVar6 - 0x46) * 0x16d" (call_expression "(ulonglong)(uVar6 - 0x46)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(uVar6 - 0x46)" (( "(") (binary_expression "uVar6 - 0x46" (identifier "uVar6") (- "-") (number_literal "0x46")) () ")"))) (* "*") (number_literal "0x16d"))) (; ";")) (expression_statement "uVar5 = (uint)lVar28;" (assignment_expression "uVar5 = (uint)lVar28" (identifier "uVar5") (= "=") (cast_expression "(uint)lVar28" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar28"))) (; ";")) (expression_statement "uVar8 = uVar5 + uVar7;" (assignment_expression "uVar8 = uVar5 + uVar7" (identifier "uVar8") (= "=") (binary_expression "uVar5 + uVar7" (identifier "uVar5") (+ "+") (identifier "uVar7"))) (; ";")) (expression_statement "lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;" (assignment_expression "lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18" (identifier "lVar2") (= "=") (binary_expression "(ulonglong)(uVar18 + uVar8) * 0x18" (call_expression "(ulonglong)(uVar18 + uVar8)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(uVar18 + uVar8)" (( "(") (binary_expression "uVar18 + uVar8" (identifier "uVar18") (+ "+") (identifier "uVar8")) () ")"))) (* "*") (number_literal "0x18"))) (; ";")) (expression_statement "uVar9 = (uint)lVar2;" (assignment_expression "uVar9 = (uint)lVar2" (identifier "uVar9") (= "=") (cast_expression "(uint)lVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar2"))) (; ";")) (expression_statement "lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;" (assignment_expression "lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c" (identifier "lVar3") (= "=") (binary_expression "(ulonglong)(uVar9 + uVar1) * 0x3c" (call_expression "(ulonglong)(uVar9 + uVar1)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(uVar9 + uVar1)" (( "(") (binary_expression "uVar9 + uVar1" (identifier "uVar9") (+ "+") (identifier "uVar1")) () ")"))) (* "*") (number_literal "0x3c"))) (; ";")) (expression_statement "uVar10 = (uint)lVar3;" (assignment_expression "uVar10 = (uint)lVar3" (identifier "uVar10") (= "=") (cast_expression "(uint)lVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar3"))) (; ";")) (expression_statement "lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;" (assignment_expression "lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c" (identifier "lVar4") (= "=") (binary_expression "(ulonglong)(uVar10 + uVar24) * 0x3c" (call_expression "(ulonglong)(uVar10 + uVar24)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(uVar10 + uVar24)" (( "(") (binary_expression "uVar10 + uVar24" (identifier "uVar10") (+ "+") (identifier "uVar24")) () ")"))) (* "*") (number_literal "0x3c"))) (; ";")) (expression_statement "uVar11 = (uint)lVar4;" (assignment_expression "uVar11 = (uint)lVar4" (identifier "uVar11") (= "=") (cast_expression "(uint)lVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar4"))) (; ";")) (expression_statement "uVar12 = uVar11 + uVar22;" (assignment_expression "uVar12 = uVar11 + uVar22" (identifier "uVar12") (= "=") (binary_expression "uVar11 + uVar22" (identifier "uVar11") (+ "+") (identifier "uVar22"))) (; ";")) (expression_statement "iVar19 = uVar12 + iVar25;" (assignment_expression "iVar19 = uVar12 + iVar25" (identifier "iVar19") (= "=") (binary_expression "uVar12 + iVar25" (identifier "uVar12") (+ "+") (identifier "iVar25"))) (; ";")) (expression_statement "iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);" (assignment_expression "iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25)" (identifier "iVar23") (= "=") (binary_expression "(((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25)" (parenthesized_expression "(((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f))" (( "(") (binary_expression "((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)" (parenthesized_expression "((int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22))" (( "(") (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +\n            (uint)CARRY4(uVar11,uVar22)" (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar4 >> 0x20) +\n             ((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c" (cast_expression "(int)((ulonglong)lVar4 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar4 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar4 >> 0x20" (cast_expression "(ulonglong)lVar4" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar4")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (binary_expression "((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)) * 0x3c" (parenthesized_expression "((int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24))" (( "(") (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +\n             (uint)CARRY4(uVar10,uVar24)" (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar3 >> 0x20) +\n              ((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c" (cast_expression "(int)((ulonglong)lVar3 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar3 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar3 >> 0x20" (cast_expression "(ulonglong)lVar3" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar3")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (binary_expression "((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c" (parenthesized_expression "((int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1))" (( "(") (binary_expression "(int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)" (binary_expression "(int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +\n               ((int)uVar1 >> 0x1f)" (binary_expression "(int)((ulonglong)lVar2 >> 0x20) +\n               (((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18" (cast_expression "(int)((ulonglong)lVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar2")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (binary_expression "(((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18" (parenthesized_expression "(((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8))" (( "(") (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21 + (uint)CARRY4(uVar5,uVar7)" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +\n                iVar21" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d" (binary_expression "((int)uVar18 >> 0x1f) +\n                (int)((ulonglong)lVar28 >> 0x20)" (parenthesized_expression "((int)uVar18 >> 0x1f)" (( "(") (binary_expression "(int)uVar18 >> 0x1f" (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (cast_expression "(int)((ulonglong)lVar28 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar28")) (>> ">>") (number_literal "0x20")) () ")")))) (+ "+") (binary_expression "(iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d" (parenthesized_expression "(iVar20 + -1 + (uint)(0x45 < uVar6))" (( "(") (binary_expression "iVar20 + -1 + (uint)(0x45 < uVar6)" (binary_expression "iVar20 + -1" (identifier "iVar20") (+ "+") (number_literal "-1")) (+ "+") (call_expression "(uint)(0x45 < uVar6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x45 < uVar6)" (( "(") (binary_expression "0x45 < uVar6" (number_literal "0x45") (< "<") (identifier "uVar6")) () ")")))) () ")")) (* "*") (number_literal "0x16d"))) (+ "+") (identifier "iVar21")) (+ "+") (cast_expression "(uint)CARRY4(uVar5,uVar7)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar5,uVar7)" (identifier "CARRY4") (argument_list "(uVar5,uVar7)" (( "(") (identifier "uVar5") (, ",") (identifier "uVar7") () ")"))))) (+ "+") (cast_expression "(uint)CARRY4(uVar18,uVar8)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar18,uVar8)" (identifier "CARRY4") (argument_list "(uVar18,uVar8)" (( "(") (identifier "uVar18") (, ",") (identifier "uVar8") () ")"))))) () ")")) (* "*") (number_literal "0x18"))) (+ "+") (parenthesized_expression "((int)uVar1 >> 0x1f)" (( "(") (binary_expression "(int)uVar1 >> 0x1f" (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar9,uVar1)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar9,uVar1)" (identifier "CARRY4") (argument_list "(uVar9,uVar1)" (( "(") (identifier "uVar9") (, ",") (identifier "uVar1") () ")"))))) () ")")) (* "*") (number_literal "0x3c"))) (+ "+") (parenthesized_expression "((int)uVar24 >> 0x1f)" (( "(") (binary_expression "(int)uVar24 >> 0x1f" (cast_expression "(int)uVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar24")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar10,uVar24)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar10,uVar24)" (identifier "CARRY4") (argument_list "(uVar10,uVar24)" (( "(") (identifier "uVar10") (, ",") (identifier "uVar24") () ")"))))) () ")")) (* "*") (number_literal "0x3c"))) (+ "+") (parenthesized_expression "((int)uVar22 >> 0x1f)" (( "(") (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "0x1f")) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar11,uVar22)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar11,uVar22)" (identifier "CARRY4") (argument_list "(uVar11,uVar22)" (( "(") (identifier "uVar11") (, ",") (identifier "uVar22") () ")"))))) () ")")) (- "-") (parenthesized_expression "(-iVar25 >> 0x1f)" (( "(") (binary_expression "-iVar25 >> 0x1f" (unary_expression "-iVar25" (- "-") (identifier "iVar25")) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")) (- "-") (call_expression "(uint)(uVar12 < (uint)-iVar25)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar12 < (uint)-iVar25)" (( "(") (binary_expression "uVar12 < (uint)-iVar25" (identifier "uVar12") (< "<") (binary_expression "(uint)-iVar25" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (identifier "iVar25"))) () ")"))))) (; ";")) (expression_statement "lVar28 = CONCAT44(iVar23,iVar19);" (assignment_expression "lVar28 = CONCAT44(iVar23,iVar19)" (identifier "lVar28") (= "=") (call_expression "CONCAT44(iVar23,iVar19)" (identifier "CONCAT44") (argument_list "(iVar23,iVar19)" (( "(") (identifier "iVar23") (, ",") (identifier "iVar19") () ")")))) (; ";")) (expression_statement "iVar20 = iVar19;" (assignment_expression "iVar20 = iVar19" (identifier "iVar20") (= "=") (identifier "iVar19")) (; ";")) (expression_statement "local_8c = lVar28;" (assignment_expression "local_8c = lVar28" (identifier "local_8c") (= "=") (identifier "lVar28")) (; ";")) (while_statement "while( true ) {\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    lVar3 = CONCAT44(iVar23,iVar20);\n    iVar23 = (int)((ulonglong)local_8c >> 0x20);\n    iVar20 = (int)local_8c;\n    local_8c = lVar28;\n    iVar13 = FUN_0004cc20();\n    lVar2 = local_8c;\n    if (iVar13 == 0) goto LAB_0004d32f;\n    local_c8 = local_78;\n    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);\n    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);\n    lVar2 = local_8c;\n    if (lVar28 == 0) break;\n    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }\n    local_d0 = local_d0 + -1;\n    if (local_d0 == 0) goto LAB_0004d320;\n    lVar28 = lVar28 + local_8c;\n    bVar27 = local_58 != 0;\n  }" ({ "{") (expression_statement "lVar3 = CONCAT44(iVar23,iVar20);" (assignment_expression "lVar3 = CONCAT44(iVar23,iVar20)" (identifier "lVar3") (= "=") (call_expression "CONCAT44(iVar23,iVar20)" (identifier "CONCAT44") (argument_list "(iVar23,iVar20)" (( "(") (identifier "iVar23") (, ",") (identifier "iVar20") () ")")))) (; ";")) (expression_statement "iVar23 = (int)((ulonglong)local_8c >> 0x20);" (assignment_expression "iVar23 = (int)((ulonglong)local_8c >> 0x20)" (identifier "iVar23") (= "=") (cast_expression "(int)((ulonglong)local_8c >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)local_8c >> 0x20)" (( "(") (binary_expression "(ulonglong)local_8c >> 0x20" (cast_expression "(ulonglong)local_8c" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_8c")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar20 = (int)local_8c;" (assignment_expression "iVar20 = (int)local_8c" (identifier "iVar20") (= "=") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c"))) (; ";")) (expression_statement "local_8c = lVar28;" (assignment_expression "local_8c = lVar28" (identifier "local_8c") (= "=") (identifier "lVar28")) (; ";")) (expression_statement "iVar13 = FUN_0004cc20();" (assignment_expression "iVar13 = FUN_0004cc20()" (identifier "iVar13") (= "=") (call_expression "FUN_0004cc20()" (identifier "FUN_0004cc20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" (identifier "lVar2") (= "=") (identifier "local_8c")) (; ";")) (if_statement "if (iVar13 == 0) goto LAB_0004d32f;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004d32f;" (goto "goto") (statement_identifier "LAB_0004d32f") (; ";"))) (expression_statement "local_c8 = local_78;" (assignment_expression "local_c8 = local_78" (identifier "local_c8") (= "=") (identifier "local_78")) (; ";")) (expression_statement "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78);" (assignment_expression "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78)" (identifier "lVar28") (= "=") (call_expression "FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78)" (identifier "FUN_0004cac0") (argument_list "(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,\n                          local_78)" (( "(") (identifier "uVar7") (, ",") (identifier "iVar21") (, ",") (identifier "uVar1") (, ",") (identifier "uVar24") (, ",") (identifier "uVar22") (, ",") (identifier "local_64") (, ",") (identifier "local_5c") (, ",") (identifier "local_70") (, ",") (identifier "local_74") (, ",") (identifier "local_78") () ")")))) (; ";")) (expression_statement "uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);" (assignment_expression "uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20)" (identifier "uVar29") (= "=") (call_expression "(undefined4)((ulonglong)lVar28 >> 0x20)" (parenthesized_expression "(undefined4)" (( "(") (identifier "undefined4") () ")")) (argument_list "((ulonglong)lVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar28")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" (identifier "lVar2") (= "=") (identifier "local_8c")) (; ";")) (if_statement "if (lVar28 == 0) break;" (if "if") (parenthesized_expression "(lVar28 == 0)" (( "(") (binary_expression "lVar28 == 0" (identifier "lVar28") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }" (if "if") (parenthesized_expression "((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20)))" (( "(") (binary_expression "(local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))" (parenthesized_expression "(local_8c == lVar3)" (( "(") (binary_expression "local_8c == lVar3" (identifier "local_8c") (== "==") (identifier "lVar3")) () ")")) (&& "&&") (parenthesized_expression "(local_8c != CONCAT44(iVar23,iVar20))" (( "(") (binary_expression "local_8c != CONCAT44(iVar23,iVar20)" (identifier "local_8c") (!= "!=") (call_expression "CONCAT44(iVar23,iVar20)" (identifier "CONCAT44") (argument_list "(iVar23,iVar20)" (( "(") (identifier "iVar23") (, ",") (identifier "iVar20") () ")")))) () ")"))) () ")")) (compound_statement "{\n      if ((int)local_58 < 0) goto LAB_0004d1e8;\n      if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;\n    }" ({ "{") (if_statement "if ((int)local_58 < 0) goto LAB_0004d1e8;" (if "if") (parenthesized_expression "((int)local_58 < 0)" (( "(") (binary_expression "(int)local_58 < 0" (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004d1e8;" (goto "goto") (statement_identifier "LAB_0004d1e8") (; ";"))) (if_statement "if ((int)uVar14 < 0) {\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }\n      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;" (if "if") (parenthesized_expression "((int)uVar14 < 0)" (( "(") (binary_expression "(int)uVar14 < 0" (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;\n      }" ({ "{") (if_statement "if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;" (if "if") (parenthesized_expression "(bVar27 <= (local_58 != 0))" (( "(") (binary_expression "bVar27 <= (local_58 != 0)" (identifier "bVar27") (<= "<=") (parenthesized_expression "(local_58 != 0)" (( "(") (binary_expression "local_58 != 0" (identifier "local_58") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0004d1e8;" (goto "goto") (statement_identifier "LAB_0004d1e8") (; ";"))) (} "}")) (else_clause "else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;" (else "else") (if_statement "if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;" (if "if") (parenthesized_expression "((uVar14 != 0) != (local_58 != 0))" (( "(") (binary_expression "(uVar14 != 0) != (local_58 != 0)" (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (!= "!=") (parenthesized_expression "(local_58 != 0)" (( "(") (binary_expression "local_58 != 0" (identifier "local_58") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_0004d1e8;" (goto "goto") (statement_identifier "LAB_0004d1e8") (; ";"))))) (} "}"))) (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"))) (; ";")) (if_statement "if (local_d0 == 0) goto LAB_0004d320;" (if "if") (parenthesized_expression "(local_d0 == 0)" (( "(") (binary_expression "local_d0 == 0" (identifier "local_d0") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004d320;" (goto "goto") (statement_identifier "LAB_0004d320") (; ";"))) (expression_statement "lVar28 = lVar28 + local_8c;" (assignment_expression "lVar28 = lVar28 + local_8c" (identifier "lVar28") (= "=") (binary_expression "lVar28 + local_8c" (identifier "lVar28") (+ "+") (identifier "local_8c"))) (; ";")) (expression_statement "bVar27 = local_58 != 0;" (assignment_expression "bVar27 = local_58 != 0" (identifier "bVar27") (= "=") (binary_expression "local_58 != 0" (identifier "local_58") (!= "!=") (number_literal "0"))) (; ";")) (} "}"))) (if_statement "if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }" (if "if") (parenthesized_expression "((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58))" (( "(") (binary_expression "(((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)" (parenthesized_expression "(((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14))" (( "(") (binary_expression "((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)" (parenthesized_expression "((uVar14 == 0) != (local_58 == 0))" (( "(") (binary_expression "(uVar14 == 0) != (local_58 == 0)" (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (!= "!=") (parenthesized_expression "(local_58 == 0)" (( "(") (binary_expression "local_58 == 0" (identifier "local_58") (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(-1 < (int)uVar14)" (( "(") (binary_expression "-1 < (int)uVar14" (number_literal "-1") (< "<") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(-1 < (int)local_58)" (( "(") (binary_expression "-1 < (int)local_58" (number_literal "-1") (< "<") (cast_expression "(int)local_58" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_58"))) () ")"))) () ")")) (compound_statement "{\n    iVar20 = 0x92c70;\n    do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);\n    goto LAB_0004d320;\n  }" ({ "{") (expression_statement "iVar20 = 0x92c70;" (assignment_expression "iVar20 = 0x92c70" (identifier "iVar20") (= "=") (number_literal "0x92c70")) (; ";")) (do_statement "do {\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    } while (iVar20 != 0x100dc400);" (do "do") (compound_statement "{\n      local_d4 = 2;\n      iVar23 = iVar20 * 2;\n      iVar13 = -iVar20;\n      lVar28 = local_8c;\n      while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }\n      iVar20 = iVar20 + 0x92c70;\n    }" ({ "{") (expression_statement "local_d4 = 2;" (assignment_expression "local_d4 = 2" (identifier "local_d4") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar23 = iVar20 * 2;" (assignment_expression "iVar23 = iVar20 * 2" (identifier "iVar23") (= "=") (binary_expression "iVar20 * 2" (identifier "iVar20") (* "*") (number_literal "2"))) (; ";")) (expression_statement "iVar13 = -iVar20;" (assignment_expression "iVar13 = -iVar20" (identifier "iVar13") (= "=") (unary_expression "-iVar20" (- "-") (identifier "iVar20"))) (; ";")) (expression_statement "lVar28 = local_8c;" (assignment_expression "lVar28 = local_8c" (identifier "lVar28") (= "=") (identifier "local_8c")) (; ";")) (while_statement "while( true ) {\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);\n        local_84 = lVar28 + iVar13;\n        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;\n        local_8c = lVar28;\n        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }\n        iVar13 = iVar13 + iVar23;\n        if (local_d4 == 1) break;\n        local_d4 = 1;\n        lVar28 = local_8c;\n      }" ({ "{") (expression_statement "local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);" (assignment_expression "local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20)" (field_expression "local_8c._4_4_" (identifier "local_8c") (. ".") (field_identifier "_4_4_")) (= "=") (call_expression "(uint)((ulonglong)lVar28 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar28 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar28 >> 0x20" (cast_expression "(ulonglong)lVar28" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar28")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_84 = lVar28 + iVar13;" (assignment_expression "local_84 = lVar28 + iVar13" (identifier "local_84") (= "=") (binary_expression "lVar28 + iVar13" (identifier "lVar28") (+ "+") (identifier "iVar13"))) (; ";")) (expression_statement "uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;" (assignment_expression "uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f" (identifier "uVar18") (= "=") (binary_expression "local_8c._4_4_ ^ iVar13 >> 0x1f" (field_expression "local_8c._4_4_" (identifier "local_8c") (. ".") (field_identifier "_4_4_")) (^ "^") (binary_expression "iVar13 >> 0x1f" (identifier "iVar13") (>> ">>") (number_literal "0x1f")))) (; ";")) (expression_statement "local_8c = lVar28;" (assignment_expression "local_8c = lVar28" (identifier "local_8c") (= "=") (identifier "lVar28")) (; ";")) (if_statement "if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }" (if "if") (parenthesized_expression "(-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18))" (( "(") (binary_expression "-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)" (number_literal "-1") (< "<") (cast_expression "(int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)" (( "(") (binary_expression "(iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18" (parenthesized_expression "(iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20))" (( "(") (binary_expression "iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)" (binary_expression "iVar13 >> 0x1f" (identifier "iVar13") (>> ">>") (number_literal "0x1f")) (^ "^") (call_expression "(uint)((ulonglong)local_84 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)local_84 >> 0x20)" (( "(") (binary_expression "(ulonglong)local_84 >> 0x20" (cast_expression "(ulonglong)local_84" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "local_84")) (>> ">>") (number_literal "0x20")) () ")")))) () ")")) (& "&") (unary_expression "~uVar18" (~ "~") (identifier "uVar18"))) () ")")))) () ")")) (compound_statement "{\n          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);\n          lVar2 = local_8c;\n          if (iVar16 == 0) goto LAB_0004d32f;\n          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }\n        }" ({ "{") (expression_statement "iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);" (assignment_expression "iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13)" (identifier "iVar16") (= "=") (call_expression "FUN_0004cc20(iVar20,uVar29,iVar13)" (identifier "FUN_0004cc20") (argument_list "(iVar20,uVar29,iVar13)" (( "(") (identifier "iVar20") (, ",") (identifier "uVar29") (, ",") (identifier "iVar13") () ")")))) (; ";")) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" (identifier "lVar2") (= "=") (identifier "local_8c")) (; ";")) (if_statement "if (iVar16 == 0) goto LAB_0004d32f;" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004d32f;" (goto "goto") (statement_identifier "LAB_0004d32f") (; ";"))) (if_statement "if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }" (if "if") (parenthesized_expression "(((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0))" (( "(") (binary_expression "((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)" (parenthesized_expression "((uVar14 == 0) == (local_2c == 0))" (( "(") (binary_expression "(uVar14 == 0) == (local_2c == 0)" (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (== "==") (parenthesized_expression "(local_2c == 0)" (( "(") (binary_expression "local_2c == 0" (identifier "local_2c") (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_2c < 0)" (( "(") (binary_expression "local_2c < 0" (identifier "local_2c") (< "<") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);\n            uVar18 = (uint)(lVar28 + local_84);\n            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);\n            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }\n          }" ({ "{") (expression_statement "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c);" (assignment_expression "lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c)" (identifier "lVar28") (= "=") (call_expression "FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c)" (identifier "FUN_0004cac0") (argument_list "(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,\n                                  local_48,local_4c)" (( "(") (identifier "uVar7") (, ",") (identifier "iVar21") (, ",") (identifier "uVar1") (, ",") (identifier "uVar24") (, ",") (identifier "uVar22") (, ",") (identifier "local_38") (, ",") (identifier "local_30") (, ",") (identifier "local_44") (, ",") (identifier "local_48") (, ",") (identifier "local_4c") () ")")))) (; ";")) (expression_statement "uVar18 = (uint)(lVar28 + local_84);" (assignment_expression "uVar18 = (uint)(lVar28 + local_84)" (identifier "uVar18") (= "=") (call_expression "(uint)(lVar28 + local_84)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(lVar28 + local_84)" (( "(") (binary_expression "lVar28 + local_84" (identifier "lVar28") (+ "+") (identifier "local_84")) () ")")))) (; ";")) (expression_statement "iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);" (assignment_expression "iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20)" (identifier "iVar16") (= "=") (cast_expression "(int)((ulonglong)(lVar28 + local_84) >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)(lVar28 + local_84) >> 0x20)" (( "(") (binary_expression "(ulonglong)(lVar28 + local_84) >> 0x20" (call_expression "(ulonglong)(lVar28 + local_84)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(lVar28 + local_84)" (( "(") (binary_expression "lVar28 + local_84" (identifier "lVar28") (+ "+") (identifier "local_84")) () ")"))) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }" (if "if") (parenthesized_expression "(iVar16 + (uint)(0x7fffffff < uVar18) == 0)" (( "(") (binary_expression "iVar16 + (uint)(0x7fffffff < uVar18) == 0" (binary_expression "iVar16 + (uint)(0x7fffffff < uVar18)" (identifier "iVar16") (+ "+") (call_expression "(uint)(0x7fffffff < uVar18)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0x7fffffff < uVar18)" (( "(") (binary_expression "0x7fffffff < uVar18" (number_literal "0x7fffffff") (< "<") (identifier "uVar18")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_90 = uVar18;\n              iVar17 = (*param_2)(&local_90,&local_78);\n              if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }\n              piVar15 = __errno_location();\n              lVar2 = local_8c;\n              if (*piVar15 != 0x4b) goto LAB_0004d32f;\n            }" ({ "{") (expression_statement "local_90 = uVar18;" (assignment_expression "local_90 = uVar18" (identifier "local_90") (= "=") (identifier "uVar18")) (; ";")) (expression_statement "iVar17 = (*param_2)(&local_90,&local_78);" (assignment_expression "iVar17 = (*param_2)(&local_90,&local_78)" (identifier "iVar17") (= "=") (call_expression "(*param_2)(&local_90,&local_78)" (parenthesized_expression "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")) (argument_list "(&local_90,&local_78)" (( "(") (pointer_expression "&local_90" (& "&") (identifier "local_90")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) () ")")))) (; ";")) (if_statement "if (iVar17 != 0) {\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                local_c8 = local_78;\n                lVar2 = CONCAT44(iVar16,uVar18);\n                goto LAB_0004d1e8;\n              }" ({ "{") (expression_statement "local_c8 = local_78;" (assignment_expression "local_c8 = local_78" (identifier "local_c8") (= "=") (identifier "local_78")) (; ";")) (expression_statement "lVar2 = CONCAT44(iVar16,uVar18);" (assignment_expression "lVar2 = CONCAT44(iVar16,uVar18)" (identifier "lVar2") (= "=") (call_expression "CONCAT44(iVar16,uVar18)" (identifier "CONCAT44") (argument_list "(iVar16,uVar18)" (( "(") (identifier "iVar16") (, ",") (identifier "uVar18") () ")")))) (; ";")) (goto_statement "goto LAB_0004d1e8;" (goto "goto") (statement_identifier "LAB_0004d1e8") (; ";")) (} "}"))) (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" (identifier "piVar15") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" (identifier "lVar2") (= "=") (identifier "local_8c")) (; ";")) (if_statement "if (*piVar15 != 0x4b) goto LAB_0004d32f;" (if "if") (parenthesized_expression "(*piVar15 != 0x4b)" (( "(") (binary_expression "*piVar15 != 0x4b" (pointer_expression "*piVar15" (* "*") (identifier "piVar15")) (!= "!=") (number_literal "0x4b")) () ")")) (goto_statement "goto LAB_0004d32f;" (goto "goto") (statement_identifier "LAB_0004d32f") (; ";"))) (} "}"))) (} "}"))) (} "}"))) (expression_statement "iVar13 = iVar13 + iVar23;" (assignment_expression "iVar13 = iVar13 + iVar23" (identifier "iVar13") (= "=") (binary_expression "iVar13 + iVar23" (identifier "iVar13") (+ "+") (identifier "iVar23"))) (; ";")) (if_statement "if (local_d4 == 1) break;" (if "if") (parenthesized_expression "(local_d4 == 1)" (( "(") (binary_expression "local_d4 == 1" (identifier "local_d4") (== "==") (number_literal "1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_d4 = 1;" (assignment_expression "local_d4 = 1" (identifier "local_d4") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar28 = local_8c;" (assignment_expression "lVar28 = local_8c" (identifier "lVar28") (= "=") (identifier "local_8c")) (; ";")) (} "}"))) (expression_statement "iVar20 = iVar20 + 0x92c70;" (assignment_expression "iVar20 = iVar20 + 0x92c70" (identifier "iVar20") (= "=") (binary_expression "iVar20 + 0x92c70" (identifier "iVar20") (+ "+") (number_literal "0x92c70"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar20 != 0x100dc400)" (( "(") (binary_expression "iVar20 != 0x100dc400" (identifier "iVar20") (!= "!=") (number_literal "0x100dc400")) () ")")) (; ";")) (goto_statement "goto LAB_0004d320;" (goto "goto") (statement_identifier "LAB_0004d320") (; ";")) (} "}"))) (labeled_statement "LAB_0004d1e8:\n  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);" (statement_identifier "LAB_0004d1e8") (: ":") (expression_statement "local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);" (assignment_expression "local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20)" (field_expression "local_8c._4_4_" (identifier "local_8c") (. ".") (field_identifier "_4_4_")) (= "=") (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar2")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";"))) (expression_statement "local_8c._0_4_ = (int)lVar2;" (assignment_expression "local_8c._0_4_ = (int)lVar2" (field_expression "local_8c._0_4_" (identifier "local_8c") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(int)lVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar2"))) (; ";")) (expression_statement "*param_3 = (iVar25 - iVar19) + (int)local_8c;" (assignment_expression "*param_3 = (iVar25 - iVar19) + (int)local_8c" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (binary_expression "(iVar25 - iVar19) + (int)local_8c" (parenthesized_expression "(iVar25 - iVar19)" (( "(") (binary_expression "iVar25 - iVar19" (identifier "iVar25") (- "-") (identifier "iVar19")) () ")")) (+ "+") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")))) (; ";")) (if_statement "if (uVar26 == local_c8) {\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }\n  else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }" (if "if") (parenthesized_expression "(uVar26 == local_c8)" (( "(") (binary_expression "uVar26 == local_c8" (identifier "uVar26") (== "==") (identifier "local_c8")) () ")")) (compound_statement "{\nLAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;\n    *param_1 = local_78;\n    param_1[1] = local_74;\n    param_1[2] = local_70;\n    param_1[3] = local_6c;\n    param_1[4] = local_68;\n    param_1[5] = local_64;\n    param_1[6] = local_60;\n    param_1[7] = local_5c;\n    param_1[8] = local_58;\n    param_1[9] = local_54;\n    param_1[10] = local_50;\n  }" ({ "{") (labeled_statement "LAB_0004d2a1:\n    local_8c._0_4_ = (int)lVar2;" (statement_identifier "LAB_0004d2a1") (: ":") (expression_statement "local_8c._0_4_ = (int)lVar2;" (assignment_expression "local_8c._0_4_ = (int)lVar2" (field_expression "local_8c._0_4_" (identifier "local_8c") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(int)lVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar2"))) (; ";"))) (expression_statement "*param_1 = local_78;" (assignment_expression "*param_1 = local_78" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_78")) (; ";")) (expression_statement "param_1[1] = local_74;" (assignment_expression "param_1[1] = local_74" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_74")) (; ";")) (expression_statement "param_1[2] = local_70;" (assignment_expression "param_1[2] = local_70" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "local_70")) (; ";")) (expression_statement "param_1[3] = local_6c;" (assignment_expression "param_1[3] = local_6c" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "local_6c")) (; ";")) (expression_statement "param_1[4] = local_68;" (assignment_expression "param_1[4] = local_68" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "local_68")) (; ";")) (expression_statement "param_1[5] = local_64;" (assignment_expression "param_1[5] = local_64" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "local_64")) (; ";")) (expression_statement "param_1[6] = local_60;" (assignment_expression "param_1[6] = local_60" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "local_60")) (; ";")) (expression_statement "param_1[7] = local_5c;" (assignment_expression "param_1[7] = local_5c" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (expression_statement "param_1[8] = local_58;" (assignment_expression "param_1[8] = local_58" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "local_58")) (; ";")) (expression_statement "param_1[9] = local_54;" (assignment_expression "param_1[9] = local_54" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "local_54")) (; ";")) (expression_statement "param_1[10] = local_50;" (assignment_expression "param_1[10] = local_50" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "local_50")) (; ";")) (} "}")) (else_clause "else {\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }" (else "else") (compound_statement "{\n    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);\n    uVar18 = uVar14 - uVar22;\n    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);\n    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);\n    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);\n    uVar14 = local_8c._4_4_ ^ uVar24;\n    local_8c = lVar2;\n    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }\nLAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;\n  }" ({ "{") (expression_statement "uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);" (assignment_expression "uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c)" (identifier "uVar14") (= "=") (call_expression "(uint)((int)uVar26 < 1 && local_c8 == 0x3c)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)uVar26 < 1 && local_c8 == 0x3c)" (( "(") (binary_expression "(int)uVar26 < 1 && local_c8 == 0x3c" (binary_expression "(int)uVar26 < 1" (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26")) (< "<") (number_literal "1")) (&& "&&") (binary_expression "local_c8 == 0x3c" (identifier "local_c8") (== "==") (number_literal "0x3c"))) () ")")))) (; ";")) (expression_statement "uVar18 = uVar14 - uVar22;" (assignment_expression "uVar18 = uVar14 - uVar22" (identifier "uVar18") (= "=") (binary_expression "uVar14 - uVar22" (identifier "uVar14") (- "-") (identifier "uVar22"))) (; ";")) (expression_statement "uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18);" (assignment_expression "uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18)" (identifier "uVar24") (= "=") (binary_expression "((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +\n             (uint)CARRY4(uVar26,uVar18)" (binary_expression "((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f))" (parenthesized_expression "((int)uVar26 >> 0x1f)" (( "(") (binary_expression "(int)uVar26 >> 0x1f" (cast_expression "(int)uVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x1f")) () ")")) (+ "+") (parenthesized_expression "(-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f))" (( "(") (binary_expression "-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)" (unary_expression "-(uint)(uVar14 < uVar22)" (- "-") (call_expression "(uint)(uVar14 < uVar22)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 < uVar22)" (( "(") (binary_expression "uVar14 < uVar22" (identifier "uVar14") (< "<") (identifier "uVar22")) () ")")))) (- "-") (parenthesized_expression "((int)uVar22 >> 0x1f)" (( "(") (binary_expression "(int)uVar22 >> 0x1f" (cast_expression "(int)uVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "0x1f")) () ")"))) () ")"))) (+ "+") (cast_expression "(uint)CARRY4(uVar26,uVar18)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY4(uVar26,uVar18)" (identifier "CARRY4") (argument_list "(uVar26,uVar18)" (( "(") (identifier "uVar26") (, ",") (identifier "uVar18") () ")")))))) (; ";")) (expression_statement "lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);" (assignment_expression "lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18)" (identifier "lVar2") (= "=") (binary_expression "lVar2 + CONCAT44(uVar24,uVar26 + uVar18)" (identifier "lVar2") (+ "+") (call_expression "CONCAT44(uVar24,uVar26 + uVar18)" (identifier "CONCAT44") (argument_list "(uVar24,uVar26 + uVar18)" (( "(") (identifier "uVar24") (, ",") (binary_expression "uVar26 + uVar18" (identifier "uVar26") (+ "+") (identifier "uVar18")) () ")"))))) (; ";")) (expression_statement "uVar26 = (uint)((ulonglong)lVar2 >> 0x20);" (assignment_expression "uVar26 = (uint)((ulonglong)lVar2 >> 0x20)" (identifier "uVar26") (= "=") (call_expression "(uint)((ulonglong)lVar2 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar2 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar2 >> 0x20" (cast_expression "(ulonglong)lVar2" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar2")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar14 = local_8c._4_4_ ^ uVar24;" (assignment_expression "uVar14 = local_8c._4_4_ ^ uVar24" (identifier "uVar14") (= "=") (binary_expression "local_8c._4_4_ ^ uVar24" (field_expression "local_8c._4_4_" (identifier "local_8c") (. ".") (field_identifier "_4_4_")) (^ "^") (identifier "uVar24"))) (; ";")) (expression_statement "local_8c = lVar2;" (assignment_expression "local_8c = lVar2" (identifier "local_8c") (= "=") (identifier "lVar2")) (; ";")) (if_statement "if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }\n    else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }" (if "if") (parenthesized_expression "(((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0))" (( "(") (binary_expression "((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)" (parenthesized_expression "((int)((uVar24 ^ uVar26) & ~uVar14) < 0)" (( "(") (binary_expression "(int)((uVar24 ^ uVar26) & ~uVar14) < 0" (cast_expression "(int)((uVar24 ^ uVar26) & ~uVar14)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uVar24 ^ uVar26) & ~uVar14)" (( "(") (binary_expression "(uVar24 ^ uVar26) & ~uVar14" (parenthesized_expression "(uVar24 ^ uVar26)" (( "(") (binary_expression "uVar24 ^ uVar26" (identifier "uVar24") (^ "^") (identifier "uVar26")) () ")")) (& "&") (unary_expression "~uVar14" (~ "~") (identifier "uVar14"))) () ")"))) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar26 + (0x7fffffff < (uint)lVar2) != 0)" (( "(") (binary_expression "uVar26 + (0x7fffffff < (uint)lVar2) != 0" (binary_expression "uVar26 + (0x7fffffff < (uint)lVar2)" (identifier "uVar26") (+ "+") (parenthesized_expression "(0x7fffffff < (uint)lVar2)" (( "(") (binary_expression "0x7fffffff < (uint)lVar2" (number_literal "0x7fffffff") (< "<") (cast_expression "(uint)lVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar2"))) () ")"))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0004d320:\n      piVar15 = __errno_location();\n      *piVar15 = 0x4b;\n      lVar2 = local_8c;\n    }" ({ "{") (labeled_statement "LAB_0004d320:\n      piVar15 = __errno_location();" (statement_identifier "LAB_0004d320") (: ":") (expression_statement "piVar15 = __errno_location();" (assignment_expression "piVar15 = __errno_location()" (identifier "piVar15") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "*piVar15 = 0x4b;" (assignment_expression "*piVar15 = 0x4b" (pointer_expression "*piVar15" (* "*") (identifier "piVar15")) (= "=") (number_literal "0x4b")) (; ";")) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" (identifier "lVar2") (= "=") (identifier "local_8c")) (; ";")) (} "}")) (else_clause "else {\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }" (else "else") (compound_statement "{\n      local_4c = (uint)lVar2;\n      iVar20 = (*param_2)(&local_4c,&local_78);\n      lVar2 = local_8c;\n      if (iVar20 != 0) goto LAB_0004d2a1;\n    }" ({ "{") (expression_statement "local_4c = (uint)lVar2;" (assignment_expression "local_4c = (uint)lVar2" (identifier "local_4c") (= "=") (cast_expression "(uint)lVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar2"))) (; ";")) (expression_statement "iVar20 = (*param_2)(&local_4c,&local_78);" (assignment_expression "iVar20 = (*param_2)(&local_4c,&local_78)" (identifier "iVar20") (= "=") (call_expression "(*param_2)(&local_4c,&local_78)" (parenthesized_expression "(*param_2)" (( "(") (pointer_expression "*param_2" (* "*") (identifier "param_2")) () ")")) (argument_list "(&local_4c,&local_78)" (( "(") (pointer_expression "&local_4c" (& "&") (identifier "local_4c")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) () ")")))) (; ";")) (expression_statement "lVar2 = local_8c;" (assignment_expression "lVar2 = local_8c" (identifier "lVar2") (= "=") (identifier "local_8c")) (; ";")) (if_statement "if (iVar20 != 0) goto LAB_0004d2a1;" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004d2a1;" (goto "goto") (statement_identifier "LAB_0004d2a1") (; ";"))) (} "}")))) (labeled_statement "LAB_0004d32f:\n    local_8c._0_4_ = 0xffffffff;" (statement_identifier "LAB_0004d32f") (: ":") (expression_statement "local_8c._0_4_ = 0xffffffff;" (assignment_expression "local_8c._0_4_ = 0xffffffff" (field_expression "local_8c._0_4_" (identifier "local_8c") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "0xffffffff")) (; ";"))) (} "}")))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n    local_8c = lVar2;\n                    \n    FUN_0004e0c0();\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    local_8c = lVar2;\n                    \n    FUN_0004e0c0();\n  }" ({ "{") (expression_statement "local_8c = lVar2;" (assignment_expression "local_8c = lVar2" (identifier "local_8c") (= "=") (identifier "lVar2")) (; ";")) (expression_statement "FUN_0004e0c0();" (call_expression "FUN_0004e0c0()" (identifier "FUN_0004e0c0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return (int)local_8c;" (return "return") (cast_expression "(int)local_8c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_8c")) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention */

type_1 function_1(type_2 *tp,type_3 *convert,type_4 *offset)

{
  int var_29;
  int var_39;
  type_5 lVar3;
  type_5 lVar4;
  type_5 lVar5;
  type_6 var_4;
  type_6 var_7;
  type_6 var_3;
  type_6 var_15;
  type_6 var_16;
  type_6 var_18;
  type_6 var_20;
  type_6 var_21;
  type_6 var_36;
  type_2 *var_24;
  type_6 var_17;
  int *piVar16;
  int mon;
  type_6 var_5;
  int var_13;
  int var_12;
  int var_22;
  type_6 var_11;
  int var_14;
  type_6 var_37;
  type_6 var_19;
  int var_2;
  int var_1;
  bool bVar25;
  bool var_30;
  type_5 var_9;
  type_7 var_32;
  int var_34;
  int var_27;
  type_6 var_28;
  int var_35;
  int var_31;
  type_6 var_38;
  type_1 x;
  type_7 t;
  type_7 ot;
  type_2 type_2;
  type_2 otm;
  
  var_29 = tp->tm_isdst;
  var_37 = tp->tm_sec;
  var_39 = *(int *)(var_1 + 0x14);
  var_19 = tp->tm_min;
  var_5 = tp->tm_year;
  var_17 = tp->tm_hour;
  var_11 = tp->tm_mday;
  var_2 = tp->tm_mon % 0xc;
  var_3 = var_2 >> 0x1f;
  var_4 = tp->tm_mon / 0xc + var_3;
  var_7 = var_4 + var_5;
  var_12 = ((int)var_4 >> 0x1f) + ((int)var_5 >> 0x1f) + (type_6)var_6(var_4,var_5);
  var_5 = 0;
  if ((var_7 & 3) == 0) {
    var_9 = var_8(var_7,var_12,100,0);
    var_5 = 1;
    if (var_9 == 0) {
      var_5 = var_10(var_7,var_12,100,0);
      var_5 = (type_6)((var_5 & 3) == 1);
    }
  }
  var_31 = 6;
  var_30 = false;
  var_5 = __mon_yday[var_5][var_2 + (var_3 & 0xc)] - 1;
  var_2 = *offset;
  var_3 = var_5 + var_11;
  var_22 = ((int)var_5 >> 0x1f) + ((int)var_11 >> 0x1f) + (type_6)var_6(var_5,var_11);
  var_5 = 0x3b;
  if ((int)var_37 < 0x3c) {
    var_5 = var_37;
  }
  var_11 = 0;
  if (-1 < (int)var_5) {
    var_11 = var_5;
  }
  var_13 = ((var_7 >> 2 | var_12 * 0x40000000) + 0x1db) - (type_6)((var_7 & 3) == 0);
  var_14 = var_13 / 0x19 + (var_13 % 0x19 >> 0x1f);
  var_5 = (var_13 - var_14) + -0x1dd + (var_14 >> 2);
  var_9 = (type_8)(var_7 - 0x46) * 0x16d;
  var_4 = (type_6)var_9;
  var_15 = var_4 + var_3;
  lVar3 = (type_8)(var_5 + var_15) * 0x18;
  var_16 = (type_6)lVar3;
  lVar4 = (type_8)(var_16 + var_17) * 0x3c;
  var_18 = (type_6)lVar4;
  lVar5 = (type_8)(var_18 + var_19) * 0x3c;
  var_20 = (type_6)lVar5;
  var_21 = var_20 + var_11;
  var_36 = var_21 + var_2;
  var_5 = (((int)((type_8)lVar5 >> 0x20) +
             ((int)((type_8)lVar4 >> 0x20) +
              ((int)((type_8)lVar3 >> 0x20) +
               (((int)var_5 >> 0x1f) +
                (int)((type_8)var_9 >> 0x20) + (var_12 + -1 + (type_6)(0x45 < var_7)) * 0x16d +
                var_22 + (type_6)var_6(var_4,var_3) + (type_6)var_6(var_5,var_15)) * 0x18 +
               ((int)var_17 >> 0x1f) + (type_6)var_6(var_16,var_17)) * 0x3c + ((int)var_19 >> 0x1f) +
             (type_6)var_6(var_18,var_19)) * 0x3c + ((int)var_11 >> 0x1f) +
            (type_6)var_6(var_20,var_11)) - (-var_2 >> 0x1f)) - (type_6)(var_21 < (type_6)-var_2);
  var_4 = var_5;
  var_15 = var_36;
  var_28 = var_36;
  t._0_4_ = var_36;
  t._4_4_ = var_5;
  while( true ) {
    var_18 = var_5;
    var_16 = var_28;
    var_24 = var_23(convert,&t,&type_2);
    if (var_24 == (type_2 *)0x0) goto LAB_0004d32f;
    var_38 = type_2.tm_sec;
    var_32 = var_25(var_26(var_22,var_3),var_26(var_19,var_17),var_7,var_12,var_11,type_2.tm_year,
                        type_2.tm_yday,type_2.tm_hour,type_2.tm_min,type_2.tm_sec);
    var_20 = (type_6)var_32;
    var_27 = (int)((type_8)var_32 >> 0x20);
    var_5 = (type_6)t;
    if (var_27 == 0 && var_20 == 0) break;
    if ((var_15 == (type_6)t && var_4 == t._4_4_) && (var_28 != (type_6)t || var_18 != t._4_4_)) {
      var_9 = var_26(t._4_4_,var_28);
      lVar3 = var_26(t._4_4_,(type_6)t);
      if (type_2.tm_isdst < 0) goto LAB_0004d1e8;
      if (var_29 < 0) {
        var_9 = var_26(t._4_4_,var_28);
        lVar3 = var_26(t._4_4_,(type_6)t);
        if (var_30 <= (type_2.tm_isdst != 0)) goto LAB_0004d1e8;
      }
      else {
        var_9 = var_26(t._4_4_,var_28);
        lVar3 = var_26(t._4_4_,(type_6)t);
        if ((var_29 != 0) != (type_2.tm_isdst != 0)) goto LAB_0004d1e8;
      }
    }
    var_31 = var_31 + -1;
    if (var_31 == 0) goto LAB_0004d320;
    var_28 = (type_6)t;
    bVar25 = var_6(var_20,(type_6)t);
    t._0_4_ = var_20 + (type_6)t;
    var_30 = type_2.tm_isdst != 0;
    var_5 = t._4_4_;
    var_4 = var_18;
    var_15 = var_16;
    t._4_4_ = var_27 + t._4_4_ + (type_6)bVar25;
  }
  var_9 = var_26(t._4_4_,var_28);
  lVar3 = var_26(t._4_4_,(type_6)t);
  if ((((var_29 == 0) != (type_2.tm_isdst == 0)) &&
      (var_9 = var_26(t._4_4_,var_28), lVar3 = var_26(t._4_4_,(type_6)t), -1 < var_29)) &&
     (var_9 = var_26(t._4_4_,var_28), lVar3 = var_26(t._4_4_,(type_6)t), -1 < type_2.tm_isdst)) {
    var_34 = 0x92c70;
    do {
      var_35 = 2;
      var_4 = -var_34;
      while( true ) {
        var_5 = (int)var_4 >> 0x1f;
        ot._0_4_ = (type_6)t + var_4;
        ot._4_4_ = t._4_4_ + var_5 + (type_6)var_6((type_6)t,var_4);
        if (-1 < (int)((var_5 ^ ot._4_4_) & ~(t._4_4_ ^ var_5))) {
          var_24 = var_23(convert,&ot,&otm);
          if (var_24 == (type_2 *)0x0) goto LAB_0004d32f;
          if (((var_29 == 0) == (otm.tm_isdst == 0)) || (otm.tm_isdst < 0)) {
            var_32 = var_25(var_26(var_22,var_3),var_26(var_19,var_17),var_7,var_12,var_11,
                                otm.tm_year,otm.tm_yday,otm.tm_hour,otm.tm_min,otm.tm_sec);
            var_9 = var_32 + var_26(ot._4_4_,(int)ot);
            var_5 = (type_6)var_9;
            if ((int)((type_8)var_9 >> 0x20) + (type_6)(0x7fffffff < var_5) == 0) {
              x = var_5;
              var_24 = (*convert)(&x,&type_2);
              if (var_24 != (type_2 *)0x0) {
                var_38 = type_2.tm_sec;
                lVar3 = var_9;
                goto LAB_0004d1e8;
              }
              piVar16 = var_33();
              if (*piVar16 != 0x4b) goto LAB_0004d32f;
            }
          }
        }
        var_4 = var_4 + var_34 * 2;
        if (var_35 == 1) break;
        var_35 = 1;
      }
      var_34 = var_34 + 0x92c70;
    } while (var_34 != 0x100dc400);
    goto LAB_0004d320;
  }
LAB_0004d1e8:
  var_19 = (type_6)((type_8)lVar3 >> 0x20);
  t._0_4_ = (type_6)lVar3;
  t._4_4_ = (type_6)((type_8)var_9 >> 0x20);
  *offset = (var_2 - var_36) + var_5;
  if (var_37 == var_38) {
LAB_0004d2a1:
    tp->tm_sec = type_2.tm_sec;
    tp->tm_min = type_2.tm_min;
    tp->tm_hour = type_2.tm_hour;
    tp->tm_mday = type_2.tm_mday;
    tp->tm_mon = type_2.tm_mon;
    tp->tm_year = type_2.tm_year;
    tp->tm_wday = type_2.tm_wday;
    tp->tm_yday = type_2.tm_yday;
    tp->tm_isdst = type_2.tm_isdst;
    tp->tm_gmtoff = type_2.tm_gmtoff;
    tp->tm_zone = type_2.tm_zone;
  }
  else {
    var_17 = (type_6)((int)var_37 < 1 && var_38 == 0x3c);
    var_4 = var_17 - var_11;
    var_3 = var_37 + var_4;
    var_37 = ((int)var_37 >> 0x1f) + (-(type_6)(var_17 < var_11) - ((int)var_11 >> 0x1f)) +
             (type_6)var_6(var_37,var_4);
    t._0_4_ = var_5 + var_3;
    t._4_4_ = var_19 + var_37 + (type_6)var_6(var_5,var_3);
    if (((int)((var_37 ^ t._4_4_) & ~(var_19 ^ var_37)) < 0) ||
       (t._4_4_ + (0x7fffffff < (type_6)t) != 0)) {
LAB_0004d320:
      piVar16 = var_33();
      *piVar16 = 0x4b;
    }
    else {
      otm.tm_sec = (type_6)t;
      var_24 = (*convert)(&otm.tm_sec,&type_2);
      var_5 = (type_6)t;
      if (var_24 != (type_2 *)0x0) goto LAB_0004d2a1;
    }
LAB_0004d32f:
    var_5 = 0xffffffff;
  }
  if (var_39 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_40();
  }
  return var_5;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

int MASKED(uint *param_1,code *param_2,int *param_3)

{
  uint uVar1;
  longlong lVar2;
  longlong lVar3;
  longlong lVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  int iVar13;
  uint uVar14;
  int *piVar15;
  int iVar16;
  int iVar17;
  uint uVar18;
  int iVar19;
  int iVar20;
  int iVar21;
  uint uVar22;
  int iVar23;
  uint uVar24;
  int iVar25;
  uint uVar26;
  int in_GS_OFFSET;
  bool bVar27;
  longlong lVar28;
  undefined4 uVar29;
  int local_d4;
  int local_d0;
  uint local_c8;
  uint local_90;
  undefined8 local_8c;
  undefined8 local_84;
  uint local_78;
  uint local_74;
  uint local_70;
  uint local_6c;
  uint local_68;
  uint local_64;
  uint local_60;
  uint local_5c;
  uint local_58;
  uint local_54;
  uint local_50;
  uint local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_38;
  undefined4 local_30;
  int local_2c;
  int local_20;
  
  uVar14 = param_1[8];
  uVar26 = *param_1;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  uVar24 = param_1[1];
  uVar18 = param_1[5];
  uVar1 = param_1[2];
  uVar22 = param_1[3];
  iVar25 = (int)param_1[4] % 0xc;
  uVar7 = iVar25 >> 0x1f;
  uVar5 = (int)param_1[4] / 0xc + uVar7;
  uVar6 = uVar5 + uVar18;
  iVar20 = ((int)uVar5 >> 0x1f) + ((int)uVar18 >> 0x1f) + (uint)CARRY4(uVar5,uVar18);
  uVar18 = 0;
  if ((uVar6 & 3) == 0) {
    lVar28 = FUN_0004d870(uVar6,iVar20,100,0);
    uVar18 = 1;
    if (lVar28 == 0) {
      uVar18 = FUN_0004d720(uVar6,iVar20,100,0);
      uVar18 = (uint)((uVar18 & 3) == 1);
    }
  }
  local_d0 = 6;
  bVar27 = false;
  uVar18 = *(ushort *)(&DAT_00056720 + (iVar25 + (uVar7 & 0xc) + uVar18 * 0xd) * 2) - 1;
  iVar25 = *param_3;
  uVar7 = uVar18 + uVar22;
  iVar21 = ((int)uVar18 >> 0x1f) + ((int)uVar22 >> 0x1f) + (uint)CARRY4(uVar18,uVar22);
  uVar18 = 0x3b;
  if ((int)uVar26 < 0x3c) {
    uVar18 = uVar26;
  }
  uVar22 = 0;
  if (-1 < (int)uVar18) {
    uVar22 = uVar18;
  }
  iVar19 = ((uVar6 >> 2 | iVar20 * 0x40000000) + 0x1db) - (uint)((uVar6 & 3) == 0);
  iVar23 = iVar19 / 0x19 + (iVar19 % 0x19 >> 0x1f);
  uVar18 = (iVar19 - iVar23) + -0x1dd + (iVar23 >> 2);
  lVar28 = (ulonglong)(uVar6 - 0x46) * 0x16d;
  uVar5 = (uint)lVar28;
  uVar8 = uVar5 + uVar7;
  lVar2 = (ulonglong)(uVar18 + uVar8) * 0x18;
  uVar9 = (uint)lVar2;
  lVar3 = (ulonglong)(uVar9 + uVar1) * 0x3c;
  uVar10 = (uint)lVar3;
  lVar4 = (ulonglong)(uVar10 + uVar24) * 0x3c;
  uVar11 = (uint)lVar4;
  uVar12 = uVar11 + uVar22;
  iVar19 = uVar12 + iVar25;
  iVar23 = (((int)((ulonglong)lVar4 >> 0x20) +
             ((int)((ulonglong)lVar3 >> 0x20) +
              ((int)((ulonglong)lVar2 >> 0x20) +
               (((int)uVar18 >> 0x1f) +
                (int)((ulonglong)lVar28 >> 0x20) + (iVar20 + -1 + (uint)(0x45 < uVar6)) * 0x16d +
                iVar21 + (uint)CARRY4(uVar5,uVar7) + (uint)CARRY4(uVar18,uVar8)) * 0x18 +
               ((int)uVar1 >> 0x1f) + (uint)CARRY4(uVar9,uVar1)) * 0x3c + ((int)uVar24 >> 0x1f) +
             (uint)CARRY4(uVar10,uVar24)) * 0x3c + ((int)uVar22 >> 0x1f) +
            (uint)CARRY4(uVar11,uVar22)) - (-iVar25 >> 0x1f)) - (uint)(uVar12 < (uint)-iVar25);
  lVar28 = CONCAT44(iVar23,iVar19);
  iVar20 = iVar19;
  local_8c = lVar28;
  while( true ) {
    lVar3 = CONCAT44(iVar23,iVar20);
    iVar23 = (int)((ulonglong)local_8c >> 0x20);
    iVar20 = (int)local_8c;
    local_8c = lVar28;
    iVar13 = FUN_0004cc20();
    lVar2 = local_8c;
    if (iVar13 == 0) goto LAB_0004d32f;
    local_c8 = local_78;
    lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_64,local_5c,local_70,local_74,
                          local_78);
    uVar29 = (undefined4)((ulonglong)lVar28 >> 0x20);
    lVar2 = local_8c;
    if (lVar28 == 0) break;
    if ((local_8c == lVar3) && (local_8c != CONCAT44(iVar23,iVar20))) {
      if ((int)local_58 < 0) goto LAB_0004d1e8;
      if ((int)uVar14 < 0) {
        if (bVar27 <= (local_58 != 0)) goto LAB_0004d1e8;
      }
      else if ((uVar14 != 0) != (local_58 != 0)) goto LAB_0004d1e8;
    }
    local_d0 = local_d0 + -1;
    if (local_d0 == 0) goto LAB_0004d320;
    lVar28 = lVar28 + local_8c;
    bVar27 = local_58 != 0;
  }
  if ((((uVar14 == 0) != (local_58 == 0)) && (-1 < (int)uVar14)) && (-1 < (int)local_58)) {
    iVar20 = 0x92c70;
    do {
      local_d4 = 2;
      iVar23 = iVar20 * 2;
      iVar13 = -iVar20;
      lVar28 = local_8c;
      while( true ) {
        local_8c._4_4_ = (uint)((ulonglong)lVar28 >> 0x20);
        local_84 = lVar28 + iVar13;
        uVar18 = local_8c._4_4_ ^ iVar13 >> 0x1f;
        local_8c = lVar28;
        if (-1 < (int)((iVar13 >> 0x1f ^ (uint)((ulonglong)local_84 >> 0x20)) & ~uVar18)) {
          iVar16 = FUN_0004cc20(iVar20,uVar29,iVar13);
          lVar2 = local_8c;
          if (iVar16 == 0) goto LAB_0004d32f;
          if (((uVar14 == 0) == (local_2c == 0)) || (local_2c < 0)) {
            lVar28 = FUN_0004cac0(uVar7,iVar21,uVar1,uVar24,uVar22,local_38,local_30,local_44,
                                  local_48,local_4c);
            uVar18 = (uint)(lVar28 + local_84);
            iVar16 = (int)((ulonglong)(lVar28 + local_84) >> 0x20);
            if (iVar16 + (uint)(0x7fffffff < uVar18) == 0) {
              local_90 = uVar18;
              iVar17 = (*param_2)(&local_90,&local_78);
              if (iVar17 != 0) {
                local_c8 = local_78;
                lVar2 = CONCAT44(iVar16,uVar18);
                goto LAB_0004d1e8;
              }
              piVar15 = __errno_location();
              lVar2 = local_8c;
              if (*piVar15 != 0x4b) goto LAB_0004d32f;
            }
          }
        }
        iVar13 = iVar13 + iVar23;
        if (local_d4 == 1) break;
        local_d4 = 1;
        lVar28 = local_8c;
      }
      iVar20 = iVar20 + 0x92c70;
    } while (iVar20 != 0x100dc400);
    goto LAB_0004d320;
  }
LAB_0004d1e8:
  local_8c._4_4_ = (uint)((ulonglong)lVar2 >> 0x20);
  local_8c._0_4_ = (int)lVar2;
  *param_3 = (iVar25 - iVar19) + (int)local_8c;
  if (uVar26 == local_c8) {
LAB_0004d2a1:
    local_8c._0_4_ = (int)lVar2;
    *param_1 = local_78;
    param_1[1] = local_74;
    param_1[2] = local_70;
    param_1[3] = local_6c;
    param_1[4] = local_68;
    param_1[5] = local_64;
    param_1[6] = local_60;
    param_1[7] = local_5c;
    param_1[8] = local_58;
    param_1[9] = local_54;
    param_1[10] = local_50;
  }
  else {
    uVar14 = (uint)((int)uVar26 < 1 && local_c8 == 0x3c);
    uVar18 = uVar14 - uVar22;
    uVar24 = ((int)uVar26 >> 0x1f) + (-(uint)(uVar14 < uVar22) - ((int)uVar22 >> 0x1f)) +
             (uint)CARRY4(uVar26,uVar18);
    lVar2 = lVar2 + CONCAT44(uVar24,uVar26 + uVar18);
    uVar26 = (uint)((ulonglong)lVar2 >> 0x20);
    uVar14 = local_8c._4_4_ ^ uVar24;
    local_8c = lVar2;
    if (((int)((uVar24 ^ uVar26) & ~uVar14) < 0) || (uVar26 + (0x7fffffff < (uint)lVar2) != 0)) {
LAB_0004d320:
      piVar15 = __errno_location();
      *piVar15 = 0x4b;
      lVar2 = local_8c;
    }
    else {
      local_4c = (uint)lVar2;
      iVar20 = (*param_2)(&local_4c,&local_78);
      lVar2 = local_8c;
      if (iVar20 != 0) goto LAB_0004d2a1;
    }
LAB_0004d32f:
    local_8c._0_4_ = 0xffffffff;
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
    local_8c = lVar2;
                    /* WARNING: Subroutine does not return */
    FUN_0004e0c0();
  }
  return (int)local_8c;
}

