
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

char * human_readable(uintmax_t n,char *buf,int opts,uintmax_t from_block_size,
                     uintmax_t to_block_size)

{
  char cVar1;
  long lVar2;
  bool bVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  uint uVar7;
  lconv *plVar8;
  char *pcVar9;
  char *pcVar10;
  ulong uVar11;
  ulong uVar12;
  ulong uVar13;
  ulong uVar14;
  char *pcVar15;
  uint uVar16;
  uint uVar17;
  char *__dest;
  char *pcVar18;
  ulong uVar19;
  long lVar20;
  int iVar21;
  byte *pbVar22;
  long in_FS_OFFSET;
  byte bVar23;
  longdouble lVar24;
  longdouble lVar25;
  longdouble lVar26;
  char *local_a8;
  char buf_1 [41];
  
  bVar23 = 0;
  lVar2 = *(long *)(in_FS_OFFSET + 0x28);
  uVar17 = opts & 3;
  uVar4 = opts & 0x20;
  uVar5 = (-(uint)(uVar4 == 0) & 0xffffffe8) + 0x400;
  pcVar15 = buf;
  plVar8 = localeconv();
  pcVar18 = plVar8->decimal_point;
  uVar12 = 0xffffffffffffffff;
  pcVar9 = pcVar18;
  do {
    if (uVar12 == 0) break;
    uVar12 = uVar12 - 1;
    cVar1 = *pcVar9;
    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;
  } while (cVar1 != '\0');
  uVar19 = ~uVar12 - 1;
  if (0xf < ~uVar12 - 2) {
    uVar19 = 1;
    pcVar18 = ".";
  }
  pbVar22 = (byte *)plVar8->grouping;
  uVar12 = 0xffffffffffffffff;
  pcVar9 = plVar8->thousands_sep;
  do {
    if (uVar12 == 0) break;
    uVar12 = uVar12 - 1;
    cVar1 = *pcVar9;
    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;
  } while (cVar1 != '\0');
  pcVar9 = "";
  if (~uVar12 - 1 < 0x11) {
    pcVar9 = plVar8->thousands_sep;
  }
  pcVar10 = buf + 0x287;
  if (from_block_size < to_block_size) {
    if ((from_block_size != 0) && (to_block_size % from_block_size == 0)) {
      uVar11 = to_block_size / from_block_size;
      uVar14 = n / uVar11;
      uVar12 = (n % uVar11) * 10;
      uVar13 = (uVar12 % uVar11) * 2;
      uVar12 = uVar12 / uVar11 & 0xffffffff;
      if (uVar13 < uVar11) {
        uVar16 = (uint)(uVar13 != 0);
      }
      else {
        uVar16 = (uVar11 < uVar13) + 2;
      }
      goto LAB_00105103;
    }
LAB_00104dfa:
    lVar24 = (longdouble)(long)from_block_size;
    if ((long)from_block_size < 0) {
      lVar24 = lVar24 + (longdouble)_DAT_0010b274;
    }
    lVar25 = (longdouble)(long)to_block_size;
    if ((long)to_block_size < 0) {
      lVar25 = lVar25 + (longdouble)_DAT_0010b274;
    }
    lVar26 = (longdouble)(long)n;
    if ((long)n < 0) {
      lVar26 = lVar26 + (longdouble)_DAT_0010b274;
    }
    lVar26 = lVar26 * (lVar24 / lVar25);
    if ((opts & 0x10U) == 0) {
      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26);
      __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");
      iVar21 = -1;
      uVar12 = 0xffffffffffffffff;
      pcVar18 = buf;
      do {
        if (uVar12 == 0) break;
        uVar12 = uVar12 - 1;
        cVar1 = *pcVar18;
        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;
      } while (cVar1 != '\0');
      uVar12 = ~uVar12 - 1;
      lVar20 = 0;
    }
    else {
      lVar24 = (longdouble)1;
      iVar21 = 0;
      do {
        lVar24 = lVar24 * (longdouble)uVar5;
        iVar21 = iVar21 + 1;
        if (lVar26 < (longdouble)uVar5 * lVar24) break;
      } while (iVar21 < 8);
      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24);
      __sprintf_chk(buf,1,0xffffffffffffffff,"%.1Lf");
      uVar13 = 0xffffffffffffffff;
      pcVar18 = buf;
      do {
        if (uVar13 == 0) break;
        uVar13 = uVar13 - 1;
        cVar1 = *pcVar18;
        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;
      } while (cVar1 != '\0');
      uVar13 = ~uVar13;
      uVar12 = uVar13 - 1;
      lVar20 = uVar19 + 1;
      if ((uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||
         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))) {
        adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));
        __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");
        uVar12 = 0xffffffffffffffff;
        pcVar18 = buf;
        do {
          if (uVar12 == 0) break;
          uVar12 = uVar12 - 1;
          cVar1 = *pcVar18;
          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;
        } while (cVar1 != '\0');
        uVar12 = ~uVar12 - 1;
        lVar20 = 0;
      }
    }
    __dest = pcVar10 + -uVar12;
    memmove(__dest,buf,uVar12);
    pcVar15 = __dest + (uVar12 - lVar20);
  }
  else {
    if ((from_block_size % to_block_size != 0) ||
       (uVar14 = (from_block_size / to_block_size) * n,
       uVar14 / (from_block_size / to_block_size) != n)) goto LAB_00104dfa;
    uVar16 = 0;
    uVar12 = 0;
LAB_00105103:
    uVar7 = (uint)uVar12;
    iVar21 = -1;
    pcVar15 = pcVar10;
    if ((opts & 0x10U) != 0) {
      uVar13 = (ulong)uVar5;
      if (uVar14 < uVar13) {
        iVar21 = 0;
      }
      else {
        iVar21 = 0;
        uVar11 = uVar14;
        do {
          uVar14 = uVar11 / uVar13;
          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;
          uVar7 = uVar6 / uVar5;
          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;
          uVar12 = (ulong)uVar7;
          if (uVar6 < uVar5) {
            uVar16 = (uint)(uVar16 + uVar6 != 0);
          }
          else {
            uVar16 = (uVar5 < uVar16 + uVar6) + 2;
          }
          iVar21 = iVar21 + 1;
        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));
        if (uVar14 < 10) {
          if (uVar17 == 1) {
            bVar3 = 2 < (uVar7 & 1) + uVar16;
          }
          else {
            bVar3 = uVar17 == 0 && uVar16 != 0;
          }
          if (bVar3) {
            uVar7 = uVar7 + 1;
            if (uVar7 == 10) {
              uVar14 = uVar14 + 1;
              if (uVar14 < 10) {
                uVar16 = 0;
                uVar7 = 0;
                goto LAB_00105494;
              }
              uVar16 = 0;
              uVar7 = 0;
              goto LAB_00105238;
            }
          }
          else if (uVar7 == 0) {
LAB_00105494:
            if ((opts & 8U) != 0) {
              uVar7 = 0;
              goto LAB_00105238;
            }
          }
          buf[0x286] = (char)uVar7 + '0';
          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);
          uVar16 = 0;
          uVar7 = 0;
          pcVar15 = buf + (0x286 - uVar19);
        }
      }
    }
LAB_00105238:
    if (uVar17 == 1) {
      bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0));
    }
    else {
      bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);
    }
    __dest = pcVar15;
    if ((((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14)) &&
       (iVar21 < 8)) {
      iVar21 = iVar21 + 1;
      if ((opts & 8U) == 0) {
        pcVar15[-1] = '0';
        pcVar15 = pcVar15 + ~uVar19;
        memcpy(pcVar15,pcVar18,uVar19);
      }
      __dest = pcVar15 + -1;
      pcVar15[-1] = '1';
    }
    else {
      do {
        __dest = __dest + -1;
        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';
        bVar3 = 9 < uVar14;
        uVar14 = uVar14 / 10;
      } while (bVar3);
    }
  }
  if ((opts & 4U) != 0) {
    uVar13 = (long)pcVar15 - (long)__dest;
    uVar12 = 0xffffffffffffffff;
    uVar19 = 0xffffffffffffffff;
    pcVar18 = pcVar9;
    do {
      if (uVar19 == 0) break;
      uVar19 = uVar19 - 1;
      cVar1 = *pcVar18;
      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;
    } while (cVar1 != '\0');
    __memcpy_chk(buf_1,__dest,uVar13,0x29);
    while( true ) {
      bVar23 = *pbVar22;
      if (bVar23 != 0) {
        uVar12 = (ulong)bVar23;
        if (0x7e < bVar23) {
          uVar12 = uVar13;
        }
        pbVar22 = pbVar22 + 1;
      }
      if (uVar13 < uVar12) {
        uVar12 = uVar13;
      }
      __dest = pcVar15 + -uVar12;
      uVar13 = uVar13 - uVar12;
      memcpy(__dest,buf_1 + uVar13,uVar12);
      if (uVar13 == 0) break;
      pcVar15 = __dest + -(~uVar19 - 1);
      memcpy(pcVar15,pcVar9,~uVar19 - 1);
    }
  }
  local_a8 = pcVar10;
  if ((opts & 0x80U) == 0) goto LAB_001050c5;
  if (iVar21 < 0) {
    iVar21 = 1;
    uVar12 = 1;
    if (to_block_size < 2) {
      iVar21 = 0;
      goto LAB_001050b0;
    }
    do {
      uVar12 = uVar12 * uVar5;
      if (to_block_size <= uVar12) goto LAB_001050b0;
      iVar21 = iVar21 + 1;
    } while (iVar21 != 8);
    if ((opts & 0x40U) != 0) goto LAB_0010540f;
LAB_00105427:
    if ((iVar21 == 1) && (uVar4 == 0)) {
      *pcVar10 = 'k';
      local_a8 = pcVar10 + 1;
      goto joined_r0x001054bc;
    }
    local_a8 = pcVar10 + 1;
    *pcVar10 = ""[iVar21];
    if ((opts & 0x100U) == 0) goto LAB_001050c5;
    if (uVar4 != 0) {
      pcVar10[1] = 'i';
      local_a8 = pcVar10 + 2;
    }
  }
  else {
LAB_001050b0:
    if ((opts & 0x100U) == 0 && iVar21 == 0) goto LAB_001050c5;
    if ((opts & 0x40U) != 0) {
LAB_0010540f:
      pcVar10 = buf + 0x288;
      buf[0x287] = ' ';
    }
    local_a8 = pcVar10;
    if (iVar21 != 0) goto LAB_00105427;
joined_r0x001054bc:
    if ((opts & 0x100U) == 0) goto LAB_001050c5;
  }
  *local_a8 = 'B';
  local_a8 = local_a8 + 1;
LAB_001050c5:
  *local_a8 = '\0';
  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {
    return __dest;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

char * FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)

{
  char cVar1;
  bool bVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  lconv *plVar7;
  char *pcVar8;
  char *pcVar9;
  ulong uVar10;
  ulong uVar11;
  ulong uVar12;
  ulong uVar13;
  char *__dest;
  uint uVar14;
  uint uVar15;
  char *__dest_00;
  char *pcVar16;
  ulong uVar17;
  long lVar18;
  int iVar19;
  byte *pbVar20;
  long in_FS_OFFSET;
  byte bVar21;
  longdouble lVar22;
  longdouble lVar23;
  longdouble lVar24;
  longdouble lVar25;
  char *local_a8;
  undefined1 local_78 [56];
  long local_40;
  
  bVar21 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  uVar15 = param_3 & 3;
  uVar3 = param_3 & 0x20;
  uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;
  plVar7 = localeconv();
  pcVar16 = plVar7->decimal_point;
  uVar10 = 0xffffffffffffffff;
  pcVar8 = pcVar16;
  do {
    if (uVar10 == 0) break;
    uVar10 = uVar10 - 1;
    cVar1 = *pcVar8;
    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;
  } while (cVar1 != '\0');
  uVar17 = ~uVar10 - 1;
  if (0xf < ~uVar10 - 2) {
    uVar17 = 1;
    pcVar16 = ".";
  }
  pbVar20 = (byte *)plVar7->grouping;
  uVar10 = 0xffffffffffffffff;
  pcVar8 = plVar7->thousands_sep;
  do {
    if (uVar10 == 0) break;
    uVar10 = uVar10 - 1;
    cVar1 = *pcVar8;
    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;
  } while (cVar1 != '\0');
  pcVar8 = "";
  if (~uVar10 - 1 < 0x11) {
    pcVar8 = plVar7->thousands_sep;
  }
  pcVar9 = param_2 + 0x287;
  if (param_4 < param_5) {
    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;
    param_4 = param_5 / param_4;
    uVar12 = param_1 / param_4;
    uVar10 = (param_1 % param_4) * 10;
    uVar11 = (uVar10 % param_4) * 2;
    uVar10 = uVar10 / param_4 & 0xffffffff;
    if (uVar11 < param_4) {
      uVar14 = (uint)(uVar11 != 0);
    }
    else {
      uVar14 = (param_4 < uVar11) + 2;
    }
LAB_00105103:
    uVar6 = (uint)uVar10;
    iVar19 = -1;
    __dest = pcVar9;
    if ((param_3 & 0x10) != 0) {
      uVar11 = (ulong)uVar4;
      if (uVar12 < uVar11) {
        iVar19 = 0;
      }
      else {
        iVar19 = 0;
        uVar13 = uVar12;
        do {
          uVar12 = uVar13 / uVar11;
          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;
          uVar6 = uVar5 / uVar4;
          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;
          uVar10 = (ulong)uVar6;
          if (uVar5 < uVar4) {
            uVar14 = (uint)(uVar14 + uVar5 != 0);
          }
          else {
            uVar14 = (uVar4 < uVar14 + uVar5) + 2;
          }
          iVar19 = iVar19 + 1;
        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));
        if (uVar12 < 10) {
          if (uVar15 == 1) {
            bVar2 = 2 < (uVar6 & 1) + uVar14;
          }
          else {
            bVar2 = uVar15 == 0 && uVar14 != 0;
          }
          if (bVar2) {
            uVar6 = uVar6 + 1;
            if (uVar6 == 10) {
              uVar12 = uVar12 + 1;
              if (uVar12 < 10) {
                uVar14 = 0;
                uVar6 = 0;
                goto LAB_00105494;
              }
              uVar14 = 0;
              uVar6 = 0;
              goto LAB_00105238;
            }
          }
          else if (uVar6 == 0) {
LAB_00105494:
            if ((param_3 & 8) != 0) {
              uVar6 = 0;
              goto LAB_00105238;
            }
          }
          param_2[0x286] = (char)uVar6 + '0';
          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);
          uVar14 = 0;
          uVar6 = 0;
          __dest = param_2 + (0x286 - uVar17);
        }
      }
    }
LAB_00105238:
    if (uVar15 == 1) {
      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));
    }
    else {
      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);
    }
    __dest_00 = __dest;
    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&
       (iVar19 < 8)) {
      iVar19 = iVar19 + 1;
      if ((param_3 & 8) == 0) {
        __dest[-1] = '0';
        __dest = __dest + ~uVar17;
        memcpy(__dest,pcVar16,uVar17);
      }
      __dest_00 = __dest + -1;
      __dest[-1] = '1';
    }
    else {
      do {
        __dest_00 = __dest_00 + -1;
        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';
        bVar2 = 9 < uVar12;
        uVar12 = uVar12 / 10;
      } while (bVar2);
    }
  }
  else {
    if ((param_4 % param_5 == 0) &&
       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {
      uVar14 = 0;
      uVar10 = 0;
      goto LAB_00105103;
    }
LAB_00104dfa:
    lVar22 = (longdouble)(long)param_4;
    if ((long)param_4 < 0) {
      lVar22 = lVar22 + (longdouble)_DAT_0010b274;
    }
    lVar23 = (longdouble)(long)param_5;
    if ((long)param_5 < 0) {
      lVar23 = lVar23 + (longdouble)_DAT_0010b274;
    }
    lVar24 = (longdouble)(long)param_1;
    if ((long)param_1 < 0) {
      lVar24 = lVar24 + (longdouble)_DAT_0010b274;
    }
    if ((param_3 & 0x10) == 0) {
      FUN_00104c0d(uVar15);
      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");
      iVar19 = -1;
      uVar10 = 0xffffffffffffffff;
      pcVar16 = param_2;
      do {
        if (uVar10 == 0) break;
        uVar10 = uVar10 - 1;
        cVar1 = *pcVar16;
        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;
      } while (cVar1 != '\0');
      uVar10 = ~uVar10 - 1;
      lVar18 = 0;
    }
    else {
      lVar25 = (longdouble)1;
      iVar19 = 0;
      do {
        lVar25 = lVar25 * (longdouble)uVar4;
        iVar19 = iVar19 + 1;
        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;
      } while (iVar19 < 8);
      FUN_00104c0d(uVar15);
      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");
      uVar11 = 0xffffffffffffffff;
      pcVar16 = param_2;
      do {
        if (uVar11 == 0) break;
        uVar11 = uVar11 - 1;
        cVar1 = *pcVar16;
        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;
      } while (cVar1 != '\0');
      uVar10 = ~uVar11 - 1;
      lVar18 = uVar17 + 1;
      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||
         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {
        FUN_00104c0d(uVar15);
        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");
        uVar10 = 0xffffffffffffffff;
        pcVar16 = param_2;
        do {
          if (uVar10 == 0) break;
          uVar10 = uVar10 - 1;
          cVar1 = *pcVar16;
          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;
        } while (cVar1 != '\0');
        uVar10 = ~uVar10 - 1;
        lVar18 = 0;
      }
    }
    __dest_00 = pcVar9 + -uVar10;
    memmove(__dest_00,param_2,uVar10);
    __dest = __dest_00 + (uVar10 - lVar18);
  }
  if ((param_3 & 4) != 0) {
    uVar11 = (long)__dest - (long)__dest_00;
    uVar10 = 0xffffffffffffffff;
    uVar17 = 0xffffffffffffffff;
    pcVar16 = pcVar8;
    do {
      if (uVar17 == 0) break;
      uVar17 = uVar17 - 1;
      cVar1 = *pcVar16;
      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;
    } while (cVar1 != '\0');
    __memcpy_chk(local_78,__dest_00,uVar11,0x29);
    while( true ) {
      bVar21 = *pbVar20;
      if (bVar21 != 0) {
        uVar10 = (ulong)bVar21;
        if (0x7e < bVar21) {
          uVar10 = uVar11;
        }
        pbVar20 = pbVar20 + 1;
      }
      if (uVar11 < uVar10) {
        uVar10 = uVar11;
      }
      __dest_00 = __dest + -uVar10;
      uVar11 = uVar11 - uVar10;
      memcpy(__dest_00,local_78 + uVar11,uVar10);
      if (uVar11 == 0) break;
      __dest = __dest_00 + -(~uVar17 - 1);
      memcpy(__dest,pcVar8,~uVar17 - 1);
    }
  }
  local_a8 = pcVar9;
  if ((param_3 & 0x80) == 0) goto LAB_001050c5;
  if (iVar19 < 0) {
    iVar19 = 1;
    uVar10 = 1;
    if (param_5 < 2) {
      iVar19 = 0;
      goto LAB_001050b0;
    }
    do {
      uVar10 = uVar10 * uVar4;
      if (param_5 <= uVar10) goto LAB_001050b0;
      iVar19 = iVar19 + 1;
    } while (iVar19 != 8);
    if ((param_3 & 0x40) != 0) goto LAB_0010540f;
LAB_00105427:
    if ((iVar19 == 1) && (uVar3 == 0)) {
      *pcVar9 = 'k';
      local_a8 = pcVar9 + 1;
      goto joined_r0x001054bc;
    }
    local_a8 = pcVar9 + 1;
    *pcVar9 = (&DAT_0010b240)[iVar19];
    if ((param_3 & 0x100) == 0) goto LAB_001050c5;
    if (uVar3 != 0) {
      pcVar9[1] = 'i';
      local_a8 = pcVar9 + 2;
    }
  }
  else {
LAB_001050b0:
    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;
    if ((param_3 & 0x40) != 0) {
LAB_0010540f:
      pcVar9 = param_2 + 0x288;
      param_2[0x287] = ' ';
    }
    local_a8 = pcVar9;
    if (iVar19 != 0) goto LAB_00105427;
joined_r0x001054bc:
    if ((param_3 & 0x100) == 0) goto LAB_001050c5;
  }
  *local_a8 = 'B';
  local_a8 = local_a8 + 1;
LAB_001050c5:
  *local_a8 = '\0';
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return __dest_00;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x98
MOV R15,RDI
MOV qword ptr [RSP + 0x10],RSI
MOV EAX,EDX
MOV dword ptr [RSP + 0xc],EDX
MOV RBP,RCX
MOV RBX,R8
MOV qword ptr [RSP + 0x28],R8
MOV RCX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x88],RCX
XOR ECX,ECX
MOV R12D,EDX
AND R12D,0x3
AND EAX,0x20
MOV dword ptr [RSP + 0x44],EAX
CMP EAX,0x1
SBB EAX,EAX
AND EAX,0xffffffe8
ADD EAX,0x400
MOV dword ptr [RSP + 0x40],EAX
CALL 0x001020e0
MOV RDX,RAX
MOV R13,qword ptr [RAX]
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,R13
SCASB.REPNE RDI
NOT RCX
LEA R14,[RCX + -0x1]
SUB RCX,0x2
CMP RCX,0x10
MOV EAX,0x1
CMOVNC R14,RAX
LEA RAX,[0x10a060]
CMOVNC R13,RAX
MOV RDI,qword ptr [RDX + 0x10]
MOV qword ptr [RSP + 0x48],RDI
MOV RDI,qword ptr [RDX + 0x8]
MOV R11,RDI
MOV RCX,-0x1
MOV EAX,0x0
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
SUB RAX,0x1
CMP RAX,0x11
LEA RAX,[0x10baf0]
CMOVC RAX,R11
MOV qword ptr [RSP + 0x18],RAX
MOV RAX,qword ptr [RSP + 0x10]
ADD RAX,0x287
MOV qword ptr [RSP + 0x20],RAX
CMP RBX,RBP
JA 0x00104f80
MOV RAX,RBP
MOV EDX,0x0
DIV RBX
TEST RDX,RDX
JNZ 0x00104dfa
MOV RAX,RBP
MOV EDX,0x0
DIV RBX
MOV RCX,RAX
MOV RBX,RAX
IMUL RBX,R15
MOV RAX,RBX
MOV EDX,0x0
DIV RCX
CMP RAX,R15
JZ 0x001050f9
MOV qword ptr [RSP + 0x30],RBP
FILD qword ptr [RSP + 0x30]
TEST RBP,RBP
JS 0x00104ff6
MOV RAX,qword ptr [RSP + 0x28]
MOV qword ptr [RSP + 0x30],RAX
FILD qword ptr [RSP + 0x30]
TEST RAX,RAX
JS 0x00105001
FDIVP
MOV qword ptr [RSP + 0x30],R15
FILD qword ptr [RSP + 0x30]
TEST R15,R15
JS 0x0010500c
FMULP
TEST byte ptr [RSP + 0xc],0x10
JZ 0x00105017
FLD1
MOV R15D,0x0
MOV EAX,dword ptr [RSP + 0x40]
MOV qword ptr [RSP + 0x30],RAX
FILD qword ptr [RSP + 0x30]
FMUL ST1
ADD R15D,0x1
FLD ST0
FMUL ST2
FXCH ST3
FCOMI ST0,ST3
FSTP ST3
JC 0x00104e75
CMP R15D,0x7
JLE 0x00104e59
FSTP ST0
JMP 0x00104e77
FSTP ST0
FDIVP
FLD ST0
FSTP tword ptr [RSP + 0x30]
LEA RSP,[RSP + -0x10]
FSTP tword ptr [RSP]
MOV EDI,R12D
CALL 0x00104c0d
FSTP tword ptr [RSP]
LEA RCX,[0x10b1e4]
MOV RDX,-0x1
MOV ESI,0x1
MOV RBX,qword ptr [RSP + 0x20]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102500
MOV RCX,-0x1
MOV EAX,0x0
MOV qword ptr [RSP + 0x20],RBX
MOV RDI,RBX
SCASB.REPNE RDI
MOV RSI,RCX
NOT RSI
LEA RBP,[RSI + -0x1]
ADD R14,0x1
ADD RSP,0x10
CMP dword ptr [RSP + 0x44],0x0
SETZ AL
MOVZX EAX,AL
LEA RAX,[R14 + RAX*0x1 + 0x1]
CMP RAX,RBP
JC 0x00104f0a
TEST byte ptr [RSP + 0xc],0x8
JZ 0x00105077
CMP byte ptr [RBX + RBP*0x1 + -0x1],0x30
JNZ 0x00105077
FLD tword ptr [RSP + 0x30]
FLD tword ptr [0x0010b260]
FMULP
LEA RSP,[RSP + -0x10]
FSTP tword ptr [RSP]
MOV EDI,R12D
CALL 0x00104c0d
FLD tword ptr [0x0010b260]
FDIVP
FSTP tword ptr [RSP]
LEA RCX,[0x10b1de]
MOV RDX,-0x1
MOV ESI,0x1
MOV RBX,qword ptr [RSP + 0x20]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102500
MOV RCX,-0x1
MOV EAX,0x0
MOV RDI,RBX
SCASB.REPNE RDI
MOV RSI,RCX
NOT RSI
LEA RBP,[RSI + -0x1]
ADD RSP,0x10
MOV R14D,0x0
JMP 0x00105077
TEST RBP,RBP
JZ 0x00104dfa
MOV RAX,qword ptr [RSP + 0x28]
MOV EDX,0x0
DIV RBP
TEST RDX,RDX
JNZ 0x00104dfa
MOV RAX,qword ptr [RSP + 0x28]
MOV EDX,0x0
DIV RBP
MOV RSI,RAX
MOV RAX,R15
MOV EDX,0x0
DIV RSI
MOV RBX,RAX
LEA RAX,[RDX + RDX*0x4]
ADD RAX,RAX
MOV EDX,0x0
DIV RSI
ADD RDX,RDX
MOV ECX,EAX
CMP RSI,RDX
JBE 0x00104fe6
TEST RDX,RDX
SETNZ SIL
MOVZX ESI,SIL
JMP 0x00105103
SETC SIL
MOVZX ESI,SIL
ADD ESI,0x2
JMP 0x00105103
FADD dword ptr [0x0010b274]
JMP 0x00104e0c
FADD dword ptr [0x0010b274]
JMP 0x00104e23
FADD dword ptr [0x0010b274]
JMP 0x00104e37
LEA RSP,[RSP + -0x10]
FSTP tword ptr [RSP]
MOV EDI,R12D
CALL 0x00104c0d
FSTP tword ptr [RSP]
LEA RCX,[0x10b1de]
MOV RDX,-0x1
MOV ESI,0x1
MOV RBX,qword ptr [RSP + 0x20]
MOV RDI,RBX
MOV EAX,0x0
CALL 0x00102500
MOV R15,-0x1
MOV EAX,0x0
MOV RCX,R15
MOV RDI,RBX
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA RBP,[RAX + R15*0x1]
ADD RSP,0x10
MOV R14D,0x0
MOV R12,qword ptr [RSP + 0x20]
SUB R12,RBP
MOV RDX,RBP
MOV RSI,qword ptr [RSP + 0x10]
MOV RDI,R12
CALL 0x001023f0
SUB RBP,R14
ADD RBP,R12
TEST byte ptr [RSP + 0xc],0x4
JNZ 0x00105306
TEST byte ptr [RSP + 0xc],0x80
JZ 0x001050c5
TEST R15D,R15D
JS 0x001053ae
MOV EDX,dword ptr [RSP + 0xc]
AND EDX,0x100
MOV EAX,EDX
OR EAX,R15D
JNZ 0x00105403
MOV RAX,qword ptr [RSP + 0x20]
MOV byte ptr [RAX],0x0
MOV RAX,R12
MOV RSI,qword ptr [RSP + 0x88]
XOR RSI,qword ptr FS:[0x28]
JNZ 0x001054c9
ADD RSP,0x98
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV ESI,0x0
MOV ECX,0x0
MOV RBP,qword ptr [RSP + 0x20]
MOV R15D,0xffffffff
MOV EAX,dword ptr [RSP + 0xc]
AND EAX,0x10
MOV dword ptr [RSP + 0x30],EAX
JZ 0x00105238
MOV R8D,dword ptr [RSP + 0x40]
MOV EDI,R8D
CMP RDI,RBX
JA 0x0010522d
MOV R15D,0x0
JMP 0x00105157
ADD ESI,EDX
CMP ESI,R8D
SETA SIL
MOVZX ESI,SIL
ADD ESI,0x2
ADD R15D,0x1
CMP R15D,0x7
JG 0x00105190
CMP RDI,R9
JA 0x00105190
MOV RAX,RBX
MOV EDX,0x0
DIV RDI
MOV R9,RAX
LEA EAX,[RDX + RDX*0x4]
LEA EAX,[RCX + RAX*0x2]
MOV EDX,0x0
DIV R8D
MOV ECX,ESI
SAR ECX,0x1
LEA EDX,[RCX + RDX*0x2]
MOV RBX,R9
MOV ECX,EAX
CMP R8D,EDX
JBE 0x00105138
ADD ESI,EDX
SETNZ SIL
MOVZX ESI,SIL
JMP 0x00105148
MOV RBP,qword ptr [RSP + 0x20]
CMP RBX,0x9
JA 0x00105238
CMP R12D,0x1
JZ 0x001051f4
TEST R12D,R12D
SETZ AL
TEST ESI,ESI
SETG DL
AND EAX,EDX
TEST AL,AL
JZ 0x0010548c
ADD ECX,0x1
CMP ECX,0xa
JZ 0x00105203
MOV RAX,qword ptr [RSP + 0x10]
LEA RBP,[RAX + 0x286]
ADD ECX,0x30
MOV byte ptr [RAX + 0x286],CL
SUB RBP,R14
MOV RDX,R14
MOV RSI,R13
MOV RDI,RBP
CALL 0x001022d0
MOV ESI,0x0
MOV ECX,0x0
JMP 0x00105238
MOV EAX,ECX
AND EAX,0x1
ADD EAX,ESI
CMP EAX,0x2
SETG AL
JMP 0x001051b2
ADD RBX,0x1
CMP RBX,0x9
JBE 0x0010521e
MOV RBP,qword ptr [RSP + 0x20]
MOV ESI,0x0
MOV ECX,0x0
JMP 0x00105238
MOV ESI,0x0
MOV ECX,0x0
JMP 0x00105494
MOV RBP,qword ptr [RSP + 0x20]
MOV R15D,0x0
CMP R12D,0x1
JZ 0x00105282
MOV EAX,0x0
TEST R12D,R12D
JNZ 0x00105252
ADD ECX,ESI
TEST ECX,ECX
SETG AL
MOVZX EAX,AL
AND EAX,0x1
TEST AL,AL
JZ 0x00105273
ADD RBX,0x1
CMP dword ptr [RSP + 0x30],0x0
JZ 0x00105273
MOV EAX,dword ptr [RSP + 0x40]
CMP RAX,RBX
JNZ 0x00105273
CMP R15D,0x7
JLE 0x0010529e
MOV R12,RBP
MOV RCX,-0x3333333333333333
JMP 0x001052d6
MOV RAX,RBX
AND EAX,0x1
MOVSXD RSI,ESI
ADD RAX,RSI
SETNZ AL
MOVZX EAX,AL
ADD ECX,EAX
CMP ECX,0x5
SETG AL
JMP 0x00105255
ADD R15D,0x1
TEST byte ptr [RSP + 0xc],0x8
JZ 0x001052b6
LEA R12,[RBP + -0x1]
MOV byte ptr [RBP + -0x1],0x31
JMP 0x00105095
MOV byte ptr [RBP + -0x1],0x30
MOV RAX,R14
NOT RAX
ADD RBP,RAX
MOV RDX,R14
MOV RSI,R13
MOV RDI,RBP
CALL 0x001022d0
JMP 0x001052a9
MOV RBX,RDX
SUB R12,0x1
MOV RAX,RBX
MUL RCX
SHR RDX,0x3
LEA RAX,[RDX + RDX*0x4]
ADD RAX,RAX
MOV RDI,RBX
SUB RDI,RAX
MOV RAX,RDI
ADD EAX,0x30
MOV byte ptr [R12],AL
CMP RBX,0x9
JA 0x001052d3
JMP 0x00105095
MOV R13,RBP
SUB R13,R12
MOV RBX,-0x1
MOV EAX,0x0
MOV RCX,RBX
MOV RDI,qword ptr [RSP + 0x18]
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA R14,[RAX + RBX*0x1]
LEA RDI,[RSP + 0x50]
MOV ECX,0x29
MOV RDX,R13
MOV RSI,R12
CALL 0x001022c0
LEA RAX,[RSP + 0x50]
MOV dword ptr [RSP + 0x30],R15D
MOV R12,RBP
MOV R15,qword ptr [RSP + 0x48]
MOV RBP,RAX
JMP 0x0010538d
CMP RBX,R13
CMOVA RBX,R13
SUB R12,RBX
SUB R13,RBX
LEA RSI,[RBP + R13*0x1]
MOV RDX,RBX
MOV RDI,R12
CALL 0x001022d0
TEST R13,R13
JZ 0x001053a4
SUB R12,R14
MOV RDX,R14
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,R12
CALL 0x001022d0
MOVZX EAX,byte ptr [R15]
TEST AL,AL
JZ 0x00105358
MOVZX EBX,AL
CMP AL,0x7f
CMOVNC RBX,R13
ADD R15,0x1
JMP 0x00105358
MOV R15D,dword ptr [RSP + 0x30]
JMP 0x001050a0
MOV R15D,0x1
MOV EAX,0x1
MOV EDX,dword ptr [RSP + 0x40]
MOV RCX,qword ptr [RSP + 0x28]
CMP qword ptr [RSP + 0x28],0x1
JBE 0x001053f8
IMUL RAX,RDX
CMP RCX,RAX
JBE 0x001050b0
ADD R15D,0x1
CMP R15D,0x8
JNZ 0x001053ca
MOV EAX,dword ptr [RSP + 0xc]
MOV EDX,EAX
AND EDX,0x100
TEST AL,0x40
JNZ 0x0010540f
MOV RAX,qword ptr [RSP + 0x20]
JMP 0x00105427
MOV R15D,0x0
JMP 0x001050b0
MOV RAX,qword ptr [RSP + 0x20]
TEST byte ptr [RSP + 0xc],0x40
JZ 0x00105422
MOV RSI,qword ptr [RSP + 0x10]
LEA RAX,[RSI + 0x288]
MOV byte ptr [RSI + 0x287],0x20
TEST R15D,R15D
JZ 0x0010546d
CMP R15D,0x1
JNZ 0x00105434
CMP dword ptr [RSP + 0x44],0x0
JZ 0x001054ae
LEA RSI,[RAX + 0x1]
MOV qword ptr [RSP + 0x20],RSI
MOVSXD RCX,R15D
LEA RSI,[0x10b240]
MOVZX ECX,byte ptr [RSI + RCX*0x1]
MOV byte ptr [RAX],CL
TEST EDX,EDX
JZ 0x001050c5
CMP dword ptr [RSP + 0x44],0x0
JZ 0x00105466
MOV byte ptr [RAX + 0x1],0x69
LEA RAX,[RAX + 0x2]
JMP 0x00105471
MOV RAX,qword ptr [RSP + 0x20]
JMP 0x00105471
TEST EDX,EDX
JZ 0x00105482
LEA RSI,[RAX + 0x1]
MOV qword ptr [RSP + 0x20],RSI
MOV byte ptr [RAX],0x42
JMP 0x001050c5
MOV qword ptr [RSP + 0x20],RAX
JMP 0x001050c5
TEST ECX,ECX
JNZ 0x001051c2
TEST byte ptr [RSP + 0xc],0x8
JZ 0x001051c2
MOV RBP,qword ptr [RSP + 0x20]
MOV ECX,0x0
JMP 0x00105238
LEA RSI,[RAX + 0x1]
MOV qword ptr [RSP + 0x20],RSI
MOV byte ptr [RAX],0x6b
TEST EDX,EDX
JZ 0x001050c5
MOV RAX,qword ptr [RSP + 0x20]
JMP 0x00105471
CALL 0x00102180
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nchar * FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)\n\n{\n  char cVar1;\n  bool bVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  lconv *plVar7;\n  char *pcVar8;\n  char *pcVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  char *__dest;\n  uint uVar14;\n  uint uVar15;\n  char *__dest_00;\n  char *pcVar16;\n  ulong uVar17;\n  long lVar18;\n  int iVar19;\n  byte *pbVar20;\n  long in_FS_OFFSET;\n  byte bVar21;\n  longdouble lVar22;\n  longdouble lVar23;\n  longdouble lVar24;\n  longdouble lVar25;\n  char *local_a8;\n  undefined1 local_78 [56];\n  long local_40;\n  \n  bVar21 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar15 = param_3 & 3;\n  uVar3 = param_3 & 0x20;\n  uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;\n  plVar7 = localeconv();\n  pcVar16 = plVar7->decimal_point;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = pcVar16;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  uVar17 = ~uVar10 - 1;\n  if (0xf < ~uVar10 - 2) {\n    uVar17 = 1;\n    pcVar16 = ".";\n  }\n  pbVar20 = (byte *)plVar7->grouping;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = plVar7->thousands_sep;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  pcVar8 = "";\n  if (~uVar10 - 1 < 0x11) {\n    pcVar8 = plVar7->thousands_sep;\n  }\n  pcVar9 = param_2 + 0x287;\n  if (param_4 < param_5) {\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }\n  else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }\n  if ((param_3 & 4) != 0) {\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }\n  local_a8 = pcVar9;\n  if ((param_3 & 0x80) == 0) goto LAB_001050c5;\n  if (iVar19 < 0) {\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }\n  *local_a8 = 'B';\n  local_a8 = local_a8 + 1;\nLAB_001050c5:\n  *local_a8 = '\0';\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest_00;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "char * FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)\n\n{\n  char cVar1;\n  bool bVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  lconv *plVar7;\n  char *pcVar8;\n  char *pcVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  char *__dest;\n  uint uVar14;\n  uint uVar15;\n  char *__dest_00;\n  char *pcVar16;\n  ulong uVar17;\n  long lVar18;\n  int iVar19;\n  byte *pbVar20;\n  long in_FS_OFFSET;\n  byte bVar21;\n  longdouble lVar22;\n  longdouble lVar23;\n  longdouble lVar24;\n  longdouble lVar25;\n  char *local_a8;\n  undefined1 local_78 [56];\n  long local_40;\n  \n  bVar21 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar15 = param_3 & 3;\n  uVar3 = param_3 & 0x20;\n  uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;\n  plVar7 = localeconv();\n  pcVar16 = plVar7->decimal_point;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = pcVar16;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  uVar17 = ~uVar10 - 1;\n  if (0xf < ~uVar10 - 2) {\n    uVar17 = 1;\n    pcVar16 = ".";\n  }\n  pbVar20 = (byte *)plVar7->grouping;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = plVar7->thousands_sep;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  pcVar8 = "";\n  if (~uVar10 - 1 < 0x11) {\n    pcVar8 = plVar7->thousands_sep;\n  }\n  pcVar9 = param_2 + 0x287;\n  if (param_4 < param_5) {\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }\n  else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }\n  if ((param_3 & 4) != 0) {\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }\n  local_a8 = pcVar9;\n  if ((param_3 & 0x80) == 0) goto LAB_001050c5;\n  if (iVar19 < 0) {\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }\n  *local_a8 = 'B';\n  local_a8 = local_a8 + 1;\nLAB_001050c5:\n  *local_a8 = '\0';\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest_00;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (pointer_declarator "* FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)" * (function_declarator "FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)" identifier (parameter_list "(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)" ( (parameter_declaration "ulong param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "ulong param_4" type_identifier identifier) , (parameter_declaration "ulong param_5" type_identifier identifier) )))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  lconv *plVar7;\n  char *pcVar8;\n  char *pcVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  char *__dest;\n  uint uVar14;\n  uint uVar15;\n  char *__dest_00;\n  char *pcVar16;\n  ulong uVar17;\n  long lVar18;\n  int iVar19;\n  byte *pbVar20;\n  long in_FS_OFFSET;\n  byte bVar21;\n  longdouble lVar22;\n  longdouble lVar23;\n  longdouble lVar24;\n  longdouble lVar25;\n  char *local_a8;\n  undefined1 local_78 [56];\n  long local_40;\n  \n  bVar21 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar15 = param_3 & 3;\n  uVar3 = param_3 & 0x20;\n  uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;\n  plVar7 = localeconv();\n  pcVar16 = plVar7->decimal_point;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = pcVar16;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  uVar17 = ~uVar10 - 1;\n  if (0xf < ~uVar10 - 2) {\n    uVar17 = 1;\n    pcVar16 = ".";\n  }\n  pbVar20 = (byte *)plVar7->grouping;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = plVar7->thousands_sep;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  pcVar8 = "";\n  if (~uVar10 - 1 < 0x11) {\n    pcVar8 = plVar7->thousands_sep;\n  }\n  pcVar9 = param_2 + 0x287;\n  if (param_4 < param_5) {\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }\n  else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }\n  if ((param_3 & 4) != 0) {\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }\n  local_a8 = pcVar9;\n  if ((param_3 & 0x80) == 0) goto LAB_001050c5;\n  if (iVar19 < 0) {\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }\n  *local_a8 = 'B';\n  local_a8 = local_a8 + 1;\nLAB_001050c5:\n  *local_a8 = '\0';\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest_00;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "lconv *plVar7;" type_identifier (pointer_declarator "*plVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "char *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "char *__dest_00;" primitive_type (pointer_declarator "*__dest_00" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "longdouble lVar22;" type_identifier identifier ;) (declaration "longdouble lVar23;" type_identifier identifier ;) (declaration "longdouble lVar24;" type_identifier identifier ;) (declaration "longdouble lVar25;" type_identifier identifier ;) (declaration "char *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "undefined1 local_78 [56];" type_identifier (array_declarator "local_78 [56]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = param_3 & 3;" (assignment_expression "uVar15 = param_3 & 3" identifier = (binary_expression "param_3 & 3" identifier & number_literal)) ;) (expression_statement "uVar3 = param_3 & 0x20;" (assignment_expression "uVar3 = param_3 & 0x20" identifier = (binary_expression "param_3 & 0x20" identifier & number_literal)) ;) (expression_statement "uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;" (assignment_expression "uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400" identifier = (binary_expression "(-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400" (parenthesized_expression "(-(uint)(uVar3 == 0) & 0xffffffe8)" ( (binary_expression "-(uint)(uVar3 == 0) & 0xffffffe8" (unary_expression "-(uint)(uVar3 == 0)" - (call_expression "(uint)(uVar3 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) (expression_statement "plVar7 = localeconv();" (assignment_expression "plVar7 = localeconv()" identifier = (call_expression "localeconv()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = plVar7->decimal_point;" (assignment_expression "pcVar16 = plVar7->decimal_point" identifier = (field_expression "plVar7->decimal_point" identifier -> field_identifier)) ;) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar16;" (assignment_expression "pcVar8 = pcVar16" identifier = identifier) ;) (do_statement "do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');" do (compound_statement "{\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar17 = ~uVar10 - 1;" (assignment_expression "uVar17 = ~uVar10 - 1" identifier = (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal)) ;) (if_statement "if (0xf < ~uVar10 - 2) {\n    uVar17 = 1;\n    pcVar16 = ".";\n  }" if (parenthesized_expression "(0xf < ~uVar10 - 2)" ( (binary_expression "0xf < ~uVar10 - 2" number_literal < (binary_expression "~uVar10 - 2" (unary_expression "~uVar10" ~ identifier) - number_literal)) )) (compound_statement "{\n    uVar17 = 1;\n    pcVar16 = ".";\n  }" { (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (expression_statement "pcVar16 = ".";" (assignment_expression "pcVar16 = "."" identifier = (string_literal ""."" " string_content ")) ;) })) (expression_statement "pbVar20 = (byte *)plVar7->grouping;" (assignment_expression "pbVar20 = (byte *)plVar7->grouping" identifier = (cast_expression "(byte *)plVar7->grouping" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar7->grouping" identifier -> field_identifier))) ;) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = plVar7->thousands_sep;" (assignment_expression "pcVar8 = plVar7->thousands_sep" identifier = (field_expression "plVar7->thousands_sep" identifier -> field_identifier)) ;) (do_statement "do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');" do (compound_statement "{\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar8 = "";" (assignment_expression "pcVar8 = """ identifier = (string_literal """" " ")) ;) (if_statement "if (~uVar10 - 1 < 0x11) {\n    pcVar8 = plVar7->thousands_sep;\n  }" if (parenthesized_expression "(~uVar10 - 1 < 0x11)" ( (binary_expression "~uVar10 - 1 < 0x11" (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal) < number_literal) )) (compound_statement "{\n    pcVar8 = plVar7->thousands_sep;\n  }" { (expression_statement "pcVar8 = plVar7->thousands_sep;" (assignment_expression "pcVar8 = plVar7->thousands_sep" identifier = (field_expression "plVar7->thousands_sep" identifier -> field_identifier)) ;) })) (expression_statement "pcVar9 = param_2 + 0x287;" (assignment_expression "pcVar9 = param_2 + 0x287" identifier = (binary_expression "param_2 + 0x287" identifier + number_literal)) ;) (if_statement "if (param_4 < param_5) {\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }\n  else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }" if (parenthesized_expression "(param_4 < param_5)" ( (binary_expression "param_4 < param_5" identifier < identifier) )) (compound_statement "{\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }" { (if_statement "if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;" if (parenthesized_expression "((param_4 == 0) || (param_5 % param_4 != 0))" ( (binary_expression "(param_4 == 0) || (param_5 % param_4 != 0)" (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_5 % param_4 != 0)" ( (binary_expression "param_5 % param_4 != 0" (binary_expression "param_5 % param_4" identifier % identifier) != number_literal) ))) )) (goto_statement "goto LAB_00104dfa;" goto statement_identifier ;)) (expression_statement "param_4 = param_5 / param_4;" (assignment_expression "param_4 = param_5 / param_4" identifier = (binary_expression "param_5 / param_4" identifier / identifier)) ;) (expression_statement "uVar12 = param_1 / param_4;" (assignment_expression "uVar12 = param_1 / param_4" identifier = (binary_expression "param_1 / param_4" identifier / identifier)) ;) (expression_statement "uVar10 = (param_1 % param_4) * 10;" (assignment_expression "uVar10 = (param_1 % param_4) * 10" identifier = (binary_expression "(param_1 % param_4) * 10" (parenthesized_expression "(param_1 % param_4)" ( (binary_expression "param_1 % param_4" identifier % identifier) )) * number_literal)) ;) (expression_statement "uVar11 = (uVar10 % param_4) * 2;" (assignment_expression "uVar11 = (uVar10 % param_4) * 2" identifier = (binary_expression "(uVar10 % param_4) * 2" (parenthesized_expression "(uVar10 % param_4)" ( (binary_expression "uVar10 % param_4" identifier % identifier) )) * number_literal)) ;) (expression_statement "uVar10 = uVar10 / param_4 & 0xffffffff;" (assignment_expression "uVar10 = uVar10 / param_4 & 0xffffffff" identifier = (binary_expression "uVar10 / param_4 & 0xffffffff" (binary_expression "uVar10 / param_4" identifier / identifier) & number_literal)) ;) (if_statement "if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }" if (parenthesized_expression "(uVar11 < param_4)" ( (binary_expression "uVar11 < param_4" identifier < identifier) )) (compound_statement "{\n      uVar14 = (uint)(uVar11 != 0);\n    }" { (expression_statement "uVar14 = (uint)(uVar11 != 0);" (assignment_expression "uVar14 = (uint)(uVar11 != 0)" identifier = (call_expression "(uint)(uVar11 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }" else (compound_statement "{\n      uVar14 = (param_4 < uVar11) + 2;\n    }" { (expression_statement "uVar14 = (param_4 < uVar11) + 2;" (assignment_expression "uVar14 = (param_4 < uVar11) + 2" identifier = (binary_expression "(param_4 < uVar11) + 2" (parenthesized_expression "(param_4 < uVar11)" ( (binary_expression "param_4 < uVar11" identifier < identifier) )) + number_literal)) ;) }))) (labeled_statement "LAB_00105103:\n    uVar6 = (uint)uVar10;" statement_identifier : (expression_statement "uVar6 = (uint)uVar10;" (assignment_expression "uVar6 = (uint)uVar10" identifier = (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" identifier = number_literal) ;) (expression_statement "__dest = pcVar9;" (assignment_expression "__dest = pcVar9" identifier = identifier) ;) (if_statement "if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }" if (parenthesized_expression "((param_3 & 0x10) != 0)" ( (binary_expression "(param_3 & 0x10) != 0" (parenthesized_expression "(param_3 & 0x10)" ( (binary_expression "param_3 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }" { (expression_statement "uVar11 = (ulong)uVar4;" (assignment_expression "uVar11 = (ulong)uVar4" identifier = (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }" if (parenthesized_expression "(uVar12 < uVar11)" ( (binary_expression "uVar12 < uVar11" identifier < identifier) )) (compound_statement "{\n        iVar19 = 0;\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }" else (compound_statement "{\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = uVar12;" (assignment_expression "uVar13 = uVar12" identifier = identifier) ;) (do_statement "do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));" do (compound_statement "{\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        }" { (expression_statement "uVar12 = uVar13 / uVar11;" (assignment_expression "uVar12 = uVar13 / uVar11" identifier = (binary_expression "uVar13 / uVar11" identifier / identifier)) ;) (expression_statement "uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;" (assignment_expression "uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10" identifier = (binary_expression "(int)uVar10 + (int)(uVar13 % uVar11) * 10" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)(uVar13 % uVar11) * 10" (cast_expression "(int)(uVar13 % uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar13 % uVar11)" ( (binary_expression "uVar13 % uVar11" identifier % identifier) ))) * number_literal))) ;) (expression_statement "uVar6 = uVar5 / uVar4;" (assignment_expression "uVar6 = uVar5 / uVar4" identifier = (binary_expression "uVar5 / uVar4" identifier / identifier)) ;) (expression_statement "uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;" (assignment_expression "uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2" identifier = (binary_expression "((int)uVar14 >> 1) + (uVar5 % uVar4) * 2" (parenthesized_expression "((int)uVar14 >> 1)" ( (binary_expression "(int)uVar14 >> 1" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (binary_expression "(uVar5 % uVar4) * 2" (parenthesized_expression "(uVar5 % uVar4)" ( (binary_expression "uVar5 % uVar4" identifier % identifier) )) * number_literal))) ;) (expression_statement "uVar10 = (ulong)uVar6;" (assignment_expression "uVar10 = (ulong)uVar6" identifier = (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }" { (expression_statement "uVar14 = (uint)(uVar14 + uVar5 != 0);" (assignment_expression "uVar14 = (uint)(uVar14 + uVar5 != 0)" identifier = (call_expression "(uint)(uVar14 + uVar5 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 + uVar5 != 0)" ( (binary_expression "uVar14 + uVar5 != 0" (binary_expression "uVar14 + uVar5" identifier + identifier) != number_literal) )))) ;) }) (else_clause "else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }" else (compound_statement "{\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }" { (expression_statement "uVar14 = (uVar4 < uVar14 + uVar5) + 2;" (assignment_expression "uVar14 = (uVar4 < uVar14 + uVar5) + 2" identifier = (binary_expression "(uVar4 < uVar14 + uVar5) + 2" (parenthesized_expression "(uVar4 < uVar14 + uVar5)" ( (binary_expression "uVar4 < uVar14 + uVar5" identifier < (binary_expression "uVar14 + uVar5" identifier + identifier)) )) + number_literal)) ;) }))) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12))" ( (binary_expression "(iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12)" (parenthesized_expression "(iVar19 < 8)" ( (binary_expression "iVar19 < 8" identifier < number_literal) )) && (parenthesized_expression "(uVar13 = uVar12, uVar11 <= uVar12)" ( (comma_expression "uVar13 = uVar12, uVar11 <= uVar12" (assignment_expression "uVar13 = uVar12" identifier = identifier) , (binary_expression "uVar11 <= uVar12" identifier <= identifier)) ))) )) ;) (if_statement "if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }" if (parenthesized_expression "(uVar12 < 10)" ( (binary_expression "uVar12 < 10" identifier < number_literal) )) (compound_statement "{\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }" { (if_statement "if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }" if (parenthesized_expression "(uVar15 == 1)" ( (binary_expression "uVar15 == 1" identifier == number_literal) )) (compound_statement "{\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }" { (expression_statement "bVar2 = 2 < (uVar6 & 1) + uVar14;" (assignment_expression "bVar2 = 2 < (uVar6 & 1) + uVar14" identifier = (binary_expression "2 < (uVar6 & 1) + uVar14" number_literal < (binary_expression "(uVar6 & 1) + uVar14" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) + identifier))) ;) }) (else_clause "else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }" else (compound_statement "{\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }" { (expression_statement "bVar2 = uVar15 == 0 && uVar14 != 0;" (assignment_expression "bVar2 = uVar15 == 0 && uVar14 != 0" identifier = (binary_expression "uVar15 == 0 && uVar14 != 0" (binary_expression "uVar15 == 0" identifier == number_literal) && (binary_expression "uVar14 != 0" identifier != number_literal))) ;) }))) (if_statement "if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" { (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (if_statement "if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" if (parenthesized_expression "(uVar6 == 10)" ( (binary_expression "uVar6 == 10" identifier == number_literal) )) (compound_statement "{\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" { (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }" if (parenthesized_expression "(uVar12 < 10)" ( (binary_expression "uVar12 < 10" identifier < number_literal) )) (compound_statement "{\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00105494;" goto statement_identifier ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00105238;" goto statement_identifier ;) })) }) (else_clause "else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" else (if_statement "if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" { (labeled_statement "LAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" statement_identifier : (if_statement "if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" if (parenthesized_expression "((param_3 & 8) != 0)" ( (binary_expression "(param_3 & 8) != 0" (parenthesized_expression "(param_3 & 8)" ( (binary_expression "param_3 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00105238;" goto statement_identifier ;) }))) })))) (expression_statement "param_2[0x286] = (char)uVar6 + '0';" (assignment_expression "param_2[0x286] = (char)uVar6 + '0'" (subscript_expression "param_2[0x286]" identifier [ number_literal ]) = (binary_expression "(char)uVar6 + '0'" (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character '))) ;) (expression_statement "memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);" (call_expression "memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17)" identifier (argument_list "(param_2 + (0x286 - uVar17),pcVar16,uVar17)" ( (binary_expression "param_2 + (0x286 - uVar17)" identifier + (parenthesized_expression "(0x286 - uVar17)" ( (binary_expression "0x286 - uVar17" number_literal - identifier) ))) , identifier , identifier ))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "__dest = param_2 + (0x286 - uVar17);" (assignment_expression "__dest = param_2 + (0x286 - uVar17)" identifier = (binary_expression "param_2 + (0x286 - uVar17)" identifier + (parenthesized_expression "(0x286 - uVar17)" ( (binary_expression "0x286 - uVar17" number_literal - identifier) )))) ;) })) }))) })) (labeled_statement "LAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" statement_identifier : (if_statement "if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" if (parenthesized_expression "(uVar15 == 1)" ( (binary_expression "uVar15 == 1" identifier == number_literal) )) (compound_statement "{\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }" { (expression_statement "bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));" (assignment_expression "bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" identifier = (binary_expression "5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" number_literal < (cast_expression "(int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" ( (binary_expression "uVar6 + (((uint)uVar12 & 1) + uVar14 != 0)" identifier + (parenthesized_expression "(((uint)uVar12 & 1) + uVar14 != 0)" ( (binary_expression "((uint)uVar12 & 1) + uVar14 != 0" (binary_expression "((uint)uVar12 & 1) + uVar14" (parenthesized_expression "((uint)uVar12 & 1)" ( (binary_expression "(uint)uVar12 & 1" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) + identifier) != number_literal) ))) ))))) ;) }) (else_clause "else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" else (compound_statement "{\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" { (expression_statement "bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);" (assignment_expression "bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14)" identifier = (binary_expression "uVar15 == 0 && 0 < (int)(uVar6 + uVar14)" (binary_expression "uVar15 == 0" identifier == number_literal) && (binary_expression "0 < (int)(uVar6 + uVar14)" number_literal < (cast_expression "(int)(uVar6 + uVar14)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + uVar14)" ( (binary_expression "uVar6 + uVar14" identifier + identifier) )))))) ;) })))) (expression_statement "__dest_00 = __dest;" (assignment_expression "__dest_00 = __dest" identifier = identifier) ;) (if_statement "if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }" if (parenthesized_expression "((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8))" ( (binary_expression "(((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)" (parenthesized_expression "(((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12))" ( (binary_expression "((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)" (parenthesized_expression "((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0))" ( (binary_expression "(bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)" ( (comma_expression "uVar12 = uVar12 + 1, (param_3 & 0x10) != 0" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) , (binary_expression "(param_3 & 0x10) != 0" (parenthesized_expression "(param_3 & 0x10)" ( (binary_expression "param_3 & 0x10" identifier & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "(uVar4 == uVar12)" ( (binary_expression "uVar4 == uVar12" identifier == identifier) ))) )) && (parenthesized_expression "(iVar19 < 8)" ( (binary_expression "iVar19 < 8" identifier < number_literal) ))) )) (compound_statement "{\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }" { (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (if_statement "if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }" if (parenthesized_expression "((param_3 & 8) == 0)" ( (binary_expression "(param_3 & 8) == 0" (parenthesized_expression "(param_3 & 8)" ( (binary_expression "param_3 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }" { (expression_statement "__dest[-1] = '0';" (assignment_expression "__dest[-1] = '0'" (subscript_expression "__dest[-1]" identifier [ number_literal ]) = (char_literal "'0'" ' character ')) ;) (expression_statement "__dest = __dest + ~uVar17;" (assignment_expression "__dest = __dest + ~uVar17" identifier = (binary_expression "__dest + ~uVar17" identifier + (unary_expression "~uVar17" ~ identifier))) ;) (expression_statement "memcpy(__dest,pcVar16,uVar17);" (call_expression "memcpy(__dest,pcVar16,uVar17)" identifier (argument_list "(__dest,pcVar16,uVar17)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "__dest_00 = __dest + -1;" (assignment_expression "__dest_00 = __dest + -1" identifier = (binary_expression "__dest + -1" identifier + number_literal)) ;) (expression_statement "__dest[-1] = '1';" (assignment_expression "__dest[-1] = '1'" (subscript_expression "__dest[-1]" identifier [ number_literal ]) = (char_literal "'1'" ' character ')) ;) }) (else_clause "else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }" else (compound_statement "{\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }" { (do_statement "do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);" do (compound_statement "{\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      }" { (expression_statement "__dest_00 = __dest_00 + -1;" (assignment_expression "__dest_00 = __dest_00 + -1" identifier = (binary_expression "__dest_00 + -1" identifier + number_literal)) ;) (expression_statement "*__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';" (assignment_expression "*__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0'" (pointer_expression "*__dest_00" * identifier) = (binary_expression "(char)uVar12 + (char)(uVar12 / 10) * -10 + '0'" (binary_expression "(char)uVar12 + (char)(uVar12 / 10) * -10" (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(uVar12 / 10) * -10" (cast_expression "(char)(uVar12 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar12 / 10)" ( (binary_expression "uVar12 / 10" identifier / number_literal) ))) * number_literal)) + (char_literal "'0'" ' character '))) ;) (expression_statement "bVar2 = 9 < uVar12;" (assignment_expression "bVar2 = 9 < uVar12" identifier = (binary_expression "9 < uVar12" number_literal < identifier)) ;) (expression_statement "uVar12 = uVar12 / 10;" (assignment_expression "uVar12 = uVar12 / 10" identifier = (binary_expression "uVar12 / 10" identifier / number_literal)) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) }))) }) (else_clause "else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }" else (compound_statement "{\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }" { (if_statement "if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }" if (parenthesized_expression "((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1))" ( (binary_expression "(param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)" (parenthesized_expression "(param_4 % param_5 == 0)" ( (binary_expression "param_4 % param_5 == 0" (binary_expression "param_4 % param_5" identifier % identifier) == number_literal) )) && (parenthesized_expression "(uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)" ( (comma_expression "uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1" (assignment_expression "uVar12 = (param_4 / param_5) * param_1" identifier = (binary_expression "(param_4 / param_5) * param_1" (parenthesized_expression "(param_4 / param_5)" ( (binary_expression "param_4 / param_5" identifier / identifier) )) * identifier)) , (binary_expression "uVar12 / (param_4 / param_5) == param_1" (binary_expression "uVar12 / (param_4 / param_5)" identifier / (parenthesized_expression "(param_4 / param_5)" ( (binary_expression "param_4 / param_5" identifier / identifier) ))) == identifier)) ))) )) (compound_statement "{\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00105103;" goto statement_identifier ;) })) (labeled_statement "LAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;" statement_identifier : (expression_statement "lVar22 = (longdouble)(long)param_4;" (assignment_expression "lVar22 = (longdouble)(long)param_4" identifier = (cast_expression "(longdouble)(long)param_4" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;)) (if_statement "if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }" if (parenthesized_expression "((long)param_4 < 0)" ( (binary_expression "(long)param_4 < 0" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }" { (expression_statement "lVar22 = lVar22 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar22 = lVar22 + (longdouble)_DAT_0010b274" identifier = (binary_expression "lVar22 + (longdouble)_DAT_0010b274" identifier + (cast_expression "(longdouble)_DAT_0010b274" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (expression_statement "lVar23 = (longdouble)(long)param_5;" (assignment_expression "lVar23 = (longdouble)(long)param_5" identifier = (cast_expression "(longdouble)(long)param_5" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(long)param_5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }" if (parenthesized_expression "((long)param_5 < 0)" ( (binary_expression "(long)param_5 < 0" (cast_expression "(long)param_5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }" { (expression_statement "lVar23 = lVar23 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar23 = lVar23 + (longdouble)_DAT_0010b274" identifier = (binary_expression "lVar23 + (longdouble)_DAT_0010b274" identifier + (cast_expression "(longdouble)_DAT_0010b274" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (expression_statement "lVar24 = (longdouble)(long)param_1;" (assignment_expression "lVar24 = (longdouble)(long)param_1" identifier = (cast_expression "(longdouble)(long)param_1" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }" if (parenthesized_expression "((long)param_1 < 0)" ( (binary_expression "(long)param_1 < 0" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }" { (expression_statement "lVar24 = lVar24 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar24 = lVar24 + (longdouble)_DAT_0010b274" identifier = (binary_expression "lVar24 + (longdouble)_DAT_0010b274" identifier + (cast_expression "(longdouble)_DAT_0010b274" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }" if (parenthesized_expression "((param_3 & 0x10) == 0)" ( (binary_expression "(param_3 & 0x10) == 0" (parenthesized_expression "(param_3 & 0x10)" ( (binary_expression "param_3 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }" { (expression_statement "FUN_00104c0d(uVar15);" (call_expression "FUN_00104c0d(uVar15)" identifier (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");" (call_expression "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf")" identifier (argument_list "(param_2,1,0xffffffffffffffff,"%.0Lf")" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") ))) ;) (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" identifier = number_literal) ;) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar16 = param_2;" (assignment_expression "pcVar16 = param_2" identifier = identifier) ;) (do_statement "do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');" do (compound_statement "{\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar10 = ~uVar10 - 1;" (assignment_expression "uVar10 = ~uVar10 - 1" identifier = (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal)) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }" else (compound_statement "{\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }" { (expression_statement "lVar25 = (longdouble)1;" (assignment_expression "lVar25 = (longdouble)1" identifier = (cast_expression "(longdouble)1" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);" do (compound_statement "{\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      }" { (expression_statement "lVar25 = lVar25 * (longdouble)uVar4;" (assignment_expression "lVar25 = lVar25 * (longdouble)uVar4" identifier = (binary_expression "lVar25 * (longdouble)uVar4" identifier * (cast_expression "(longdouble)uVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (if_statement "if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;" if (parenthesized_expression "(lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25)" ( (binary_expression "lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25" (binary_expression "lVar24 * (lVar22 / lVar23)" identifier * (parenthesized_expression "(lVar22 / lVar23)" ( (binary_expression "lVar22 / lVar23" identifier / identifier) ))) < (binary_expression "(longdouble)uVar4 * lVar25" (cast_expression "(longdouble)uVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * identifier)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar19 < 8)" ( (binary_expression "iVar19 < 8" identifier < number_literal) )) ;) (expression_statement "FUN_00104c0d(uVar15);" (call_expression "FUN_00104c0d(uVar15)" identifier (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");" (call_expression "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf")" identifier (argument_list "(param_2,1,0xffffffffffffffff,"%.1Lf")" ( identifier , number_literal , number_literal , (string_literal ""%.1Lf"" " string_content ") ))) ;) (expression_statement "uVar11 = 0xffffffffffffffff;" (assignment_expression "uVar11 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar16 = param_2;" (assignment_expression "pcVar16 = param_2" identifier = identifier) ;) (do_statement "do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');" do (compound_statement "{\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      }" { (if_statement "if (uVar11 == 0) break;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar10 = ~uVar11 - 1;" (assignment_expression "uVar10 = ~uVar11 - 1" identifier = (binary_expression "~uVar11 - 1" (unary_expression "~uVar11" ~ identifier) - number_literal)) ;) (expression_statement "lVar18 = uVar17 + 1;" (assignment_expression "lVar18 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }" if (parenthesized_expression "((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0'))))" ( (binary_expression "(uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))" (parenthesized_expression "(uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10)" ( (binary_expression "uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10" (binary_expression "uVar17 + 2 + (ulong)(uVar3 == 0)" (binary_expression "uVar17 + 2" identifier + number_literal) + (call_expression "(ulong)(uVar3 == 0)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )))) < identifier) )) || (parenthesized_expression "(((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))" ( (parenthesized_expression "((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0'))" ( (binary_expression "(param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')" (binary_expression "(param_3 & 8) != 0" (parenthesized_expression "(param_3 & 8)" ( (binary_expression "param_3 & 8" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(param_2[~uVar11 - 2] == '0')" ( (binary_expression "param_2[~uVar11 - 2] == '0'" (subscript_expression "param_2[~uVar11 - 2]" identifier [ (binary_expression "~uVar11 - 2" (unary_expression "~uVar11" ~ identifier) - number_literal) ]) == (char_literal "'0'" ' character ')) ))) )) ))) )) (compound_statement "{\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }" { (expression_statement "FUN_00104c0d(uVar15);" (call_expression "FUN_00104c0d(uVar15)" identifier (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");" (call_expression "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf")" identifier (argument_list "(param_2,1,0xffffffffffffffff,"%.0Lf")" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") ))) ;) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar16 = param_2;" (assignment_expression "pcVar16 = param_2" identifier = identifier) ;) (do_statement "do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar10 = ~uVar10 - 1;" (assignment_expression "uVar10 = ~uVar10 - 1" identifier = (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal)) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) })) }))) (expression_statement "__dest_00 = pcVar9 + -uVar10;" (assignment_expression "__dest_00 = pcVar9 + -uVar10" identifier = (binary_expression "pcVar9 + -uVar10" identifier + (unary_expression "-uVar10" - identifier))) ;) (expression_statement "memmove(__dest_00,param_2,uVar10);" (call_expression "memmove(__dest_00,param_2,uVar10)" identifier (argument_list "(__dest_00,param_2,uVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "__dest = __dest_00 + (uVar10 - lVar18);" (assignment_expression "__dest = __dest_00 + (uVar10 - lVar18)" identifier = (binary_expression "__dest_00 + (uVar10 - lVar18)" identifier + (parenthesized_expression "(uVar10 - lVar18)" ( (binary_expression "uVar10 - lVar18" identifier - identifier) )))) ;) }))) (if_statement "if ((param_3 & 4) != 0) {\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }" if (parenthesized_expression "((param_3 & 4) != 0)" ( (binary_expression "(param_3 & 4) != 0" (parenthesized_expression "(param_3 & 4)" ( (binary_expression "param_3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }" { (expression_statement "uVar11 = (long)__dest - (long)__dest_00;" (assignment_expression "uVar11 = (long)__dest - (long)__dest_00" identifier = (binary_expression "(long)__dest - (long)__dest_00" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__dest_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "uVar17 = 0xffffffffffffffff;" (assignment_expression "uVar17 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar16 = pcVar8;" (assignment_expression "pcVar16 = pcVar8" identifier = identifier) ;) (do_statement "do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    }" { (if_statement "if (uVar17 == 0) break;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar17 = uVar17 - 1;" (assignment_expression "uVar17 = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "__memcpy_chk(local_78,__dest_00,uVar11,0x29);" (call_expression "__memcpy_chk(local_78,__dest_00,uVar11,0x29)" identifier (argument_list "(local_78,__dest_00,uVar11,0x29)" ( identifier , identifier , identifier , number_literal ))) ;) (while_statement "while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }" { (expression_statement "bVar21 = *pbVar20;" (assignment_expression "bVar21 = *pbVar20" identifier = (pointer_expression "*pbVar20" * identifier)) ;) (if_statement "if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }" if (parenthesized_expression "(bVar21 != 0)" ( (binary_expression "bVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }" { (expression_statement "uVar10 = (ulong)bVar21;" (assignment_expression "uVar10 = (ulong)bVar21" identifier = (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }" if (parenthesized_expression "(0x7e < bVar21)" ( (binary_expression "0x7e < bVar21" number_literal < identifier) )) (compound_statement "{\n          uVar10 = uVar11;\n        }" { (expression_statement "uVar10 = uVar11;" (assignment_expression "uVar10 = uVar11" identifier = identifier) ;) })) (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }" if (parenthesized_expression "(uVar11 < uVar10)" ( (binary_expression "uVar11 < uVar10" identifier < identifier) )) (compound_statement "{\n        uVar10 = uVar11;\n      }" { (expression_statement "uVar10 = uVar11;" (assignment_expression "uVar10 = uVar11" identifier = identifier) ;) })) (expression_statement "__dest_00 = __dest + -uVar10;" (assignment_expression "__dest_00 = __dest + -uVar10" identifier = (binary_expression "__dest + -uVar10" identifier + (unary_expression "-uVar10" - identifier))) ;) (expression_statement "uVar11 = uVar11 - uVar10;" (assignment_expression "uVar11 = uVar11 - uVar10" identifier = (binary_expression "uVar11 - uVar10" identifier - identifier)) ;) (expression_statement "memcpy(__dest_00,local_78 + uVar11,uVar10);" (call_expression "memcpy(__dest_00,local_78 + uVar11,uVar10)" identifier (argument_list "(__dest_00,local_78 + uVar11,uVar10)" ( identifier , (binary_expression "local_78 + uVar11" identifier + identifier) , identifier ))) ;) (if_statement "if (uVar11 == 0) break;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "__dest = __dest_00 + -(~uVar17 - 1);" (assignment_expression "__dest = __dest_00 + -(~uVar17 - 1)" identifier = (binary_expression "__dest_00 + -(~uVar17 - 1)" identifier + (unary_expression "-(~uVar17 - 1)" - (parenthesized_expression "(~uVar17 - 1)" ( (binary_expression "~uVar17 - 1" (unary_expression "~uVar17" ~ identifier) - number_literal) ))))) ;) (expression_statement "memcpy(__dest,pcVar8,~uVar17 - 1);" (call_expression "memcpy(__dest,pcVar8,~uVar17 - 1)" identifier (argument_list "(__dest,pcVar8,~uVar17 - 1)" ( identifier , identifier , (binary_expression "~uVar17 - 1" (unary_expression "~uVar17" ~ identifier) - number_literal) ))) ;) })) })) (expression_statement "local_a8 = pcVar9;" (assignment_expression "local_a8 = pcVar9" identifier = identifier) ;) (if_statement "if ((param_3 & 0x80) == 0) goto LAB_001050c5;" if (parenthesized_expression "((param_3 & 0x80) == 0)" ( (binary_expression "(param_3 & 0x80) == 0" (parenthesized_expression "(param_3 & 0x80)" ( (binary_expression "param_3 & 0x80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;)) (if_statement "if (iVar19 < 0) {\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }" if (parenthesized_expression "(iVar19 < 0)" ( (binary_expression "iVar19 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }" { (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (if_statement "if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }" if (parenthesized_expression "(param_5 < 2)" ( (binary_expression "param_5 < 2" identifier < number_literal) )) (compound_statement "{\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001050b0;" goto statement_identifier ;) })) (do_statement "do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);" do (compound_statement "{\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    }" { (expression_statement "uVar10 = uVar10 * uVar4;" (assignment_expression "uVar10 = uVar10 * uVar4" identifier = (binary_expression "uVar10 * uVar4" identifier * identifier)) ;) (if_statement "if (param_5 <= uVar10) goto LAB_001050b0;" if (parenthesized_expression "(param_5 <= uVar10)" ( (binary_expression "param_5 <= uVar10" identifier <= identifier) )) (goto_statement "goto LAB_001050b0;" goto statement_identifier ;)) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 8)" ( (binary_expression "iVar19 != 8" identifier != number_literal) )) ;) (if_statement "if ((param_3 & 0x40) != 0) goto LAB_0010540f;" if (parenthesized_expression "((param_3 & 0x40) != 0)" ( (binary_expression "(param_3 & 0x40) != 0" (parenthesized_expression "(param_3 & 0x40)" ( (binary_expression "param_3 & 0x40" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0010540f;" goto statement_identifier ;)) (labeled_statement "LAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }" statement_identifier : (if_statement "if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }" if (parenthesized_expression "((iVar19 == 1) && (uVar3 == 0))" ( (binary_expression "(iVar19 == 1) && (uVar3 == 0)" (parenthesized_expression "(iVar19 == 1)" ( (binary_expression "iVar19 == 1" identifier == number_literal) )) && (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }" { (expression_statement "*pcVar9 = 'k';" (assignment_expression "*pcVar9 = 'k'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'k'" ' character ')) ;) (expression_statement "local_a8 = pcVar9 + 1;" (assignment_expression "local_a8 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (goto_statement "goto joined_r0x001054bc;" goto statement_identifier ;) }))) (expression_statement "local_a8 = pcVar9 + 1;" (assignment_expression "local_a8 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar9 = (&DAT_0010b240)[iVar19];" (assignment_expression "*pcVar9 = (&DAT_0010b240)[iVar19]" (pointer_expression "*pcVar9" * identifier) = (subscript_expression "(&DAT_0010b240)[iVar19]" (parenthesized_expression "(&DAT_0010b240)" ( (pointer_expression "&DAT_0010b240" & identifier) )) [ identifier ])) ;) (if_statement "if ((param_3 & 0x100) == 0) goto LAB_001050c5;" if (parenthesized_expression "((param_3 & 0x100) == 0)" ( (binary_expression "(param_3 & 0x100) == 0" (parenthesized_expression "(param_3 & 0x100)" ( (binary_expression "param_3 & 0x100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;)) (if_statement "if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }" { (expression_statement "pcVar9[1] = 'i';" (assignment_expression "pcVar9[1] = 'i'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) = (char_literal "'i'" ' character ')) ;) (expression_statement "local_a8 = pcVar9 + 2;" (assignment_expression "local_a8 = pcVar9 + 2" identifier = (binary_expression "pcVar9 + 2" identifier + number_literal)) ;) })) }) (else_clause "else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }" else (compound_statement "{\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }" { (labeled_statement "LAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;" statement_identifier : (if_statement "if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;" if (parenthesized_expression "((param_3 & 0x100) == 0 && iVar19 == 0)" ( (binary_expression "(param_3 & 0x100) == 0 && iVar19 == 0" (binary_expression "(param_3 & 0x100) == 0" (parenthesized_expression "(param_3 & 0x100)" ( (binary_expression "param_3 & 0x100" identifier & number_literal) )) == number_literal) && (binary_expression "iVar19 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;))) (if_statement "if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }" if (parenthesized_expression "((param_3 & 0x40) != 0)" ( (binary_expression "(param_3 & 0x40) != 0" (parenthesized_expression "(param_3 & 0x40)" ( (binary_expression "param_3 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }" { (labeled_statement "LAB_0010540f:\n      pcVar9 = param_2 + 0x288;" statement_identifier : (expression_statement "pcVar9 = param_2 + 0x288;" (assignment_expression "pcVar9 = param_2 + 0x288" identifier = (binary_expression "param_2 + 0x288" identifier + number_literal)) ;)) (expression_statement "param_2[0x287] = ' ';" (assignment_expression "param_2[0x287] = ' '" (subscript_expression "param_2[0x287]" identifier [ number_literal ]) = (char_literal "' '" ' character ')) ;) })) (expression_statement "local_a8 = pcVar9;" (assignment_expression "local_a8 = pcVar9" identifier = identifier) ;) (if_statement "if (iVar19 != 0) goto LAB_00105427;" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00105427;" goto statement_identifier ;)) (labeled_statement "joined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;" statement_identifier : (if_statement "if ((param_3 & 0x100) == 0) goto LAB_001050c5;" if (parenthesized_expression "((param_3 & 0x100) == 0)" ( (binary_expression "(param_3 & 0x100) == 0" (parenthesized_expression "(param_3 & 0x100)" ( (binary_expression "param_3 & 0x100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;))) }))) (expression_statement "*local_a8 = 'B';" (assignment_expression "*local_a8 = 'B'" (pointer_expression "*local_a8" * identifier) = (char_literal "'B'" ' character ')) ;) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_001050c5:\n  *local_a8 = '\0';" statement_identifier : (expression_statement "*local_a8 = '\0';" (assignment_expression "*local_a8 = '\0'" (pointer_expression "*local_a8" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest_00;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return __dest_00;\n  }" { (return_statement "return __dest_00;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nchar * human_readable(uintmax_t n,char *buf,int opts,uintmax_t from_block_size,\n                     uintmax_t to_block_size)\n\n{\n  char cVar1;\n  long lVar2;\n  bool bVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  lconv *plVar8;\n  char *pcVar9;\n  char *pcVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  char *pcVar15;\n  uint uVar16;\n  uint uVar17;\n  char *__dest;\n  char *pcVar18;\n  ulong uVar19;\n  long lVar20;\n  int iVar21;\n  byte *pbVar22;\n  long in_FS_OFFSET;\n  byte bVar23;\n  longdouble lVar24;\n  longdouble lVar25;\n  longdouble lVar26;\n  char *local_a8;\n  char buf_1 [41];\n  \n  bVar23 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar17 = opts & 3;\n  uVar4 = opts & 0x20;\n  uVar5 = (-(uint)(uVar4 == 0) & 0xffffffe8) + 0x400;\n  pcVar15 = buf;\n  plVar8 = localeconv();\n  pcVar18 = plVar8->decimal_point;\n  uVar12 = 0xffffffffffffffff;\n  pcVar9 = pcVar18;\n  do {\n    if (uVar12 == 0) break;\n    uVar12 = uVar12 - 1;\n    cVar1 = *pcVar9;\n    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');\n  uVar19 = ~uVar12 - 1;\n  if (0xf < ~uVar12 - 2) {\n    uVar19 = 1;\n    pcVar18 = ".";\n  }\n  pbVar22 = (byte *)plVar8->grouping;\n  uVar12 = 0xffffffffffffffff;\n  pcVar9 = plVar8->thousands_sep;\n  do {\n    if (uVar12 == 0) break;\n    uVar12 = uVar12 - 1;\n    cVar1 = *pcVar9;\n    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');\n  pcVar9 = "";\n  if (~uVar12 - 1 < 0x11) {\n    pcVar9 = plVar8->thousands_sep;\n  }\n  pcVar10 = buf + 0x287;\n  if (from_block_size < to_block_size) {\n    if ((from_block_size != 0) && (to_block_size % from_block_size == 0)) {\n      uVar11 = to_block_size / from_block_size;\n      uVar14 = n / uVar11;\n      uVar12 = (n % uVar11) * 10;\n      uVar13 = (uVar12 % uVar11) * 2;\n      uVar12 = uVar12 / uVar11 & 0xffffffff;\n      if (uVar13 < uVar11) {\n        uVar16 = (uint)(uVar13 != 0);\n      }\n      else {\n        uVar16 = (uVar11 < uVar13) + 2;\n      }\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar24 = (longdouble)(long)from_block_size;\n    if ((long)from_block_size < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    lVar25 = (longdouble)(long)to_block_size;\n    if ((long)to_block_size < 0) {\n      lVar25 = lVar25 + (longdouble)_DAT_0010b274;\n    }\n    lVar26 = (longdouble)(long)n;\n    if ((long)n < 0) {\n      lVar26 = lVar26 + (longdouble)_DAT_0010b274;\n    }\n    lVar26 = lVar26 * (lVar24 / lVar25);\n    if ((opts & 0x10U) == 0) {\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n      iVar21 = -1;\n      uVar12 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar12 == 0) break;\n        uVar12 = uVar12 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar12 = ~uVar12 - 1;\n      lVar20 = 0;\n    }\n    else {\n      lVar24 = (longdouble)1;\n      iVar21 = 0;\n      do {\n        lVar24 = lVar24 * (longdouble)uVar5;\n        iVar21 = iVar21 + 1;\n        if (lVar26 < (longdouble)uVar5 * lVar24) break;\n      } while (iVar21 < 8);\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.1Lf");\n      uVar13 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar13 == 0) break;\n        uVar13 = uVar13 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar13 = ~uVar13;\n      uVar12 = uVar13 - 1;\n      lVar20 = uVar19 + 1;\n      if ((uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||\n         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))) {\n        adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));\n        __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n        uVar12 = 0xffffffffffffffff;\n        pcVar18 = buf;\n        do {\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar12 = ~uVar12 - 1;\n        lVar20 = 0;\n      }\n    }\n    __dest = pcVar10 + -uVar12;\n    memmove(__dest,buf,uVar12);\n    pcVar15 = __dest + (uVar12 - lVar20);\n  }\n  else {\n    if ((from_block_size % to_block_size != 0) ||\n       (uVar14 = (from_block_size / to_block_size) * n,\n       uVar14 / (from_block_size / to_block_size) != n)) goto LAB_00104dfa;\n    uVar16 = 0;\n    uVar12 = 0;\nLAB_00105103:\n    uVar7 = (uint)uVar12;\n    iVar21 = -1;\n    pcVar15 = pcVar10;\n    if ((opts & 0x10U) != 0) {\n      uVar13 = (ulong)uVar5;\n      if (uVar14 < uVar13) {\n        iVar21 = 0;\n      }\n      else {\n        iVar21 = 0;\n        uVar11 = uVar14;\n        do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));\n        if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar17 == 1) {\n      bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0));\n    }\n    else {\n      bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);\n    }\n    __dest = pcVar15;\n    if ((((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14)) &&\n       (iVar21 < 8)) {\n      iVar21 = iVar21 + 1;\n      if ((opts & 8U) == 0) {\n        pcVar15[-1] = '0';\n        pcVar15 = pcVar15 + ~uVar19;\n        memcpy(pcVar15,pcVar18,uVar19);\n      }\n      __dest = pcVar15 + -1;\n      pcVar15[-1] = '1';\n    }\n    else {\n      do {\n        __dest = __dest + -1;\n        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';\n        bVar3 = 9 < uVar14;\n        uVar14 = uVar14 / 10;\n      } while (bVar3);\n    }\n  }\n  if ((opts & 4U) != 0) {\n    uVar13 = (long)pcVar15 - (long)__dest;\n    uVar12 = 0xffffffffffffffff;\n    uVar19 = 0xffffffffffffffff;\n    pcVar18 = pcVar9;\n    do {\n      if (uVar19 == 0) break;\n      uVar19 = uVar19 - 1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(buf_1,__dest,uVar13,0x29);\n    while( true ) {\n      bVar23 = *pbVar22;\n      if (bVar23 != 0) {\n        uVar12 = (ulong)bVar23;\n        if (0x7e < bVar23) {\n          uVar12 = uVar13;\n        }\n        pbVar22 = pbVar22 + 1;\n      }\n      if (uVar13 < uVar12) {\n        uVar12 = uVar13;\n      }\n      __dest = pcVar15 + -uVar12;\n      uVar13 = uVar13 - uVar12;\n      memcpy(__dest,buf_1 + uVar13,uVar12);\n      if (uVar13 == 0) break;\n      pcVar15 = __dest + -(~uVar19 - 1);\n      memcpy(pcVar15,pcVar9,~uVar19 - 1);\n    }\n  }\n  local_a8 = pcVar10;\n  if ((opts & 0x80U) == 0) goto LAB_001050c5;\n  if (iVar21 < 0) {\n    iVar21 = 1;\n    uVar12 = 1;\n    if (to_block_size < 2) {\n      iVar21 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar12 = uVar12 * uVar5;\n      if (to_block_size <= uVar12) goto LAB_001050b0;\n      iVar21 = iVar21 + 1;\n    } while (iVar21 != 8);\n    if ((opts & 0x40U) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar21 == 1) && (uVar4 == 0)) {\n      *pcVar10 = 'k';\n      local_a8 = pcVar10 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar10 + 1;\n    *pcVar10 = ""[iVar21];\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;\n    if (uVar4 != 0) {\n      pcVar10[1] = 'i';\n      local_a8 = pcVar10 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((opts & 0x100U) == 0 && iVar21 == 0) goto LAB_001050c5;\n    if ((opts & 0x40U) != 0) {\nLAB_0010540f:\n      pcVar10 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    local_a8 = pcVar10;\n    if (iVar21 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;\n  }\n  *local_a8 = 'B';\n  local_a8 = local_a8 + 1;\nLAB_001050c5:\n  *local_a8 = '\0';\n  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "char * human_readable(uintmax_t n,char *buf,int opts,uintmax_t from_block_size,\n                     uintmax_t to_block_size)\n\n{\n  char cVar1;\n  long lVar2;\n  bool bVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  lconv *plVar8;\n  char *pcVar9;\n  char *pcVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  char *pcVar15;\n  uint uVar16;\n  uint uVar17;\n  char *__dest;\n  char *pcVar18;\n  ulong uVar19;\n  long lVar20;\n  int iVar21;\n  byte *pbVar22;\n  long in_FS_OFFSET;\n  byte bVar23;\n  longdouble lVar24;\n  longdouble lVar25;\n  longdouble lVar26;\n  char *local_a8;\n  char buf_1 [41];\n  \n  bVar23 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar17 = opts & 3;\n  uVar4 = opts & 0x20;\n  uVar5 = (-(uint)(uVar4 == 0) & 0xffffffe8) + 0x400;\n  pcVar15 = buf;\n  plVar8 = localeconv();\n  pcVar18 = plVar8->decimal_point;\n  uVar12 = 0xffffffffffffffff;\n  pcVar9 = pcVar18;\n  do {\n    if (uVar12 == 0) break;\n    uVar12 = uVar12 - 1;\n    cVar1 = *pcVar9;\n    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');\n  uVar19 = ~uVar12 - 1;\n  if (0xf < ~uVar12 - 2) {\n    uVar19 = 1;\n    pcVar18 = ".";\n  }\n  pbVar22 = (byte *)plVar8->grouping;\n  uVar12 = 0xffffffffffffffff;\n  pcVar9 = plVar8->thousands_sep;\n  do {\n    if (uVar12 == 0) break;\n    uVar12 = uVar12 - 1;\n    cVar1 = *pcVar9;\n    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');\n  pcVar9 = "";\n  if (~uVar12 - 1 < 0x11) {\n    pcVar9 = plVar8->thousands_sep;\n  }\n  pcVar10 = buf + 0x287;\n  if (from_block_size < to_block_size) {\n    if ((from_block_size != 0) && (to_block_size % from_block_size == 0)) {\n      uVar11 = to_block_size / from_block_size;\n      uVar14 = n / uVar11;\n      uVar12 = (n % uVar11) * 10;\n      uVar13 = (uVar12 % uVar11) * 2;\n      uVar12 = uVar12 / uVar11 & 0xffffffff;\n      if (uVar13 < uVar11) {\n        uVar16 = (uint)(uVar13 != 0);\n      }\n      else {\n        uVar16 = (uVar11 < uVar13) + 2;\n      }\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar24 = (longdouble)(long)from_block_size;\n    if ((long)from_block_size < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    lVar25 = (longdouble)(long)to_block_size;\n    if ((long)to_block_size < 0) {\n      lVar25 = lVar25 + (longdouble)_DAT_0010b274;\n    }\n    lVar26 = (longdouble)(long)n;\n    if ((long)n < 0) {\n      lVar26 = lVar26 + (longdouble)_DAT_0010b274;\n    }\n    lVar26 = lVar26 * (lVar24 / lVar25);\n    if ((opts & 0x10U) == 0) {\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n      iVar21 = -1;\n      uVar12 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar12 == 0) break;\n        uVar12 = uVar12 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar12 = ~uVar12 - 1;\n      lVar20 = 0;\n    }\n    else {\n      lVar24 = (longdouble)1;\n      iVar21 = 0;\n      do {\n        lVar24 = lVar24 * (longdouble)uVar5;\n        iVar21 = iVar21 + 1;\n        if (lVar26 < (longdouble)uVar5 * lVar24) break;\n      } while (iVar21 < 8);\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.1Lf");\n      uVar13 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar13 == 0) break;\n        uVar13 = uVar13 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar13 = ~uVar13;\n      uVar12 = uVar13 - 1;\n      lVar20 = uVar19 + 1;\n      if ((uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||\n         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))) {\n        adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));\n        __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n        uVar12 = 0xffffffffffffffff;\n        pcVar18 = buf;\n        do {\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar12 = ~uVar12 - 1;\n        lVar20 = 0;\n      }\n    }\n    __dest = pcVar10 + -uVar12;\n    memmove(__dest,buf,uVar12);\n    pcVar15 = __dest + (uVar12 - lVar20);\n  }\n  else {\n    if ((from_block_size % to_block_size != 0) ||\n       (uVar14 = (from_block_size / to_block_size) * n,\n       uVar14 / (from_block_size / to_block_size) != n)) goto LAB_00104dfa;\n    uVar16 = 0;\n    uVar12 = 0;\nLAB_00105103:\n    uVar7 = (uint)uVar12;\n    iVar21 = -1;\n    pcVar15 = pcVar10;\n    if ((opts & 0x10U) != 0) {\n      uVar13 = (ulong)uVar5;\n      if (uVar14 < uVar13) {\n        iVar21 = 0;\n      }\n      else {\n        iVar21 = 0;\n        uVar11 = uVar14;\n        do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));\n        if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar17 == 1) {\n      bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0));\n    }\n    else {\n      bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);\n    }\n    __dest = pcVar15;\n    if ((((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14)) &&\n       (iVar21 < 8)) {\n      iVar21 = iVar21 + 1;\n      if ((opts & 8U) == 0) {\n        pcVar15[-1] = '0';\n        pcVar15 = pcVar15 + ~uVar19;\n        memcpy(pcVar15,pcVar18,uVar19);\n      }\n      __dest = pcVar15 + -1;\n      pcVar15[-1] = '1';\n    }\n    else {\n      do {\n        __dest = __dest + -1;\n        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';\n        bVar3 = 9 < uVar14;\n        uVar14 = uVar14 / 10;\n      } while (bVar3);\n    }\n  }\n  if ((opts & 4U) != 0) {\n    uVar13 = (long)pcVar15 - (long)__dest;\n    uVar12 = 0xffffffffffffffff;\n    uVar19 = 0xffffffffffffffff;\n    pcVar18 = pcVar9;\n    do {\n      if (uVar19 == 0) break;\n      uVar19 = uVar19 - 1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(buf_1,__dest,uVar13,0x29);\n    while( true ) {\n      bVar23 = *pbVar22;\n      if (bVar23 != 0) {\n        uVar12 = (ulong)bVar23;\n        if (0x7e < bVar23) {\n          uVar12 = uVar13;\n        }\n        pbVar22 = pbVar22 + 1;\n      }\n      if (uVar13 < uVar12) {\n        uVar12 = uVar13;\n      }\n      __dest = pcVar15 + -uVar12;\n      uVar13 = uVar13 - uVar12;\n      memcpy(__dest,buf_1 + uVar13,uVar12);\n      if (uVar13 == 0) break;\n      pcVar15 = __dest + -(~uVar19 - 1);\n      memcpy(pcVar15,pcVar9,~uVar19 - 1);\n    }\n  }\n  local_a8 = pcVar10;\n  if ((opts & 0x80U) == 0) goto LAB_001050c5;\n  if (iVar21 < 0) {\n    iVar21 = 1;\n    uVar12 = 1;\n    if (to_block_size < 2) {\n      iVar21 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar12 = uVar12 * uVar5;\n      if (to_block_size <= uVar12) goto LAB_001050b0;\n      iVar21 = iVar21 + 1;\n    } while (iVar21 != 8);\n    if ((opts & 0x40U) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar21 == 1) && (uVar4 == 0)) {\n      *pcVar10 = 'k';\n      local_a8 = pcVar10 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar10 + 1;\n    *pcVar10 = ""[iVar21];\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;\n    if (uVar4 != 0) {\n      pcVar10[1] = 'i';\n      local_a8 = pcVar10 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((opts & 0x100U) == 0 && iVar21 == 0) goto LAB_001050c5;\n    if ((opts & 0x40U) != 0) {\nLAB_0010540f:\n      pcVar10 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    local_a8 = pcVar10;\n    if (iVar21 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;\n  }\n  *local_a8 = 'B';\n  local_a8 = local_a8 + 1;\nLAB_001050c5:\n  *local_a8 = '\0';\n  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (pointer_declarator "* human_readable(uintmax_t n,char *buf,int opts,uintmax_t from_block_size,\n                     uintmax_t to_block_size)" * (function_declarator "human_readable(uintmax_t n,char *buf,int opts,uintmax_t from_block_size,\n                     uintmax_t to_block_size)" identifier (parameter_list "(uintmax_t n,char *buf,int opts,uintmax_t from_block_size,\n                     uintmax_t to_block_size)" ( (parameter_declaration "uintmax_t n" type_identifier identifier) , (parameter_declaration "char *buf" primitive_type (pointer_declarator "*buf" * identifier)) , (parameter_declaration "int opts" primitive_type identifier) , (parameter_declaration "uintmax_t from_block_size" type_identifier identifier) , (parameter_declaration "uintmax_t to_block_size" type_identifier identifier) )))) (compound_statement "{\n  char cVar1;\n  long lVar2;\n  bool bVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  uint uVar7;\n  lconv *plVar8;\n  char *pcVar9;\n  char *pcVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  char *pcVar15;\n  uint uVar16;\n  uint uVar17;\n  char *__dest;\n  char *pcVar18;\n  ulong uVar19;\n  long lVar20;\n  int iVar21;\n  byte *pbVar22;\n  long in_FS_OFFSET;\n  byte bVar23;\n  longdouble lVar24;\n  longdouble lVar25;\n  longdouble lVar26;\n  char *local_a8;\n  char buf_1 [41];\n  \n  bVar23 = 0;\n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar17 = opts & 3;\n  uVar4 = opts & 0x20;\n  uVar5 = (-(uint)(uVar4 == 0) & 0xffffffe8) + 0x400;\n  pcVar15 = buf;\n  plVar8 = localeconv();\n  pcVar18 = plVar8->decimal_point;\n  uVar12 = 0xffffffffffffffff;\n  pcVar9 = pcVar18;\n  do {\n    if (uVar12 == 0) break;\n    uVar12 = uVar12 - 1;\n    cVar1 = *pcVar9;\n    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');\n  uVar19 = ~uVar12 - 1;\n  if (0xf < ~uVar12 - 2) {\n    uVar19 = 1;\n    pcVar18 = ".";\n  }\n  pbVar22 = (byte *)plVar8->grouping;\n  uVar12 = 0xffffffffffffffff;\n  pcVar9 = plVar8->thousands_sep;\n  do {\n    if (uVar12 == 0) break;\n    uVar12 = uVar12 - 1;\n    cVar1 = *pcVar9;\n    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');\n  pcVar9 = "";\n  if (~uVar12 - 1 < 0x11) {\n    pcVar9 = plVar8->thousands_sep;\n  }\n  pcVar10 = buf + 0x287;\n  if (from_block_size < to_block_size) {\n    if ((from_block_size != 0) && (to_block_size % from_block_size == 0)) {\n      uVar11 = to_block_size / from_block_size;\n      uVar14 = n / uVar11;\n      uVar12 = (n % uVar11) * 10;\n      uVar13 = (uVar12 % uVar11) * 2;\n      uVar12 = uVar12 / uVar11 & 0xffffffff;\n      if (uVar13 < uVar11) {\n        uVar16 = (uint)(uVar13 != 0);\n      }\n      else {\n        uVar16 = (uVar11 < uVar13) + 2;\n      }\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar24 = (longdouble)(long)from_block_size;\n    if ((long)from_block_size < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    lVar25 = (longdouble)(long)to_block_size;\n    if ((long)to_block_size < 0) {\n      lVar25 = lVar25 + (longdouble)_DAT_0010b274;\n    }\n    lVar26 = (longdouble)(long)n;\n    if ((long)n < 0) {\n      lVar26 = lVar26 + (longdouble)_DAT_0010b274;\n    }\n    lVar26 = lVar26 * (lVar24 / lVar25);\n    if ((opts & 0x10U) == 0) {\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n      iVar21 = -1;\n      uVar12 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar12 == 0) break;\n        uVar12 = uVar12 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar12 = ~uVar12 - 1;\n      lVar20 = 0;\n    }\n    else {\n      lVar24 = (longdouble)1;\n      iVar21 = 0;\n      do {\n        lVar24 = lVar24 * (longdouble)uVar5;\n        iVar21 = iVar21 + 1;\n        if (lVar26 < (longdouble)uVar5 * lVar24) break;\n      } while (iVar21 < 8);\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.1Lf");\n      uVar13 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar13 == 0) break;\n        uVar13 = uVar13 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar13 = ~uVar13;\n      uVar12 = uVar13 - 1;\n      lVar20 = uVar19 + 1;\n      if ((uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||\n         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))) {\n        adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));\n        __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n        uVar12 = 0xffffffffffffffff;\n        pcVar18 = buf;\n        do {\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar12 = ~uVar12 - 1;\n        lVar20 = 0;\n      }\n    }\n    __dest = pcVar10 + -uVar12;\n    memmove(__dest,buf,uVar12);\n    pcVar15 = __dest + (uVar12 - lVar20);\n  }\n  else {\n    if ((from_block_size % to_block_size != 0) ||\n       (uVar14 = (from_block_size / to_block_size) * n,\n       uVar14 / (from_block_size / to_block_size) != n)) goto LAB_00104dfa;\n    uVar16 = 0;\n    uVar12 = 0;\nLAB_00105103:\n    uVar7 = (uint)uVar12;\n    iVar21 = -1;\n    pcVar15 = pcVar10;\n    if ((opts & 0x10U) != 0) {\n      uVar13 = (ulong)uVar5;\n      if (uVar14 < uVar13) {\n        iVar21 = 0;\n      }\n      else {\n        iVar21 = 0;\n        uVar11 = uVar14;\n        do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));\n        if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar17 == 1) {\n      bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0));\n    }\n    else {\n      bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);\n    }\n    __dest = pcVar15;\n    if ((((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14)) &&\n       (iVar21 < 8)) {\n      iVar21 = iVar21 + 1;\n      if ((opts & 8U) == 0) {\n        pcVar15[-1] = '0';\n        pcVar15 = pcVar15 + ~uVar19;\n        memcpy(pcVar15,pcVar18,uVar19);\n      }\n      __dest = pcVar15 + -1;\n      pcVar15[-1] = '1';\n    }\n    else {\n      do {\n        __dest = __dest + -1;\n        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';\n        bVar3 = 9 < uVar14;\n        uVar14 = uVar14 / 10;\n      } while (bVar3);\n    }\n  }\n  if ((opts & 4U) != 0) {\n    uVar13 = (long)pcVar15 - (long)__dest;\n    uVar12 = 0xffffffffffffffff;\n    uVar19 = 0xffffffffffffffff;\n    pcVar18 = pcVar9;\n    do {\n      if (uVar19 == 0) break;\n      uVar19 = uVar19 - 1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(buf_1,__dest,uVar13,0x29);\n    while( true ) {\n      bVar23 = *pbVar22;\n      if (bVar23 != 0) {\n        uVar12 = (ulong)bVar23;\n        if (0x7e < bVar23) {\n          uVar12 = uVar13;\n        }\n        pbVar22 = pbVar22 + 1;\n      }\n      if (uVar13 < uVar12) {\n        uVar12 = uVar13;\n      }\n      __dest = pcVar15 + -uVar12;\n      uVar13 = uVar13 - uVar12;\n      memcpy(__dest,buf_1 + uVar13,uVar12);\n      if (uVar13 == 0) break;\n      pcVar15 = __dest + -(~uVar19 - 1);\n      memcpy(pcVar15,pcVar9,~uVar19 - 1);\n    }\n  }\n  local_a8 = pcVar10;\n  if ((opts & 0x80U) == 0) goto LAB_001050c5;\n  if (iVar21 < 0) {\n    iVar21 = 1;\n    uVar12 = 1;\n    if (to_block_size < 2) {\n      iVar21 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar12 = uVar12 * uVar5;\n      if (to_block_size <= uVar12) goto LAB_001050b0;\n      iVar21 = iVar21 + 1;\n    } while (iVar21 != 8);\n    if ((opts & 0x40U) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar21 == 1) && (uVar4 == 0)) {\n      *pcVar10 = 'k';\n      local_a8 = pcVar10 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar10 + 1;\n    *pcVar10 = ""[iVar21];\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;\n    if (uVar4 != 0) {\n      pcVar10[1] = 'i';\n      local_a8 = pcVar10 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((opts & 0x100U) == 0 && iVar21 == 0) goto LAB_001050c5;\n    if ((opts & 0x40U) != 0) {\nLAB_0010540f:\n      pcVar10 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    local_a8 = pcVar10;\n    if (iVar21 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;\n  }\n  *local_a8 = 'B';\n  local_a8 = local_a8 + 1;\nLAB_001050c5:\n  *local_a8 = '\0';\n  if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "lconv *plVar8;" type_identifier (pointer_declarator "*plVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "char *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "long lVar20;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar23;" type_identifier identifier ;) (declaration "longdouble lVar24;" type_identifier identifier ;) (declaration "longdouble lVar25;" type_identifier identifier ;) (declaration "longdouble lVar26;" type_identifier identifier ;) (declaration "char *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "char buf_1 [41];" primitive_type (array_declarator "buf_1 [41]" identifier [ number_literal ]) ;) (expression_statement "bVar23 = 0;" (assignment_expression "bVar23 = 0" identifier = number_literal) ;) (expression_statement "lVar2 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar2 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = opts & 3;" (assignment_expression "uVar17 = opts & 3" identifier = (binary_expression "opts & 3" identifier & number_literal)) ;) (expression_statement "uVar4 = opts & 0x20;" (assignment_expression "uVar4 = opts & 0x20" identifier = (binary_expression "opts & 0x20" identifier & number_literal)) ;) (expression_statement "uVar5 = (-(uint)(uVar4 == 0) & 0xffffffe8) + 0x400;" (assignment_expression "uVar5 = (-(uint)(uVar4 == 0) & 0xffffffe8) + 0x400" identifier = (binary_expression "(-(uint)(uVar4 == 0) & 0xffffffe8) + 0x400" (parenthesized_expression "(-(uint)(uVar4 == 0) & 0xffffffe8)" ( (binary_expression "-(uint)(uVar4 == 0) & 0xffffffe8" (unary_expression "-(uint)(uVar4 == 0)" - (call_expression "(uint)(uVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) (expression_statement "pcVar15 = buf;" (assignment_expression "pcVar15 = buf" identifier = identifier) ;) (expression_statement "plVar8 = localeconv();" (assignment_expression "plVar8 = localeconv()" identifier = (call_expression "localeconv()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar18 = plVar8->decimal_point;" (assignment_expression "pcVar18 = plVar8->decimal_point" identifier = (field_expression "plVar8->decimal_point" identifier -> field_identifier)) ;) (expression_statement "uVar12 = 0xffffffffffffffff;" (assignment_expression "uVar12 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = pcVar18;" (assignment_expression "pcVar9 = pcVar18" identifier = identifier) ;) (do_statement "do {\n    if (uVar12 == 0) break;\n    uVar12 = uVar12 - 1;\n    cVar1 = *pcVar9;\n    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');" do (compound_statement "{\n    if (uVar12 == 0) break;\n    uVar12 = uVar12 - 1;\n    cVar1 = *pcVar9;\n    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;\n  }" { (if_statement "if (uVar12 == 0) break;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar9;" (assignment_expression "cVar1 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar23 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar23 * -2" identifier + (binary_expression "(ulong)bVar23 * -2" (cast_expression "(ulong)bVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar19 = ~uVar12 - 1;" (assignment_expression "uVar19 = ~uVar12 - 1" identifier = (binary_expression "~uVar12 - 1" (unary_expression "~uVar12" ~ identifier) - number_literal)) ;) (if_statement "if (0xf < ~uVar12 - 2) {\n    uVar19 = 1;\n    pcVar18 = ".";\n  }" if (parenthesized_expression "(0xf < ~uVar12 - 2)" ( (binary_expression "0xf < ~uVar12 - 2" number_literal < (binary_expression "~uVar12 - 2" (unary_expression "~uVar12" ~ identifier) - number_literal)) )) (compound_statement "{\n    uVar19 = 1;\n    pcVar18 = ".";\n  }" { (expression_statement "uVar19 = 1;" (assignment_expression "uVar19 = 1" identifier = number_literal) ;) (expression_statement "pcVar18 = ".";" (assignment_expression "pcVar18 = "."" identifier = (string_literal ""."" " string_content ")) ;) })) (expression_statement "pbVar22 = (byte *)plVar8->grouping;" (assignment_expression "pbVar22 = (byte *)plVar8->grouping" identifier = (cast_expression "(byte *)plVar8->grouping" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar8->grouping" identifier -> field_identifier))) ;) (expression_statement "uVar12 = 0xffffffffffffffff;" (assignment_expression "uVar12 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar9 = plVar8->thousands_sep;" (assignment_expression "pcVar9 = plVar8->thousands_sep" identifier = (field_expression "plVar8->thousands_sep" identifier -> field_identifier)) ;) (do_statement "do {\n    if (uVar12 == 0) break;\n    uVar12 = uVar12 - 1;\n    cVar1 = *pcVar9;\n    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;\n  } while (cVar1 != '\0');" do (compound_statement "{\n    if (uVar12 == 0) break;\n    uVar12 = uVar12 - 1;\n    cVar1 = *pcVar9;\n    pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;\n  }" { (if_statement "if (uVar12 == 0) break;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar9;" (assignment_expression "cVar1 = *pcVar9" identifier = (pointer_expression "*pcVar9" * identifier)) ;) (expression_statement "pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pcVar9 = pcVar9 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pcVar9 + (ulong)bVar23 * -2 + 1" (binary_expression "pcVar9 + (ulong)bVar23 * -2" identifier + (binary_expression "(ulong)bVar23 * -2" (cast_expression "(ulong)bVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar9 = "";" (assignment_expression "pcVar9 = """ identifier = (string_literal """" " ")) ;) (if_statement "if (~uVar12 - 1 < 0x11) {\n    pcVar9 = plVar8->thousands_sep;\n  }" if (parenthesized_expression "(~uVar12 - 1 < 0x11)" ( (binary_expression "~uVar12 - 1 < 0x11" (binary_expression "~uVar12 - 1" (unary_expression "~uVar12" ~ identifier) - number_literal) < number_literal) )) (compound_statement "{\n    pcVar9 = plVar8->thousands_sep;\n  }" { (expression_statement "pcVar9 = plVar8->thousands_sep;" (assignment_expression "pcVar9 = plVar8->thousands_sep" identifier = (field_expression "plVar8->thousands_sep" identifier -> field_identifier)) ;) })) (expression_statement "pcVar10 = buf + 0x287;" (assignment_expression "pcVar10 = buf + 0x287" identifier = (binary_expression "buf + 0x287" identifier + number_literal)) ;) (if_statement "if (from_block_size < to_block_size) {\n    if ((from_block_size != 0) && (to_block_size % from_block_size == 0)) {\n      uVar11 = to_block_size / from_block_size;\n      uVar14 = n / uVar11;\n      uVar12 = (n % uVar11) * 10;\n      uVar13 = (uVar12 % uVar11) * 2;\n      uVar12 = uVar12 / uVar11 & 0xffffffff;\n      if (uVar13 < uVar11) {\n        uVar16 = (uint)(uVar13 != 0);\n      }\n      else {\n        uVar16 = (uVar11 < uVar13) + 2;\n      }\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar24 = (longdouble)(long)from_block_size;\n    if ((long)from_block_size < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    lVar25 = (longdouble)(long)to_block_size;\n    if ((long)to_block_size < 0) {\n      lVar25 = lVar25 + (longdouble)_DAT_0010b274;\n    }\n    lVar26 = (longdouble)(long)n;\n    if ((long)n < 0) {\n      lVar26 = lVar26 + (longdouble)_DAT_0010b274;\n    }\n    lVar26 = lVar26 * (lVar24 / lVar25);\n    if ((opts & 0x10U) == 0) {\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n      iVar21 = -1;\n      uVar12 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar12 == 0) break;\n        uVar12 = uVar12 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar12 = ~uVar12 - 1;\n      lVar20 = 0;\n    }\n    else {\n      lVar24 = (longdouble)1;\n      iVar21 = 0;\n      do {\n        lVar24 = lVar24 * (longdouble)uVar5;\n        iVar21 = iVar21 + 1;\n        if (lVar26 < (longdouble)uVar5 * lVar24) break;\n      } while (iVar21 < 8);\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.1Lf");\n      uVar13 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar13 == 0) break;\n        uVar13 = uVar13 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar13 = ~uVar13;\n      uVar12 = uVar13 - 1;\n      lVar20 = uVar19 + 1;\n      if ((uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||\n         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))) {\n        adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));\n        __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n        uVar12 = 0xffffffffffffffff;\n        pcVar18 = buf;\n        do {\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar12 = ~uVar12 - 1;\n        lVar20 = 0;\n      }\n    }\n    __dest = pcVar10 + -uVar12;\n    memmove(__dest,buf,uVar12);\n    pcVar15 = __dest + (uVar12 - lVar20);\n  }\n  else {\n    if ((from_block_size % to_block_size != 0) ||\n       (uVar14 = (from_block_size / to_block_size) * n,\n       uVar14 / (from_block_size / to_block_size) != n)) goto LAB_00104dfa;\n    uVar16 = 0;\n    uVar12 = 0;\nLAB_00105103:\n    uVar7 = (uint)uVar12;\n    iVar21 = -1;\n    pcVar15 = pcVar10;\n    if ((opts & 0x10U) != 0) {\n      uVar13 = (ulong)uVar5;\n      if (uVar14 < uVar13) {\n        iVar21 = 0;\n      }\n      else {\n        iVar21 = 0;\n        uVar11 = uVar14;\n        do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));\n        if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar17 == 1) {\n      bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0));\n    }\n    else {\n      bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);\n    }\n    __dest = pcVar15;\n    if ((((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14)) &&\n       (iVar21 < 8)) {\n      iVar21 = iVar21 + 1;\n      if ((opts & 8U) == 0) {\n        pcVar15[-1] = '0';\n        pcVar15 = pcVar15 + ~uVar19;\n        memcpy(pcVar15,pcVar18,uVar19);\n      }\n      __dest = pcVar15 + -1;\n      pcVar15[-1] = '1';\n    }\n    else {\n      do {\n        __dest = __dest + -1;\n        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';\n        bVar3 = 9 < uVar14;\n        uVar14 = uVar14 / 10;\n      } while (bVar3);\n    }\n  }" if (parenthesized_expression "(from_block_size < to_block_size)" ( (binary_expression "from_block_size < to_block_size" identifier < identifier) )) (compound_statement "{\n    if ((from_block_size != 0) && (to_block_size % from_block_size == 0)) {\n      uVar11 = to_block_size / from_block_size;\n      uVar14 = n / uVar11;\n      uVar12 = (n % uVar11) * 10;\n      uVar13 = (uVar12 % uVar11) * 2;\n      uVar12 = uVar12 / uVar11 & 0xffffffff;\n      if (uVar13 < uVar11) {\n        uVar16 = (uint)(uVar13 != 0);\n      }\n      else {\n        uVar16 = (uVar11 < uVar13) + 2;\n      }\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar24 = (longdouble)(long)from_block_size;\n    if ((long)from_block_size < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    lVar25 = (longdouble)(long)to_block_size;\n    if ((long)to_block_size < 0) {\n      lVar25 = lVar25 + (longdouble)_DAT_0010b274;\n    }\n    lVar26 = (longdouble)(long)n;\n    if ((long)n < 0) {\n      lVar26 = lVar26 + (longdouble)_DAT_0010b274;\n    }\n    lVar26 = lVar26 * (lVar24 / lVar25);\n    if ((opts & 0x10U) == 0) {\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n      iVar21 = -1;\n      uVar12 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar12 == 0) break;\n        uVar12 = uVar12 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar12 = ~uVar12 - 1;\n      lVar20 = 0;\n    }\n    else {\n      lVar24 = (longdouble)1;\n      iVar21 = 0;\n      do {\n        lVar24 = lVar24 * (longdouble)uVar5;\n        iVar21 = iVar21 + 1;\n        if (lVar26 < (longdouble)uVar5 * lVar24) break;\n      } while (iVar21 < 8);\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.1Lf");\n      uVar13 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar13 == 0) break;\n        uVar13 = uVar13 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar13 = ~uVar13;\n      uVar12 = uVar13 - 1;\n      lVar20 = uVar19 + 1;\n      if ((uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||\n         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))) {\n        adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));\n        __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n        uVar12 = 0xffffffffffffffff;\n        pcVar18 = buf;\n        do {\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar12 = ~uVar12 - 1;\n        lVar20 = 0;\n      }\n    }\n    __dest = pcVar10 + -uVar12;\n    memmove(__dest,buf,uVar12);\n    pcVar15 = __dest + (uVar12 - lVar20);\n  }" { (if_statement "if ((from_block_size != 0) && (to_block_size % from_block_size == 0)) {\n      uVar11 = to_block_size / from_block_size;\n      uVar14 = n / uVar11;\n      uVar12 = (n % uVar11) * 10;\n      uVar13 = (uVar12 % uVar11) * 2;\n      uVar12 = uVar12 / uVar11 & 0xffffffff;\n      if (uVar13 < uVar11) {\n        uVar16 = (uint)(uVar13 != 0);\n      }\n      else {\n        uVar16 = (uVar11 < uVar13) + 2;\n      }\n      goto LAB_00105103;\n    }" if (parenthesized_expression "((from_block_size != 0) && (to_block_size % from_block_size == 0))" ( (binary_expression "(from_block_size != 0) && (to_block_size % from_block_size == 0)" (parenthesized_expression "(from_block_size != 0)" ( (binary_expression "from_block_size != 0" identifier != number_literal) )) && (parenthesized_expression "(to_block_size % from_block_size == 0)" ( (binary_expression "to_block_size % from_block_size == 0" (binary_expression "to_block_size % from_block_size" identifier % identifier) == number_literal) ))) )) (compound_statement "{\n      uVar11 = to_block_size / from_block_size;\n      uVar14 = n / uVar11;\n      uVar12 = (n % uVar11) * 10;\n      uVar13 = (uVar12 % uVar11) * 2;\n      uVar12 = uVar12 / uVar11 & 0xffffffff;\n      if (uVar13 < uVar11) {\n        uVar16 = (uint)(uVar13 != 0);\n      }\n      else {\n        uVar16 = (uVar11 < uVar13) + 2;\n      }\n      goto LAB_00105103;\n    }" { (expression_statement "uVar11 = to_block_size / from_block_size;" (assignment_expression "uVar11 = to_block_size / from_block_size" identifier = (binary_expression "to_block_size / from_block_size" identifier / identifier)) ;) (expression_statement "uVar14 = n / uVar11;" (assignment_expression "uVar14 = n / uVar11" identifier = (binary_expression "n / uVar11" identifier / identifier)) ;) (expression_statement "uVar12 = (n % uVar11) * 10;" (assignment_expression "uVar12 = (n % uVar11) * 10" identifier = (binary_expression "(n % uVar11) * 10" (parenthesized_expression "(n % uVar11)" ( (binary_expression "n % uVar11" identifier % identifier) )) * number_literal)) ;) (expression_statement "uVar13 = (uVar12 % uVar11) * 2;" (assignment_expression "uVar13 = (uVar12 % uVar11) * 2" identifier = (binary_expression "(uVar12 % uVar11) * 2" (parenthesized_expression "(uVar12 % uVar11)" ( (binary_expression "uVar12 % uVar11" identifier % identifier) )) * number_literal)) ;) (expression_statement "uVar12 = uVar12 / uVar11 & 0xffffffff;" (assignment_expression "uVar12 = uVar12 / uVar11 & 0xffffffff" identifier = (binary_expression "uVar12 / uVar11 & 0xffffffff" (binary_expression "uVar12 / uVar11" identifier / identifier) & number_literal)) ;) (if_statement "if (uVar13 < uVar11) {\n        uVar16 = (uint)(uVar13 != 0);\n      }\n      else {\n        uVar16 = (uVar11 < uVar13) + 2;\n      }" if (parenthesized_expression "(uVar13 < uVar11)" ( (binary_expression "uVar13 < uVar11" identifier < identifier) )) (compound_statement "{\n        uVar16 = (uint)(uVar13 != 0);\n      }" { (expression_statement "uVar16 = (uint)(uVar13 != 0);" (assignment_expression "uVar16 = (uint)(uVar13 != 0)" identifier = (call_expression "(uint)(uVar13 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n        uVar16 = (uVar11 < uVar13) + 2;\n      }" else (compound_statement "{\n        uVar16 = (uVar11 < uVar13) + 2;\n      }" { (expression_statement "uVar16 = (uVar11 < uVar13) + 2;" (assignment_expression "uVar16 = (uVar11 < uVar13) + 2" identifier = (binary_expression "(uVar11 < uVar13) + 2" (parenthesized_expression "(uVar11 < uVar13)" ( (binary_expression "uVar11 < uVar13" identifier < identifier) )) + number_literal)) ;) }))) (goto_statement "goto LAB_00105103;" goto statement_identifier ;) })) (labeled_statement "LAB_00104dfa:\n    lVar24 = (longdouble)(long)from_block_size;" statement_identifier : (expression_statement "lVar24 = (longdouble)(long)from_block_size;" (assignment_expression "lVar24 = (longdouble)(long)from_block_size" identifier = (cast_expression "(longdouble)(long)from_block_size" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(long)from_block_size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;)) (if_statement "if ((long)from_block_size < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }" if (parenthesized_expression "((long)from_block_size < 0)" ( (binary_expression "(long)from_block_size < 0" (cast_expression "(long)from_block_size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }" { (expression_statement "lVar24 = lVar24 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar24 = lVar24 + (longdouble)_DAT_0010b274" identifier = (binary_expression "lVar24 + (longdouble)_DAT_0010b274" identifier + (cast_expression "(longdouble)_DAT_0010b274" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (expression_statement "lVar25 = (longdouble)(long)to_block_size;" (assignment_expression "lVar25 = (longdouble)(long)to_block_size" identifier = (cast_expression "(longdouble)(long)to_block_size" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(long)to_block_size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((long)to_block_size < 0) {\n      lVar25 = lVar25 + (longdouble)_DAT_0010b274;\n    }" if (parenthesized_expression "((long)to_block_size < 0)" ( (binary_expression "(long)to_block_size < 0" (cast_expression "(long)to_block_size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      lVar25 = lVar25 + (longdouble)_DAT_0010b274;\n    }" { (expression_statement "lVar25 = lVar25 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar25 = lVar25 + (longdouble)_DAT_0010b274" identifier = (binary_expression "lVar25 + (longdouble)_DAT_0010b274" identifier + (cast_expression "(longdouble)_DAT_0010b274" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (expression_statement "lVar26 = (longdouble)(long)n;" (assignment_expression "lVar26 = (longdouble)(long)n" identifier = (cast_expression "(longdouble)(long)n" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(long)n" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((long)n < 0) {\n      lVar26 = lVar26 + (longdouble)_DAT_0010b274;\n    }" if (parenthesized_expression "((long)n < 0)" ( (binary_expression "(long)n < 0" (cast_expression "(long)n" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      lVar26 = lVar26 + (longdouble)_DAT_0010b274;\n    }" { (expression_statement "lVar26 = lVar26 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar26 = lVar26 + (longdouble)_DAT_0010b274" identifier = (binary_expression "lVar26 + (longdouble)_DAT_0010b274" identifier + (cast_expression "(longdouble)_DAT_0010b274" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (expression_statement "lVar26 = lVar26 * (lVar24 / lVar25);" (assignment_expression "lVar26 = lVar26 * (lVar24 / lVar25)" identifier = (binary_expression "lVar26 * (lVar24 / lVar25)" identifier * (parenthesized_expression "(lVar24 / lVar25)" ( (binary_expression "lVar24 / lVar25" identifier / identifier) )))) ;) (if_statement "if ((opts & 0x10U) == 0) {\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n      iVar21 = -1;\n      uVar12 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar12 == 0) break;\n        uVar12 = uVar12 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar12 = ~uVar12 - 1;\n      lVar20 = 0;\n    }\n    else {\n      lVar24 = (longdouble)1;\n      iVar21 = 0;\n      do {\n        lVar24 = lVar24 * (longdouble)uVar5;\n        iVar21 = iVar21 + 1;\n        if (lVar26 < (longdouble)uVar5 * lVar24) break;\n      } while (iVar21 < 8);\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.1Lf");\n      uVar13 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar13 == 0) break;\n        uVar13 = uVar13 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar13 = ~uVar13;\n      uVar12 = uVar13 - 1;\n      lVar20 = uVar19 + 1;\n      if ((uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||\n         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))) {\n        adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));\n        __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n        uVar12 = 0xffffffffffffffff;\n        pcVar18 = buf;\n        do {\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar12 = ~uVar12 - 1;\n        lVar20 = 0;\n      }\n    }" if (parenthesized_expression "((opts & 0x10U) == 0)" ( (binary_expression "(opts & 0x10U) == 0" (parenthesized_expression "(opts & 0x10U)" ( (binary_expression "opts & 0x10U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n      iVar21 = -1;\n      uVar12 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar12 == 0) break;\n        uVar12 = uVar12 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar12 = ~uVar12 - 1;\n      lVar20 = 0;\n    }" { (expression_statement "adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26);" (call_expression "adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26)" identifier (argument_list "((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26)" ( (cast_expression "(longdouble *)(ulong)uVar17" ( (type_descriptor "longdouble *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar17" ( (type_descriptor "ulong" type_identifier) ) identifier)) , (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) , identifier ))) ;) (expression_statement "__sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");" (call_expression "__sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf")" identifier (argument_list "(buf,1,0xffffffffffffffff,"%.0Lf")" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") ))) ;) (expression_statement "iVar21 = -1;" (assignment_expression "iVar21 = -1" identifier = number_literal) ;) (expression_statement "uVar12 = 0xffffffffffffffff;" (assignment_expression "uVar12 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar18 = buf;" (assignment_expression "pcVar18 = buf" identifier = identifier) ;) (do_statement "do {\n        if (uVar12 == 0) break;\n        uVar12 = uVar12 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');" do (compound_statement "{\n        if (uVar12 == 0) break;\n        uVar12 = uVar12 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      }" { (if_statement "if (uVar12 == 0) break;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar18;" (assignment_expression "cVar1 = *pcVar18" identifier = (pointer_expression "*pcVar18" * identifier)) ;) (expression_statement "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pcVar18 + (ulong)bVar23 * -2 + 1" (binary_expression "pcVar18 + (ulong)bVar23 * -2" identifier + (binary_expression "(ulong)bVar23 * -2" (cast_expression "(ulong)bVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar12 = ~uVar12 - 1;" (assignment_expression "uVar12 = ~uVar12 - 1" identifier = (binary_expression "~uVar12 - 1" (unary_expression "~uVar12" ~ identifier) - number_literal)) ;) (expression_statement "lVar20 = 0;" (assignment_expression "lVar20 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      lVar24 = (longdouble)1;\n      iVar21 = 0;\n      do {\n        lVar24 = lVar24 * (longdouble)uVar5;\n        iVar21 = iVar21 + 1;\n        if (lVar26 < (longdouble)uVar5 * lVar24) break;\n      } while (iVar21 < 8);\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.1Lf");\n      uVar13 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar13 == 0) break;\n        uVar13 = uVar13 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar13 = ~uVar13;\n      uVar12 = uVar13 - 1;\n      lVar20 = uVar19 + 1;\n      if ((uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||\n         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))) {\n        adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));\n        __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n        uVar12 = 0xffffffffffffffff;\n        pcVar18 = buf;\n        do {\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar12 = ~uVar12 - 1;\n        lVar20 = 0;\n      }\n    }" else (compound_statement "{\n      lVar24 = (longdouble)1;\n      iVar21 = 0;\n      do {\n        lVar24 = lVar24 * (longdouble)uVar5;\n        iVar21 = iVar21 + 1;\n        if (lVar26 < (longdouble)uVar5 * lVar24) break;\n      } while (iVar21 < 8);\n      adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24);\n      __sprintf_chk(buf,1,0xffffffffffffffff,"%.1Lf");\n      uVar13 = 0xffffffffffffffff;\n      pcVar18 = buf;\n      do {\n        if (uVar13 == 0) break;\n        uVar13 = uVar13 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar13 = ~uVar13;\n      uVar12 = uVar13 - 1;\n      lVar20 = uVar19 + 1;\n      if ((uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||\n         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))) {\n        adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));\n        __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n        uVar12 = 0xffffffffffffffff;\n        pcVar18 = buf;\n        do {\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar12 = ~uVar12 - 1;\n        lVar20 = 0;\n      }\n    }" { (expression_statement "lVar24 = (longdouble)1;" (assignment_expression "lVar24 = (longdouble)1" identifier = (cast_expression "(longdouble)1" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;) (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (do_statement "do {\n        lVar24 = lVar24 * (longdouble)uVar5;\n        iVar21 = iVar21 + 1;\n        if (lVar26 < (longdouble)uVar5 * lVar24) break;\n      } while (iVar21 < 8);" do (compound_statement "{\n        lVar24 = lVar24 * (longdouble)uVar5;\n        iVar21 = iVar21 + 1;\n        if (lVar26 < (longdouble)uVar5 * lVar24) break;\n      }" { (expression_statement "lVar24 = lVar24 * (longdouble)uVar5;" (assignment_expression "lVar24 = lVar24 * (longdouble)uVar5" identifier = (binary_expression "lVar24 * (longdouble)uVar5" identifier * (cast_expression "(longdouble)uVar5" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (if_statement "if (lVar26 < (longdouble)uVar5 * lVar24) break;" if (parenthesized_expression "(lVar26 < (longdouble)uVar5 * lVar24)" ( (binary_expression "lVar26 < (longdouble)uVar5 * lVar24" identifier < (binary_expression "(longdouble)uVar5 * lVar24" (cast_expression "(longdouble)uVar5" ( (type_descriptor "longdouble" type_identifier) ) identifier) * identifier)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar21 < 8)" ( (binary_expression "iVar21 < 8" identifier < number_literal) )) ;) (expression_statement "adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24);" (call_expression "adjust_value((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24)" identifier (argument_list "((longdouble *)(ulong)uVar17,(int)pcVar15,lVar26 / lVar24)" ( (cast_expression "(longdouble *)(ulong)uVar17" ( (type_descriptor "longdouble *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar17" ( (type_descriptor "ulong" type_identifier) ) identifier)) , (cast_expression "(int)pcVar15" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "lVar26 / lVar24" identifier / identifier) ))) ;) (expression_statement "__sprintf_chk(buf,1,0xffffffffffffffff,"%.1Lf");" (call_expression "__sprintf_chk(buf,1,0xffffffffffffffff,"%.1Lf")" identifier (argument_list "(buf,1,0xffffffffffffffff,"%.1Lf")" ( identifier , number_literal , number_literal , (string_literal ""%.1Lf"" " string_content ") ))) ;) (expression_statement "uVar13 = 0xffffffffffffffff;" (assignment_expression "uVar13 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar18 = buf;" (assignment_expression "pcVar18 = buf" identifier = identifier) ;) (do_statement "do {\n        if (uVar13 == 0) break;\n        uVar13 = uVar13 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      } while (cVar1 != '\0');" do (compound_statement "{\n        if (uVar13 == 0) break;\n        uVar13 = uVar13 - 1;\n        cVar1 = *pcVar18;\n        pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n      }" { (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar13 = uVar13 - 1;" (assignment_expression "uVar13 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar18;" (assignment_expression "cVar1 = *pcVar18" identifier = (pointer_expression "*pcVar18" * identifier)) ;) (expression_statement "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pcVar18 + (ulong)bVar23 * -2 + 1" (binary_expression "pcVar18 + (ulong)bVar23 * -2" identifier + (binary_expression "(ulong)bVar23 * -2" (cast_expression "(ulong)bVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar13 = ~uVar13;" (assignment_expression "uVar13 = ~uVar13" identifier = (unary_expression "~uVar13" ~ identifier)) ;) (expression_statement "uVar12 = uVar13 - 1;" (assignment_expression "uVar12 = uVar13 - 1" identifier = (binary_expression "uVar13 - 1" identifier - number_literal)) ;) (expression_statement "lVar20 = uVar19 + 1;" (assignment_expression "lVar20 = uVar19 + 1" identifier = (binary_expression "uVar19 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||\n         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))) {\n        adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));\n        __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n        uVar12 = 0xffffffffffffffff;\n        pcVar18 = buf;\n        do {\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar12 = ~uVar12 - 1;\n        lVar20 = 0;\n      }" if (parenthesized_expression "((uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||\n         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0'))))" ( (binary_expression "(uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12) ||\n         (((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))" (parenthesized_expression "(uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12)" ( (binary_expression "uVar19 + 2 + (ulong)(uVar4 == 0) < uVar12" (binary_expression "uVar19 + 2 + (ulong)(uVar4 == 0)" (binary_expression "uVar19 + 2" identifier + number_literal) + (call_expression "(ulong)(uVar4 == 0)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )))) < identifier) )) || (parenthesized_expression "(((opts & 8U) != 0 && (buf[uVar13 - 2] == '0')))" ( (parenthesized_expression "((opts & 8U) != 0 && (buf[uVar13 - 2] == '0'))" ( (binary_expression "(opts & 8U) != 0 && (buf[uVar13 - 2] == '0')" (binary_expression "(opts & 8U) != 0" (parenthesized_expression "(opts & 8U)" ( (binary_expression "opts & 8U" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(buf[uVar13 - 2] == '0')" ( (binary_expression "buf[uVar13 - 2] == '0'" (subscript_expression "buf[uVar13 - 2]" identifier [ (binary_expression "uVar13 - 2" identifier - number_literal) ]) == (char_literal "'0'" ' character ')) ))) )) ))) )) (compound_statement "{\n        adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));\n        __sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");\n        uVar12 = 0xffffffffffffffff;\n        pcVar18 = buf;\n        do {\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar12 = ~uVar12 - 1;\n        lVar20 = 0;\n      }" { (expression_statement "adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24));" (call_expression "adjust_value((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24))" identifier (argument_list "((longdouble *)(ulong)uVar17,(int)uVar13,_DAT_0010b260 * (lVar26 / lVar24))" ( (cast_expression "(longdouble *)(ulong)uVar17" ( (type_descriptor "longdouble *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)uVar17" ( (type_descriptor "ulong" type_identifier) ) identifier)) , (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "_DAT_0010b260 * (lVar26 / lVar24)" identifier * (parenthesized_expression "(lVar26 / lVar24)" ( (binary_expression "lVar26 / lVar24" identifier / identifier) ))) ))) ;) (expression_statement "__sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf");" (call_expression "__sprintf_chk(buf,1,0xffffffffffffffff,"%.0Lf")" identifier (argument_list "(buf,1,0xffffffffffffffff,"%.0Lf")" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") ))) ;) (expression_statement "uVar12 = 0xffffffffffffffff;" (assignment_expression "uVar12 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar18 = buf;" (assignment_expression "pcVar18 = buf" identifier = identifier) ;) (do_statement "do {\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (uVar12 == 0) break;\n          uVar12 = uVar12 - 1;\n          cVar1 = *pcVar18;\n          pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n        }" { (if_statement "if (uVar12 == 0) break;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = uVar12 - 1;" (assignment_expression "uVar12 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar18;" (assignment_expression "cVar1 = *pcVar18" identifier = (pointer_expression "*pcVar18" * identifier)) ;) (expression_statement "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pcVar18 + (ulong)bVar23 * -2 + 1" (binary_expression "pcVar18 + (ulong)bVar23 * -2" identifier + (binary_expression "(ulong)bVar23 * -2" (cast_expression "(ulong)bVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar12 = ~uVar12 - 1;" (assignment_expression "uVar12 = ~uVar12 - 1" identifier = (binary_expression "~uVar12 - 1" (unary_expression "~uVar12" ~ identifier) - number_literal)) ;) (expression_statement "lVar20 = 0;" (assignment_expression "lVar20 = 0" identifier = number_literal) ;) })) }))) (expression_statement "__dest = pcVar10 + -uVar12;" (assignment_expression "__dest = pcVar10 + -uVar12" identifier = (binary_expression "pcVar10 + -uVar12" identifier + (unary_expression "-uVar12" - identifier))) ;) (expression_statement "memmove(__dest,buf,uVar12);" (call_expression "memmove(__dest,buf,uVar12)" identifier (argument_list "(__dest,buf,uVar12)" ( identifier , identifier , identifier ))) ;) (expression_statement "pcVar15 = __dest + (uVar12 - lVar20);" (assignment_expression "pcVar15 = __dest + (uVar12 - lVar20)" identifier = (binary_expression "__dest + (uVar12 - lVar20)" identifier + (parenthesized_expression "(uVar12 - lVar20)" ( (binary_expression "uVar12 - lVar20" identifier - identifier) )))) ;) }) (else_clause "else {\n    if ((from_block_size % to_block_size != 0) ||\n       (uVar14 = (from_block_size / to_block_size) * n,\n       uVar14 / (from_block_size / to_block_size) != n)) goto LAB_00104dfa;\n    uVar16 = 0;\n    uVar12 = 0;\nLAB_00105103:\n    uVar7 = (uint)uVar12;\n    iVar21 = -1;\n    pcVar15 = pcVar10;\n    if ((opts & 0x10U) != 0) {\n      uVar13 = (ulong)uVar5;\n      if (uVar14 < uVar13) {\n        iVar21 = 0;\n      }\n      else {\n        iVar21 = 0;\n        uVar11 = uVar14;\n        do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));\n        if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar17 == 1) {\n      bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0));\n    }\n    else {\n      bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);\n    }\n    __dest = pcVar15;\n    if ((((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14)) &&\n       (iVar21 < 8)) {\n      iVar21 = iVar21 + 1;\n      if ((opts & 8U) == 0) {\n        pcVar15[-1] = '0';\n        pcVar15 = pcVar15 + ~uVar19;\n        memcpy(pcVar15,pcVar18,uVar19);\n      }\n      __dest = pcVar15 + -1;\n      pcVar15[-1] = '1';\n    }\n    else {\n      do {\n        __dest = __dest + -1;\n        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';\n        bVar3 = 9 < uVar14;\n        uVar14 = uVar14 / 10;\n      } while (bVar3);\n    }\n  }" else (compound_statement "{\n    if ((from_block_size % to_block_size != 0) ||\n       (uVar14 = (from_block_size / to_block_size) * n,\n       uVar14 / (from_block_size / to_block_size) != n)) goto LAB_00104dfa;\n    uVar16 = 0;\n    uVar12 = 0;\nLAB_00105103:\n    uVar7 = (uint)uVar12;\n    iVar21 = -1;\n    pcVar15 = pcVar10;\n    if ((opts & 0x10U) != 0) {\n      uVar13 = (ulong)uVar5;\n      if (uVar14 < uVar13) {\n        iVar21 = 0;\n      }\n      else {\n        iVar21 = 0;\n        uVar11 = uVar14;\n        do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));\n        if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar17 == 1) {\n      bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0));\n    }\n    else {\n      bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);\n    }\n    __dest = pcVar15;\n    if ((((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14)) &&\n       (iVar21 < 8)) {\n      iVar21 = iVar21 + 1;\n      if ((opts & 8U) == 0) {\n        pcVar15[-1] = '0';\n        pcVar15 = pcVar15 + ~uVar19;\n        memcpy(pcVar15,pcVar18,uVar19);\n      }\n      __dest = pcVar15 + -1;\n      pcVar15[-1] = '1';\n    }\n    else {\n      do {\n        __dest = __dest + -1;\n        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';\n        bVar3 = 9 < uVar14;\n        uVar14 = uVar14 / 10;\n      } while (bVar3);\n    }\n  }" { (if_statement "if ((from_block_size % to_block_size != 0) ||\n       (uVar14 = (from_block_size / to_block_size) * n,\n       uVar14 / (from_block_size / to_block_size) != n)) goto LAB_00104dfa;" if (parenthesized_expression "((from_block_size % to_block_size != 0) ||\n       (uVar14 = (from_block_size / to_block_size) * n,\n       uVar14 / (from_block_size / to_block_size) != n))" ( (binary_expression "(from_block_size % to_block_size != 0) ||\n       (uVar14 = (from_block_size / to_block_size) * n,\n       uVar14 / (from_block_size / to_block_size) != n)" (parenthesized_expression "(from_block_size % to_block_size != 0)" ( (binary_expression "from_block_size % to_block_size != 0" (binary_expression "from_block_size % to_block_size" identifier % identifier) != number_literal) )) || (parenthesized_expression "(uVar14 = (from_block_size / to_block_size) * n,\n       uVar14 / (from_block_size / to_block_size) != n)" ( (comma_expression "uVar14 = (from_block_size / to_block_size) * n,\n       uVar14 / (from_block_size / to_block_size) != n" (assignment_expression "uVar14 = (from_block_size / to_block_size) * n" identifier = (binary_expression "(from_block_size / to_block_size) * n" (parenthesized_expression "(from_block_size / to_block_size)" ( (binary_expression "from_block_size / to_block_size" identifier / identifier) )) * identifier)) , (binary_expression "uVar14 / (from_block_size / to_block_size) != n" (binary_expression "uVar14 / (from_block_size / to_block_size)" identifier / (parenthesized_expression "(from_block_size / to_block_size)" ( (binary_expression "from_block_size / to_block_size" identifier / identifier) ))) != identifier)) ))) )) (goto_statement "goto LAB_00104dfa;" goto statement_identifier ;)) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00105103:\n    uVar7 = (uint)uVar12;" statement_identifier : (expression_statement "uVar7 = (uint)uVar12;" (assignment_expression "uVar7 = (uint)uVar12" identifier = (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "iVar21 = -1;" (assignment_expression "iVar21 = -1" identifier = number_literal) ;) (expression_statement "pcVar15 = pcVar10;" (assignment_expression "pcVar15 = pcVar10" identifier = identifier) ;) (if_statement "if ((opts & 0x10U) != 0) {\n      uVar13 = (ulong)uVar5;\n      if (uVar14 < uVar13) {\n        iVar21 = 0;\n      }\n      else {\n        iVar21 = 0;\n        uVar11 = uVar14;\n        do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));\n        if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }\n      }\n    }" if (parenthesized_expression "((opts & 0x10U) != 0)" ( (binary_expression "(opts & 0x10U) != 0" (parenthesized_expression "(opts & 0x10U)" ( (binary_expression "opts & 0x10U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar13 = (ulong)uVar5;\n      if (uVar14 < uVar13) {\n        iVar21 = 0;\n      }\n      else {\n        iVar21 = 0;\n        uVar11 = uVar14;\n        do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));\n        if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }\n      }\n    }" { (expression_statement "uVar13 = (ulong)uVar5;" (assignment_expression "uVar13 = (ulong)uVar5" identifier = (cast_expression "(ulong)uVar5" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar14 < uVar13) {\n        iVar21 = 0;\n      }\n      else {\n        iVar21 = 0;\n        uVar11 = uVar14;\n        do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));\n        if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }\n      }" if (parenthesized_expression "(uVar14 < uVar13)" ( (binary_expression "uVar14 < uVar13" identifier < identifier) )) (compound_statement "{\n        iVar21 = 0;\n      }" { (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar21 = 0;\n        uVar11 = uVar14;\n        do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));\n        if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }\n      }" else (compound_statement "{\n        iVar21 = 0;\n        uVar11 = uVar14;\n        do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));\n        if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }\n      }" { (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = uVar14;" (assignment_expression "uVar11 = uVar14" identifier = identifier) ;) (do_statement "do {\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        } while ((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14));" do (compound_statement "{\n          uVar14 = uVar11 / uVar13;\n          uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;\n          uVar7 = uVar6 / uVar5;\n          uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;\n          uVar12 = (ulong)uVar7;\n          if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }\n          iVar21 = iVar21 + 1;\n        }" { (expression_statement "uVar14 = uVar11 / uVar13;" (assignment_expression "uVar14 = uVar11 / uVar13" identifier = (binary_expression "uVar11 / uVar13" identifier / identifier)) ;) (expression_statement "uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10;" (assignment_expression "uVar6 = (int)uVar12 + (int)(uVar11 % uVar13) * 10" identifier = (binary_expression "(int)uVar12 + (int)(uVar11 % uVar13) * 10" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)(uVar11 % uVar13) * 10" (cast_expression "(int)(uVar11 % uVar13)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar11 % uVar13)" ( (binary_expression "uVar11 % uVar13" identifier % identifier) ))) * number_literal))) ;) (expression_statement "uVar7 = uVar6 / uVar5;" (assignment_expression "uVar7 = uVar6 / uVar5" identifier = (binary_expression "uVar6 / uVar5" identifier / identifier)) ;) (expression_statement "uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2;" (assignment_expression "uVar6 = ((int)uVar16 >> 1) + (uVar6 % uVar5) * 2" identifier = (binary_expression "((int)uVar16 >> 1) + (uVar6 % uVar5) * 2" (parenthesized_expression "((int)uVar16 >> 1)" ( (binary_expression "(int)uVar16 >> 1" (cast_expression "(int)uVar16" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (binary_expression "(uVar6 % uVar5) * 2" (parenthesized_expression "(uVar6 % uVar5)" ( (binary_expression "uVar6 % uVar5" identifier % identifier) )) * number_literal))) ;) (expression_statement "uVar12 = (ulong)uVar7;" (assignment_expression "uVar12 = (ulong)uVar7" identifier = (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar6 < uVar5) {\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }\n          else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }" if (parenthesized_expression "(uVar6 < uVar5)" ( (binary_expression "uVar6 < uVar5" identifier < identifier) )) (compound_statement "{\n            uVar16 = (uint)(uVar16 + uVar6 != 0);\n          }" { (expression_statement "uVar16 = (uint)(uVar16 + uVar6 != 0);" (assignment_expression "uVar16 = (uint)(uVar16 + uVar6 != 0)" identifier = (call_expression "(uint)(uVar16 + uVar6 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar16 + uVar6 != 0)" ( (binary_expression "uVar16 + uVar6 != 0" (binary_expression "uVar16 + uVar6" identifier + identifier) != number_literal) )))) ;) }) (else_clause "else {\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }" else (compound_statement "{\n            uVar16 = (uVar5 < uVar16 + uVar6) + 2;\n          }" { (expression_statement "uVar16 = (uVar5 < uVar16 + uVar6) + 2;" (assignment_expression "uVar16 = (uVar5 < uVar16 + uVar6) + 2" identifier = (binary_expression "(uVar5 < uVar16 + uVar6) + 2" (parenthesized_expression "(uVar5 < uVar16 + uVar6)" ( (binary_expression "uVar5 < uVar16 + uVar6" identifier < (binary_expression "uVar16 + uVar6" identifier + identifier)) )) + number_literal)) ;) }))) (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14))" ( (binary_expression "(iVar21 < 8) && (uVar11 = uVar14, uVar13 <= uVar14)" (parenthesized_expression "(iVar21 < 8)" ( (binary_expression "iVar21 < 8" identifier < number_literal) )) && (parenthesized_expression "(uVar11 = uVar14, uVar13 <= uVar14)" ( (comma_expression "uVar11 = uVar14, uVar13 <= uVar14" (assignment_expression "uVar11 = uVar14" identifier = identifier) , (binary_expression "uVar13 <= uVar14" identifier <= identifier)) ))) )) ;) (if_statement "if (uVar14 < 10) {\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }" if (parenthesized_expression "(uVar14 < 10)" ( (binary_expression "uVar14 < 10" identifier < number_literal) )) (compound_statement "{\n          if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }\n          if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          buf[0x286] = (char)uVar7 + '0';\n          memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);\n          uVar16 = 0;\n          uVar7 = 0;\n          pcVar15 = buf + (0x286 - uVar19);\n        }" { (if_statement "if (uVar17 == 1) {\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }\n          else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }" if (parenthesized_expression "(uVar17 == 1)" ( (binary_expression "uVar17 == 1" identifier == number_literal) )) (compound_statement "{\n            bVar3 = 2 < (uVar7 & 1) + uVar16;\n          }" { (expression_statement "bVar3 = 2 < (uVar7 & 1) + uVar16;" (assignment_expression "bVar3 = 2 < (uVar7 & 1) + uVar16" identifier = (binary_expression "2 < (uVar7 & 1) + uVar16" number_literal < (binary_expression "(uVar7 & 1) + uVar16" (parenthesized_expression "(uVar7 & 1)" ( (binary_expression "uVar7 & 1" identifier & number_literal) )) + identifier))) ;) }) (else_clause "else {\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }" else (compound_statement "{\n            bVar3 = uVar17 == 0 && uVar16 != 0;\n          }" { (expression_statement "bVar3 = uVar17 == 0 && uVar16 != 0;" (assignment_expression "bVar3 = uVar17 == 0 && uVar16 != 0" identifier = (binary_expression "uVar17 == 0 && uVar16 != 0" (binary_expression "uVar17 == 0" identifier == number_literal) && (binary_expression "uVar16 != 0" identifier != number_literal))) ;) }))) (if_statement "if (bVar3) {\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }" if (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n            uVar7 = uVar7 + 1;\n            if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }" { (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (if_statement "if (uVar7 == 10) {\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }" if (parenthesized_expression "(uVar7 == 10)" ( (binary_expression "uVar7 == 10" identifier == number_literal) )) (compound_statement "{\n              uVar14 = uVar14 + 1;\n              if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }\n              uVar16 = 0;\n              uVar7 = 0;\n              goto LAB_00105238;\n            }" { (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (if_statement "if (uVar14 < 10) {\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }" if (parenthesized_expression "(uVar14 < 10)" ( (binary_expression "uVar14 < 10" identifier < number_literal) )) (compound_statement "{\n                uVar16 = 0;\n                uVar7 = 0;\n                goto LAB_00105494;\n              }" { (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00105494;" goto statement_identifier ;) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00105238;" goto statement_identifier ;) })) }) (else_clause "else if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }" else (if_statement "if (uVar7 == 0) {\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }\n          }" { (labeled_statement "LAB_00105494:\n            if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }" statement_identifier : (if_statement "if ((opts & 8U) != 0) {\n              uVar7 = 0;\n              goto LAB_00105238;\n            }" if (parenthesized_expression "((opts & 8U) != 0)" ( (binary_expression "(opts & 8U) != 0" (parenthesized_expression "(opts & 8U)" ( (binary_expression "opts & 8U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar7 = 0;\n              goto LAB_00105238;\n            }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00105238;" goto statement_identifier ;) }))) })))) (expression_statement "buf[0x286] = (char)uVar7 + '0';" (assignment_expression "buf[0x286] = (char)uVar7 + '0'" (subscript_expression "buf[0x286]" identifier [ number_literal ]) = (binary_expression "(char)uVar7 + '0'" (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character '))) ;) (expression_statement "memcpy(buf + (0x286 - uVar19),pcVar18,uVar19);" (call_expression "memcpy(buf + (0x286 - uVar19),pcVar18,uVar19)" identifier (argument_list "(buf + (0x286 - uVar19),pcVar18,uVar19)" ( (binary_expression "buf + (0x286 - uVar19)" identifier + (parenthesized_expression "(0x286 - uVar19)" ( (binary_expression "0x286 - uVar19" number_literal - identifier) ))) , identifier , identifier ))) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "pcVar15 = buf + (0x286 - uVar19);" (assignment_expression "pcVar15 = buf + (0x286 - uVar19)" identifier = (binary_expression "buf + (0x286 - uVar19)" identifier + (parenthesized_expression "(0x286 - uVar19)" ( (binary_expression "0x286 - uVar19" number_literal - identifier) )))) ;) })) }))) })) (labeled_statement "LAB_00105238:\n    if (uVar17 == 1) {\n      bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0));\n    }\n    else {\n      bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);\n    }" statement_identifier : (if_statement "if (uVar17 == 1) {\n      bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0));\n    }\n    else {\n      bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);\n    }" if (parenthesized_expression "(uVar17 == 1)" ( (binary_expression "uVar17 == 1" identifier == number_literal) )) (compound_statement "{\n      bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0));\n    }" { (expression_statement "bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0));" (assignment_expression "bVar3 = 5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0))" identifier = (binary_expression "5 < (int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0))" number_literal < (cast_expression "(int)(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar7 + (((uint)uVar14 & 1) + uVar16 != 0))" ( (binary_expression "uVar7 + (((uint)uVar14 & 1) + uVar16 != 0)" identifier + (parenthesized_expression "(((uint)uVar14 & 1) + uVar16 != 0)" ( (binary_expression "((uint)uVar14 & 1) + uVar16 != 0" (binary_expression "((uint)uVar14 & 1) + uVar16" (parenthesized_expression "((uint)uVar14 & 1)" ( (binary_expression "(uint)uVar14 & 1" (cast_expression "(uint)uVar14" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) + identifier) != number_literal) ))) ))))) ;) }) (else_clause "else {\n      bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);\n    }" else (compound_statement "{\n      bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);\n    }" { (expression_statement "bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16);" (assignment_expression "bVar3 = uVar17 == 0 && 0 < (int)(uVar7 + uVar16)" identifier = (binary_expression "uVar17 == 0 && 0 < (int)(uVar7 + uVar16)" (binary_expression "uVar17 == 0" identifier == number_literal) && (binary_expression "0 < (int)(uVar7 + uVar16)" number_literal < (cast_expression "(int)(uVar7 + uVar16)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar7 + uVar16)" ( (binary_expression "uVar7 + uVar16" identifier + identifier) )))))) ;) })))) (expression_statement "__dest = pcVar15;" (assignment_expression "__dest = pcVar15" identifier = identifier) ;) (if_statement "if ((((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14)) &&\n       (iVar21 < 8)) {\n      iVar21 = iVar21 + 1;\n      if ((opts & 8U) == 0) {\n        pcVar15[-1] = '0';\n        pcVar15 = pcVar15 + ~uVar19;\n        memcpy(pcVar15,pcVar18,uVar19);\n      }\n      __dest = pcVar15 + -1;\n      pcVar15[-1] = '1';\n    }\n    else {\n      do {\n        __dest = __dest + -1;\n        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';\n        bVar3 = 9 < uVar14;\n        uVar14 = uVar14 / 10;\n      } while (bVar3);\n    }" if (parenthesized_expression "((((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14)) &&\n       (iVar21 < 8))" ( (binary_expression "(((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14)) &&\n       (iVar21 < 8)" (parenthesized_expression "(((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14))" ( (binary_expression "((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)) && (uVar5 == uVar14)" (parenthesized_expression "((bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0))" ( (binary_expression "(bVar3) && (uVar14 = uVar14 + 1, (opts & 0x10U) != 0)" (parenthesized_expression "(bVar3)" ( identifier )) && (parenthesized_expression "(uVar14 = uVar14 + 1, (opts & 0x10U) != 0)" ( (comma_expression "uVar14 = uVar14 + 1, (opts & 0x10U) != 0" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) , (binary_expression "(opts & 0x10U) != 0" (parenthesized_expression "(opts & 0x10U)" ( (binary_expression "opts & 0x10U" identifier & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "(uVar5 == uVar14)" ( (binary_expression "uVar5 == uVar14" identifier == identifier) ))) )) && (parenthesized_expression "(iVar21 < 8)" ( (binary_expression "iVar21 < 8" identifier < number_literal) ))) )) (compound_statement "{\n      iVar21 = iVar21 + 1;\n      if ((opts & 8U) == 0) {\n        pcVar15[-1] = '0';\n        pcVar15 = pcVar15 + ~uVar19;\n        memcpy(pcVar15,pcVar18,uVar19);\n      }\n      __dest = pcVar15 + -1;\n      pcVar15[-1] = '1';\n    }" { (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) (if_statement "if ((opts & 8U) == 0) {\n        pcVar15[-1] = '0';\n        pcVar15 = pcVar15 + ~uVar19;\n        memcpy(pcVar15,pcVar18,uVar19);\n      }" if (parenthesized_expression "((opts & 8U) == 0)" ( (binary_expression "(opts & 8U) == 0" (parenthesized_expression "(opts & 8U)" ( (binary_expression "opts & 8U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar15[-1] = '0';\n        pcVar15 = pcVar15 + ~uVar19;\n        memcpy(pcVar15,pcVar18,uVar19);\n      }" { (expression_statement "pcVar15[-1] = '0';" (assignment_expression "pcVar15[-1] = '0'" (subscript_expression "pcVar15[-1]" identifier [ number_literal ]) = (char_literal "'0'" ' character ')) ;) (expression_statement "pcVar15 = pcVar15 + ~uVar19;" (assignment_expression "pcVar15 = pcVar15 + ~uVar19" identifier = (binary_expression "pcVar15 + ~uVar19" identifier + (unary_expression "~uVar19" ~ identifier))) ;) (expression_statement "memcpy(pcVar15,pcVar18,uVar19);" (call_expression "memcpy(pcVar15,pcVar18,uVar19)" identifier (argument_list "(pcVar15,pcVar18,uVar19)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "__dest = pcVar15 + -1;" (assignment_expression "__dest = pcVar15 + -1" identifier = (binary_expression "pcVar15 + -1" identifier + number_literal)) ;) (expression_statement "pcVar15[-1] = '1';" (assignment_expression "pcVar15[-1] = '1'" (subscript_expression "pcVar15[-1]" identifier [ number_literal ]) = (char_literal "'1'" ' character ')) ;) }) (else_clause "else {\n      do {\n        __dest = __dest + -1;\n        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';\n        bVar3 = 9 < uVar14;\n        uVar14 = uVar14 / 10;\n      } while (bVar3);\n    }" else (compound_statement "{\n      do {\n        __dest = __dest + -1;\n        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';\n        bVar3 = 9 < uVar14;\n        uVar14 = uVar14 / 10;\n      } while (bVar3);\n    }" { (do_statement "do {\n        __dest = __dest + -1;\n        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';\n        bVar3 = 9 < uVar14;\n        uVar14 = uVar14 / 10;\n      } while (bVar3);" do (compound_statement "{\n        __dest = __dest + -1;\n        *__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';\n        bVar3 = 9 < uVar14;\n        uVar14 = uVar14 / 10;\n      }" { (expression_statement "__dest = __dest + -1;" (assignment_expression "__dest = __dest + -1" identifier = (binary_expression "__dest + -1" identifier + number_literal)) ;) (expression_statement "*__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0';" (assignment_expression "*__dest = (char)uVar14 + (char)(uVar14 / 10) * -10 + '0'" (pointer_expression "*__dest" * identifier) = (binary_expression "(char)uVar14 + (char)(uVar14 / 10) * -10 + '0'" (binary_expression "(char)uVar14 + (char)(uVar14 / 10) * -10" (cast_expression "(char)uVar14" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(uVar14 / 10) * -10" (cast_expression "(char)(uVar14 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar14 / 10)" ( (binary_expression "uVar14 / 10" identifier / number_literal) ))) * number_literal)) + (char_literal "'0'" ' character '))) ;) (expression_statement "bVar3 = 9 < uVar14;" (assignment_expression "bVar3 = 9 < uVar14" identifier = (binary_expression "9 < uVar14" number_literal < identifier)) ;) (expression_statement "uVar14 = uVar14 / 10;" (assignment_expression "uVar14 = uVar14 / 10" identifier = (binary_expression "uVar14 / 10" identifier / number_literal)) ;) }) while (parenthesized_expression "(bVar3)" ( identifier )) ;) }))) }))) (if_statement "if ((opts & 4U) != 0) {\n    uVar13 = (long)pcVar15 - (long)__dest;\n    uVar12 = 0xffffffffffffffff;\n    uVar19 = 0xffffffffffffffff;\n    pcVar18 = pcVar9;\n    do {\n      if (uVar19 == 0) break;\n      uVar19 = uVar19 - 1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(buf_1,__dest,uVar13,0x29);\n    while( true ) {\n      bVar23 = *pbVar22;\n      if (bVar23 != 0) {\n        uVar12 = (ulong)bVar23;\n        if (0x7e < bVar23) {\n          uVar12 = uVar13;\n        }\n        pbVar22 = pbVar22 + 1;\n      }\n      if (uVar13 < uVar12) {\n        uVar12 = uVar13;\n      }\n      __dest = pcVar15 + -uVar12;\n      uVar13 = uVar13 - uVar12;\n      memcpy(__dest,buf_1 + uVar13,uVar12);\n      if (uVar13 == 0) break;\n      pcVar15 = __dest + -(~uVar19 - 1);\n      memcpy(pcVar15,pcVar9,~uVar19 - 1);\n    }\n  }" if (parenthesized_expression "((opts & 4U) != 0)" ( (binary_expression "(opts & 4U) != 0" (parenthesized_expression "(opts & 4U)" ( (binary_expression "opts & 4U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar13 = (long)pcVar15 - (long)__dest;\n    uVar12 = 0xffffffffffffffff;\n    uVar19 = 0xffffffffffffffff;\n    pcVar18 = pcVar9;\n    do {\n      if (uVar19 == 0) break;\n      uVar19 = uVar19 - 1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(buf_1,__dest,uVar13,0x29);\n    while( true ) {\n      bVar23 = *pbVar22;\n      if (bVar23 != 0) {\n        uVar12 = (ulong)bVar23;\n        if (0x7e < bVar23) {\n          uVar12 = uVar13;\n        }\n        pbVar22 = pbVar22 + 1;\n      }\n      if (uVar13 < uVar12) {\n        uVar12 = uVar13;\n      }\n      __dest = pcVar15 + -uVar12;\n      uVar13 = uVar13 - uVar12;\n      memcpy(__dest,buf_1 + uVar13,uVar12);\n      if (uVar13 == 0) break;\n      pcVar15 = __dest + -(~uVar19 - 1);\n      memcpy(pcVar15,pcVar9,~uVar19 - 1);\n    }\n  }" { (expression_statement "uVar13 = (long)pcVar15 - (long)__dest;" (assignment_expression "uVar13 = (long)pcVar15 - (long)__dest" identifier = (binary_expression "(long)pcVar15 - (long)__dest" (cast_expression "(long)pcVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "uVar12 = 0xffffffffffffffff;" (assignment_expression "uVar12 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "uVar19 = 0xffffffffffffffff;" (assignment_expression "uVar19 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar18 = pcVar9;" (assignment_expression "pcVar18 = pcVar9" identifier = identifier) ;) (do_statement "do {\n      if (uVar19 == 0) break;\n      uVar19 = uVar19 - 1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (uVar19 == 0) break;\n      uVar19 = uVar19 - 1;\n      cVar1 = *pcVar18;\n      pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;\n    }" { (if_statement "if (uVar19 == 0) break;" if (parenthesized_expression "(uVar19 == 0)" ( (binary_expression "uVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar19 = uVar19 - 1;" (assignment_expression "uVar19 = uVar19 - 1" identifier = (binary_expression "uVar19 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar18;" (assignment_expression "cVar1 = *pcVar18" identifier = (pointer_expression "*pcVar18" * identifier)) ;) (expression_statement "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1;" (assignment_expression "pcVar18 = pcVar18 + (ulong)bVar23 * -2 + 1" identifier = (binary_expression "pcVar18 + (ulong)bVar23 * -2 + 1" (binary_expression "pcVar18 + (ulong)bVar23 * -2" identifier + (binary_expression "(ulong)bVar23 * -2" (cast_expression "(ulong)bVar23" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "__memcpy_chk(buf_1,__dest,uVar13,0x29);" (call_expression "__memcpy_chk(buf_1,__dest,uVar13,0x29)" identifier (argument_list "(buf_1,__dest,uVar13,0x29)" ( identifier , identifier , identifier , number_literal ))) ;) (while_statement "while( true ) {\n      bVar23 = *pbVar22;\n      if (bVar23 != 0) {\n        uVar12 = (ulong)bVar23;\n        if (0x7e < bVar23) {\n          uVar12 = uVar13;\n        }\n        pbVar22 = pbVar22 + 1;\n      }\n      if (uVar13 < uVar12) {\n        uVar12 = uVar13;\n      }\n      __dest = pcVar15 + -uVar12;\n      uVar13 = uVar13 - uVar12;\n      memcpy(__dest,buf_1 + uVar13,uVar12);\n      if (uVar13 == 0) break;\n      pcVar15 = __dest + -(~uVar19 - 1);\n      memcpy(pcVar15,pcVar9,~uVar19 - 1);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      bVar23 = *pbVar22;\n      if (bVar23 != 0) {\n        uVar12 = (ulong)bVar23;\n        if (0x7e < bVar23) {\n          uVar12 = uVar13;\n        }\n        pbVar22 = pbVar22 + 1;\n      }\n      if (uVar13 < uVar12) {\n        uVar12 = uVar13;\n      }\n      __dest = pcVar15 + -uVar12;\n      uVar13 = uVar13 - uVar12;\n      memcpy(__dest,buf_1 + uVar13,uVar12);\n      if (uVar13 == 0) break;\n      pcVar15 = __dest + -(~uVar19 - 1);\n      memcpy(pcVar15,pcVar9,~uVar19 - 1);\n    }" { (expression_statement "bVar23 = *pbVar22;" (assignment_expression "bVar23 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (if_statement "if (bVar23 != 0) {\n        uVar12 = (ulong)bVar23;\n        if (0x7e < bVar23) {\n          uVar12 = uVar13;\n        }\n        pbVar22 = pbVar22 + 1;\n      }" if (parenthesized_expression "(bVar23 != 0)" ( (binary_expression "bVar23 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar12 = (ulong)bVar23;\n        if (0x7e < bVar23) {\n          uVar12 = uVar13;\n        }\n        pbVar22 = pbVar22 + 1;\n      }" { (expression_statement "uVar12 = (ulong)bVar23;" (assignment_expression "uVar12 = (ulong)bVar23" identifier = (cast_expression "(ulong)bVar23" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (0x7e < bVar23) {\n          uVar12 = uVar13;\n        }" if (parenthesized_expression "(0x7e < bVar23)" ( (binary_expression "0x7e < bVar23" number_literal < identifier) )) (compound_statement "{\n          uVar12 = uVar13;\n        }" { (expression_statement "uVar12 = uVar13;" (assignment_expression "uVar12 = uVar13" identifier = identifier) ;) })) (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar13 < uVar12) {\n        uVar12 = uVar13;\n      }" if (parenthesized_expression "(uVar13 < uVar12)" ( (binary_expression "uVar13 < uVar12" identifier < identifier) )) (compound_statement "{\n        uVar12 = uVar13;\n      }" { (expression_statement "uVar12 = uVar13;" (assignment_expression "uVar12 = uVar13" identifier = identifier) ;) })) (expression_statement "__dest = pcVar15 + -uVar12;" (assignment_expression "__dest = pcVar15 + -uVar12" identifier = (binary_expression "pcVar15 + -uVar12" identifier + (unary_expression "-uVar12" - identifier))) ;) (expression_statement "uVar13 = uVar13 - uVar12;" (assignment_expression "uVar13 = uVar13 - uVar12" identifier = (binary_expression "uVar13 - uVar12" identifier - identifier)) ;) (expression_statement "memcpy(__dest,buf_1 + uVar13,uVar12);" (call_expression "memcpy(__dest,buf_1 + uVar13,uVar12)" identifier (argument_list "(__dest,buf_1 + uVar13,uVar12)" ( identifier , (binary_expression "buf_1 + uVar13" identifier + identifier) , identifier ))) ;) (if_statement "if (uVar13 == 0) break;" if (parenthesized_expression "(uVar13 == 0)" ( (binary_expression "uVar13 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar15 = __dest + -(~uVar19 - 1);" (assignment_expression "pcVar15 = __dest + -(~uVar19 - 1)" identifier = (binary_expression "__dest + -(~uVar19 - 1)" identifier + (unary_expression "-(~uVar19 - 1)" - (parenthesized_expression "(~uVar19 - 1)" ( (binary_expression "~uVar19 - 1" (unary_expression "~uVar19" ~ identifier) - number_literal) ))))) ;) (expression_statement "memcpy(pcVar15,pcVar9,~uVar19 - 1);" (call_expression "memcpy(pcVar15,pcVar9,~uVar19 - 1)" identifier (argument_list "(pcVar15,pcVar9,~uVar19 - 1)" ( identifier , identifier , (binary_expression "~uVar19 - 1" (unary_expression "~uVar19" ~ identifier) - number_literal) ))) ;) })) })) (expression_statement "local_a8 = pcVar10;" (assignment_expression "local_a8 = pcVar10" identifier = identifier) ;) (if_statement "if ((opts & 0x80U) == 0) goto LAB_001050c5;" if (parenthesized_expression "((opts & 0x80U) == 0)" ( (binary_expression "(opts & 0x80U) == 0" (parenthesized_expression "(opts & 0x80U)" ( (binary_expression "opts & 0x80U" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;)) (if_statement "if (iVar21 < 0) {\n    iVar21 = 1;\n    uVar12 = 1;\n    if (to_block_size < 2) {\n      iVar21 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar12 = uVar12 * uVar5;\n      if (to_block_size <= uVar12) goto LAB_001050b0;\n      iVar21 = iVar21 + 1;\n    } while (iVar21 != 8);\n    if ((opts & 0x40U) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar21 == 1) && (uVar4 == 0)) {\n      *pcVar10 = 'k';\n      local_a8 = pcVar10 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar10 + 1;\n    *pcVar10 = ""[iVar21];\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;\n    if (uVar4 != 0) {\n      pcVar10[1] = 'i';\n      local_a8 = pcVar10 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((opts & 0x100U) == 0 && iVar21 == 0) goto LAB_001050c5;\n    if ((opts & 0x40U) != 0) {\nLAB_0010540f:\n      pcVar10 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    local_a8 = pcVar10;\n    if (iVar21 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;\n  }" if (parenthesized_expression "(iVar21 < 0)" ( (binary_expression "iVar21 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar21 = 1;\n    uVar12 = 1;\n    if (to_block_size < 2) {\n      iVar21 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar12 = uVar12 * uVar5;\n      if (to_block_size <= uVar12) goto LAB_001050b0;\n      iVar21 = iVar21 + 1;\n    } while (iVar21 != 8);\n    if ((opts & 0x40U) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar21 == 1) && (uVar4 == 0)) {\n      *pcVar10 = 'k';\n      local_a8 = pcVar10 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar10 + 1;\n    *pcVar10 = ""[iVar21];\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;\n    if (uVar4 != 0) {\n      pcVar10[1] = 'i';\n      local_a8 = pcVar10 + 2;\n    }\n  }" { (expression_statement "iVar21 = 1;" (assignment_expression "iVar21 = 1" identifier = number_literal) ;) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (if_statement "if (to_block_size < 2) {\n      iVar21 = 0;\n      goto LAB_001050b0;\n    }" if (parenthesized_expression "(to_block_size < 2)" ( (binary_expression "to_block_size < 2" identifier < number_literal) )) (compound_statement "{\n      iVar21 = 0;\n      goto LAB_001050b0;\n    }" { (expression_statement "iVar21 = 0;" (assignment_expression "iVar21 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001050b0;" goto statement_identifier ;) })) (do_statement "do {\n      uVar12 = uVar12 * uVar5;\n      if (to_block_size <= uVar12) goto LAB_001050b0;\n      iVar21 = iVar21 + 1;\n    } while (iVar21 != 8);" do (compound_statement "{\n      uVar12 = uVar12 * uVar5;\n      if (to_block_size <= uVar12) goto LAB_001050b0;\n      iVar21 = iVar21 + 1;\n    }" { (expression_statement "uVar12 = uVar12 * uVar5;" (assignment_expression "uVar12 = uVar12 * uVar5" identifier = (binary_expression "uVar12 * uVar5" identifier * identifier)) ;) (if_statement "if (to_block_size <= uVar12) goto LAB_001050b0;" if (parenthesized_expression "(to_block_size <= uVar12)" ( (binary_expression "to_block_size <= uVar12" identifier <= identifier) )) (goto_statement "goto LAB_001050b0;" goto statement_identifier ;)) (expression_statement "iVar21 = iVar21 + 1;" (assignment_expression "iVar21 = iVar21 + 1" identifier = (binary_expression "iVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar21 != 8)" ( (binary_expression "iVar21 != 8" identifier != number_literal) )) ;) (if_statement "if ((opts & 0x40U) != 0) goto LAB_0010540f;" if (parenthesized_expression "((opts & 0x40U) != 0)" ( (binary_expression "(opts & 0x40U) != 0" (parenthesized_expression "(opts & 0x40U)" ( (binary_expression "opts & 0x40U" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0010540f;" goto statement_identifier ;)) (labeled_statement "LAB_00105427:\n    if ((iVar21 == 1) && (uVar4 == 0)) {\n      *pcVar10 = 'k';\n      local_a8 = pcVar10 + 1;\n      goto joined_r0x001054bc;\n    }" statement_identifier : (if_statement "if ((iVar21 == 1) && (uVar4 == 0)) {\n      *pcVar10 = 'k';\n      local_a8 = pcVar10 + 1;\n      goto joined_r0x001054bc;\n    }" if (parenthesized_expression "((iVar21 == 1) && (uVar4 == 0))" ( (binary_expression "(iVar21 == 1) && (uVar4 == 0)" (parenthesized_expression "(iVar21 == 1)" ( (binary_expression "iVar21 == 1" identifier == number_literal) )) && (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      *pcVar10 = 'k';\n      local_a8 = pcVar10 + 1;\n      goto joined_r0x001054bc;\n    }" { (expression_statement "*pcVar10 = 'k';" (assignment_expression "*pcVar10 = 'k'" (pointer_expression "*pcVar10" * identifier) = (char_literal "'k'" ' character ')) ;) (expression_statement "local_a8 = pcVar10 + 1;" (assignment_expression "local_a8 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (goto_statement "goto joined_r0x001054bc;" goto statement_identifier ;) }))) (expression_statement "local_a8 = pcVar10 + 1;" (assignment_expression "local_a8 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar10 = ""[iVar21];" (assignment_expression "*pcVar10 = ""[iVar21]" (pointer_expression "*pcVar10" * identifier) = (subscript_expression """[iVar21]" (string_literal """" " ") [ identifier ])) ;) (if_statement "if ((opts & 0x100U) == 0) goto LAB_001050c5;" if (parenthesized_expression "((opts & 0x100U) == 0)" ( (binary_expression "(opts & 0x100U) == 0" (parenthesized_expression "(opts & 0x100U)" ( (binary_expression "opts & 0x100U" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;)) (if_statement "if (uVar4 != 0) {\n      pcVar10[1] = 'i';\n      local_a8 = pcVar10 + 2;\n    }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar10[1] = 'i';\n      local_a8 = pcVar10 + 2;\n    }" { (expression_statement "pcVar10[1] = 'i';" (assignment_expression "pcVar10[1] = 'i'" (subscript_expression "pcVar10[1]" identifier [ number_literal ]) = (char_literal "'i'" ' character ')) ;) (expression_statement "local_a8 = pcVar10 + 2;" (assignment_expression "local_a8 = pcVar10 + 2" identifier = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) })) }) (else_clause "else {\nLAB_001050b0:\n    if ((opts & 0x100U) == 0 && iVar21 == 0) goto LAB_001050c5;\n    if ((opts & 0x40U) != 0) {\nLAB_0010540f:\n      pcVar10 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    local_a8 = pcVar10;\n    if (iVar21 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;\n  }" else (compound_statement "{\nLAB_001050b0:\n    if ((opts & 0x100U) == 0 && iVar21 == 0) goto LAB_001050c5;\n    if ((opts & 0x40U) != 0) {\nLAB_0010540f:\n      pcVar10 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    local_a8 = pcVar10;\n    if (iVar21 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;\n  }" { (labeled_statement "LAB_001050b0:\n    if ((opts & 0x100U) == 0 && iVar21 == 0) goto LAB_001050c5;" statement_identifier : (if_statement "if ((opts & 0x100U) == 0 && iVar21 == 0) goto LAB_001050c5;" if (parenthesized_expression "((opts & 0x100U) == 0 && iVar21 == 0)" ( (binary_expression "(opts & 0x100U) == 0 && iVar21 == 0" (binary_expression "(opts & 0x100U) == 0" (parenthesized_expression "(opts & 0x100U)" ( (binary_expression "opts & 0x100U" identifier & number_literal) )) == number_literal) && (binary_expression "iVar21 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;))) (if_statement "if ((opts & 0x40U) != 0) {\nLAB_0010540f:\n      pcVar10 = buf + 0x288;\n      buf[0x287] = ' ';\n    }" if (parenthesized_expression "((opts & 0x40U) != 0)" ( (binary_expression "(opts & 0x40U) != 0" (parenthesized_expression "(opts & 0x40U)" ( (binary_expression "opts & 0x40U" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0010540f:\n      pcVar10 = buf + 0x288;\n      buf[0x287] = ' ';\n    }" { (labeled_statement "LAB_0010540f:\n      pcVar10 = buf + 0x288;" statement_identifier : (expression_statement "pcVar10 = buf + 0x288;" (assignment_expression "pcVar10 = buf + 0x288" identifier = (binary_expression "buf + 0x288" identifier + number_literal)) ;)) (expression_statement "buf[0x287] = ' ';" (assignment_expression "buf[0x287] = ' '" (subscript_expression "buf[0x287]" identifier [ number_literal ]) = (char_literal "' '" ' character ')) ;) })) (expression_statement "local_a8 = pcVar10;" (assignment_expression "local_a8 = pcVar10" identifier = identifier) ;) (if_statement "if (iVar21 != 0) goto LAB_00105427;" if (parenthesized_expression "(iVar21 != 0)" ( (binary_expression "iVar21 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00105427;" goto statement_identifier ;)) (labeled_statement "joined_r0x001054bc:\n    if ((opts & 0x100U) == 0) goto LAB_001050c5;" statement_identifier : (if_statement "if ((opts & 0x100U) == 0) goto LAB_001050c5;" if (parenthesized_expression "((opts & 0x100U) == 0)" ( (binary_expression "(opts & 0x100U) == 0" (parenthesized_expression "(opts & 0x100U)" ( (binary_expression "opts & 0x100U" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;))) }))) (expression_statement "*local_a8 = 'B';" (assignment_expression "*local_a8 = 'B'" (pointer_expression "*local_a8" * identifier) = (char_literal "'B'" ' character ')) ;) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_001050c5:\n  *local_a8 = '\0';" statement_identifier : (expression_statement "*local_a8 = '\0';" (assignment_expression "*local_a8 = '\0'" (pointer_expression "*local_a8" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (if_statement "if (lVar2 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest;\n  }" if (parenthesized_expression "(lVar2 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar2 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return __dest;\n  }" { (return_statement "return __dest;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "char * FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)\n\n{\n  char cVar1;\n  bool bVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  lconv *plVar7;\n  char *pcVar8;\n  char *pcVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  char *__dest;\n  uint uVar14;\n  uint uVar15;\n  char *__dest_00;\n  char *pcVar16;\n  ulong uVar17;\n  long lVar18;\n  int iVar19;\n  byte *pbVar20;\n  long in_FS_OFFSET;\n  byte bVar21;\n  longdouble lVar22;\n  longdouble lVar23;\n  longdouble lVar24;\n  longdouble lVar25;\n  char *local_a8;\n  undefined1 local_78 [56];\n  long local_40;\n  \n  bVar21 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar15 = param_3 & 3;\n  uVar3 = param_3 & 0x20;\n  uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;\n  plVar7 = localeconv();\n  pcVar16 = plVar7->decimal_point;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = pcVar16;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  uVar17 = ~uVar10 - 1;\n  if (0xf < ~uVar10 - 2) {\n    uVar17 = 1;\n    pcVar16 = ".";\n  }\n  pbVar20 = (byte *)plVar7->grouping;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = plVar7->thousands_sep;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  pcVar8 = "";\n  if (~uVar10 - 1 < 0x11) {\n    pcVar8 = plVar7->thousands_sep;\n  }\n  pcVar9 = param_2 + 0x287;\n  if (param_4 < param_5) {\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }\n  else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }\n  if ((param_3 & 4) != 0) {\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }\n  local_a8 = pcVar9;\n  if ((param_3 & 0x80) == 0) goto LAB_001050c5;\n  if (iVar19 < 0) {\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }\n  *local_a8 = 'B';\n  local_a8 = local_a8 + 1;\nLAB_001050c5:\n  *local_a8 = '\0';\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest_00;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "char * FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)\n\n{\n  char cVar1;\n  bool bVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  lconv *plVar7;\n  char *pcVar8;\n  char *pcVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  char *__dest;\n  uint uVar14;\n  uint uVar15;\n  char *__dest_00;\n  char *pcVar16;\n  ulong uVar17;\n  long lVar18;\n  int iVar19;\n  byte *pbVar20;\n  long in_FS_OFFSET;\n  byte bVar21;\n  longdouble lVar22;\n  longdouble lVar23;\n  longdouble lVar24;\n  longdouble lVar25;\n  char *local_a8;\n  undefined1 local_78 [56];\n  long local_40;\n  \n  bVar21 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar15 = param_3 & 3;\n  uVar3 = param_3 & 0x20;\n  uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;\n  plVar7 = localeconv();\n  pcVar16 = plVar7->decimal_point;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = pcVar16;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  uVar17 = ~uVar10 - 1;\n  if (0xf < ~uVar10 - 2) {\n    uVar17 = 1;\n    pcVar16 = ".";\n  }\n  pbVar20 = (byte *)plVar7->grouping;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = plVar7->thousands_sep;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  pcVar8 = "";\n  if (~uVar10 - 1 < 0x11) {\n    pcVar8 = plVar7->thousands_sep;\n  }\n  pcVar9 = param_2 + 0x287;\n  if (param_4 < param_5) {\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }\n  else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }\n  if ((param_3 & 4) != 0) {\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }\n  local_a8 = pcVar9;\n  if ((param_3 & 0x80) == 0) goto LAB_001050c5;\n  if (iVar19 < 0) {\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }\n  *local_a8 = 'B';\n  local_a8 = local_a8 + 1;\nLAB_001050c5:\n  *local_a8 = '\0';\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest_00;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (pointer_declarator "* FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)" * (function_declarator "FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)" identifier (parameter_list "(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)" ( (parameter_declaration "ulong param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "ulong param_4" type_identifier identifier) , (parameter_declaration "ulong param_5" type_identifier identifier) )))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  lconv *plVar7;\n  char *pcVar8;\n  char *pcVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  char *__dest;\n  uint uVar14;\n  uint uVar15;\n  char *__dest_00;\n  char *pcVar16;\n  ulong uVar17;\n  long lVar18;\n  int iVar19;\n  byte *pbVar20;\n  long in_FS_OFFSET;\n  byte bVar21;\n  longdouble lVar22;\n  longdouble lVar23;\n  longdouble lVar24;\n  longdouble lVar25;\n  char *local_a8;\n  undefined1 local_78 [56];\n  long local_40;\n  \n  bVar21 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar15 = param_3 & 3;\n  uVar3 = param_3 & 0x20;\n  uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;\n  plVar7 = localeconv();\n  pcVar16 = plVar7->decimal_point;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = pcVar16;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  uVar17 = ~uVar10 - 1;\n  if (0xf < ~uVar10 - 2) {\n    uVar17 = 1;\n    pcVar16 = ".";\n  }\n  pbVar20 = (byte *)plVar7->grouping;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = plVar7->thousands_sep;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  pcVar8 = "";\n  if (~uVar10 - 1 < 0x11) {\n    pcVar8 = plVar7->thousands_sep;\n  }\n  pcVar9 = param_2 + 0x287;\n  if (param_4 < param_5) {\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }\n  else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }\n  if ((param_3 & 4) != 0) {\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }\n  local_a8 = pcVar9;\n  if ((param_3 & 0x80) == 0) goto LAB_001050c5;\n  if (iVar19 < 0) {\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }\n  *local_a8 = 'B';\n  local_a8 = local_a8 + 1;\nLAB_001050c5:\n  *local_a8 = '\0';\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest_00;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "lconv *plVar7;" type_identifier (pointer_declarator "*plVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "char *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "char *__dest_00;" primitive_type (pointer_declarator "*__dest_00" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "longdouble lVar22;" type_identifier identifier ;) (declaration "longdouble lVar23;" type_identifier identifier ;) (declaration "longdouble lVar24;" type_identifier identifier ;) (declaration "longdouble lVar25;" type_identifier identifier ;) (declaration "char *local_a8;" primitive_type (pointer_declarator "*local_a8" * identifier) ;) (declaration "undefined1 local_78 [56];" type_identifier (array_declarator "local_78 [56]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar15 = param_3 & 3;" (assignment_expression "uVar15 = param_3 & 3" identifier = (binary_expression "param_3 & 3" identifier & number_literal)) ;) (expression_statement "uVar3 = param_3 & 0x20;" (assignment_expression "uVar3 = param_3 & 0x20" identifier = (binary_expression "param_3 & 0x20" identifier & number_literal)) ;) (expression_statement "uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;" (assignment_expression "uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400" identifier = (binary_expression "(-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400" (parenthesized_expression "(-(uint)(uVar3 == 0) & 0xffffffe8)" ( (binary_expression "-(uint)(uVar3 == 0) & 0xffffffe8" (unary_expression "-(uint)(uVar3 == 0)" - (call_expression "(uint)(uVar3 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) (expression_statement "plVar7 = localeconv();" (assignment_expression "plVar7 = localeconv()" identifier = (call_expression "localeconv()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar16 = plVar7->decimal_point;" (assignment_expression "pcVar16 = plVar7->decimal_point" identifier = (field_expression "plVar7->decimal_point" identifier -> field_identifier)) ;) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = pcVar16;" (assignment_expression "pcVar8 = pcVar16" identifier = identifier) ;) (do_statement "do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');" do (compound_statement "{\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar17 = ~uVar10 - 1;" (assignment_expression "uVar17 = ~uVar10 - 1" identifier = (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal)) ;) (if_statement "if (0xf < ~uVar10 - 2) {\n    uVar17 = 1;\n    pcVar16 = ".";\n  }" if (parenthesized_expression "(0xf < ~uVar10 - 2)" ( (binary_expression "0xf < ~uVar10 - 2" number_literal < (binary_expression "~uVar10 - 2" (unary_expression "~uVar10" ~ identifier) - number_literal)) )) (compound_statement "{\n    uVar17 = 1;\n    pcVar16 = ".";\n  }" { (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (expression_statement "pcVar16 = ".";" (assignment_expression "pcVar16 = "."" identifier = (string_literal ""."" " string_content ")) ;) })) (expression_statement "pbVar20 = (byte *)plVar7->grouping;" (assignment_expression "pbVar20 = (byte *)plVar7->grouping" identifier = (cast_expression "(byte *)plVar7->grouping" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar7->grouping" identifier -> field_identifier))) ;) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar8 = plVar7->thousands_sep;" (assignment_expression "pcVar8 = plVar7->thousands_sep" identifier = (field_expression "plVar7->thousands_sep" identifier -> field_identifier)) ;) (do_statement "do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');" do (compound_statement "{\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" identifier = (pointer_expression "*pcVar8" * identifier)) ;) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar8 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pcVar8 = "";" (assignment_expression "pcVar8 = """ identifier = (string_literal """" " ")) ;) (if_statement "if (~uVar10 - 1 < 0x11) {\n    pcVar8 = plVar7->thousands_sep;\n  }" if (parenthesized_expression "(~uVar10 - 1 < 0x11)" ( (binary_expression "~uVar10 - 1 < 0x11" (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal) < number_literal) )) (compound_statement "{\n    pcVar8 = plVar7->thousands_sep;\n  }" { (expression_statement "pcVar8 = plVar7->thousands_sep;" (assignment_expression "pcVar8 = plVar7->thousands_sep" identifier = (field_expression "plVar7->thousands_sep" identifier -> field_identifier)) ;) })) (expression_statement "pcVar9 = param_2 + 0x287;" (assignment_expression "pcVar9 = param_2 + 0x287" identifier = (binary_expression "param_2 + 0x287" identifier + number_literal)) ;) (if_statement "if (param_4 < param_5) {\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }\n  else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }" if (parenthesized_expression "(param_4 < param_5)" ( (binary_expression "param_4 < param_5" identifier < identifier) )) (compound_statement "{\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }" { (if_statement "if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;" if (parenthesized_expression "((param_4 == 0) || (param_5 % param_4 != 0))" ( (binary_expression "(param_4 == 0) || (param_5 % param_4 != 0)" (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_5 % param_4 != 0)" ( (binary_expression "param_5 % param_4 != 0" (binary_expression "param_5 % param_4" identifier % identifier) != number_literal) ))) )) (goto_statement "goto LAB_00104dfa;" goto statement_identifier ;)) (expression_statement "param_4 = param_5 / param_4;" (assignment_expression "param_4 = param_5 / param_4" identifier = (binary_expression "param_5 / param_4" identifier / identifier)) ;) (expression_statement "uVar12 = param_1 / param_4;" (assignment_expression "uVar12 = param_1 / param_4" identifier = (binary_expression "param_1 / param_4" identifier / identifier)) ;) (expression_statement "uVar10 = (param_1 % param_4) * 10;" (assignment_expression "uVar10 = (param_1 % param_4) * 10" identifier = (binary_expression "(param_1 % param_4) * 10" (parenthesized_expression "(param_1 % param_4)" ( (binary_expression "param_1 % param_4" identifier % identifier) )) * number_literal)) ;) (expression_statement "uVar11 = (uVar10 % param_4) * 2;" (assignment_expression "uVar11 = (uVar10 % param_4) * 2" identifier = (binary_expression "(uVar10 % param_4) * 2" (parenthesized_expression "(uVar10 % param_4)" ( (binary_expression "uVar10 % param_4" identifier % identifier) )) * number_literal)) ;) (expression_statement "uVar10 = uVar10 / param_4 & 0xffffffff;" (assignment_expression "uVar10 = uVar10 / param_4 & 0xffffffff" identifier = (binary_expression "uVar10 / param_4 & 0xffffffff" (binary_expression "uVar10 / param_4" identifier / identifier) & number_literal)) ;) (if_statement "if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }" if (parenthesized_expression "(uVar11 < param_4)" ( (binary_expression "uVar11 < param_4" identifier < identifier) )) (compound_statement "{\n      uVar14 = (uint)(uVar11 != 0);\n    }" { (expression_statement "uVar14 = (uint)(uVar11 != 0);" (assignment_expression "uVar14 = (uint)(uVar11 != 0)" identifier = (call_expression "(uint)(uVar11 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }" else (compound_statement "{\n      uVar14 = (param_4 < uVar11) + 2;\n    }" { (expression_statement "uVar14 = (param_4 < uVar11) + 2;" (assignment_expression "uVar14 = (param_4 < uVar11) + 2" identifier = (binary_expression "(param_4 < uVar11) + 2" (parenthesized_expression "(param_4 < uVar11)" ( (binary_expression "param_4 < uVar11" identifier < identifier) )) + number_literal)) ;) }))) (labeled_statement "LAB_00105103:\n    uVar6 = (uint)uVar10;" statement_identifier : (expression_statement "uVar6 = (uint)uVar10;" (assignment_expression "uVar6 = (uint)uVar10" identifier = (cast_expression "(uint)uVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" identifier = number_literal) ;) (expression_statement "__dest = pcVar9;" (assignment_expression "__dest = pcVar9" identifier = identifier) ;) (if_statement "if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }" if (parenthesized_expression "((param_3 & 0x10) != 0)" ( (binary_expression "(param_3 & 0x10) != 0" (parenthesized_expression "(param_3 & 0x10)" ( (binary_expression "param_3 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }" { (expression_statement "uVar11 = (ulong)uVar4;" (assignment_expression "uVar11 = (ulong)uVar4" identifier = (cast_expression "(ulong)uVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }" if (parenthesized_expression "(uVar12 < uVar11)" ( (binary_expression "uVar12 < uVar11" identifier < identifier) )) (compound_statement "{\n        iVar19 = 0;\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) }) (else_clause "else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }" else (compound_statement "{\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = uVar12;" (assignment_expression "uVar13 = uVar12" identifier = identifier) ;) (do_statement "do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));" do (compound_statement "{\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        }" { (expression_statement "uVar12 = uVar13 / uVar11;" (assignment_expression "uVar12 = uVar13 / uVar11" identifier = (binary_expression "uVar13 / uVar11" identifier / identifier)) ;) (expression_statement "uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;" (assignment_expression "uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10" identifier = (binary_expression "(int)uVar10 + (int)(uVar13 % uVar11) * 10" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(int)(uVar13 % uVar11) * 10" (cast_expression "(int)(uVar13 % uVar11)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar13 % uVar11)" ( (binary_expression "uVar13 % uVar11" identifier % identifier) ))) * number_literal))) ;) (expression_statement "uVar6 = uVar5 / uVar4;" (assignment_expression "uVar6 = uVar5 / uVar4" identifier = (binary_expression "uVar5 / uVar4" identifier / identifier)) ;) (expression_statement "uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;" (assignment_expression "uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2" identifier = (binary_expression "((int)uVar14 >> 1) + (uVar5 % uVar4) * 2" (parenthesized_expression "((int)uVar14 >> 1)" ( (binary_expression "(int)uVar14 >> 1" (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (binary_expression "(uVar5 % uVar4) * 2" (parenthesized_expression "(uVar5 % uVar4)" ( (binary_expression "uVar5 % uVar4" identifier % identifier) )) * number_literal))) ;) (expression_statement "uVar10 = (ulong)uVar6;" (assignment_expression "uVar10 = (ulong)uVar6" identifier = (cast_expression "(ulong)uVar6" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }" if (parenthesized_expression "(uVar5 < uVar4)" ( (binary_expression "uVar5 < uVar4" identifier < identifier) )) (compound_statement "{\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }" { (expression_statement "uVar14 = (uint)(uVar14 + uVar5 != 0);" (assignment_expression "uVar14 = (uint)(uVar14 + uVar5 != 0)" identifier = (call_expression "(uint)(uVar14 + uVar5 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 + uVar5 != 0)" ( (binary_expression "uVar14 + uVar5 != 0" (binary_expression "uVar14 + uVar5" identifier + identifier) != number_literal) )))) ;) }) (else_clause "else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }" else (compound_statement "{\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }" { (expression_statement "uVar14 = (uVar4 < uVar14 + uVar5) + 2;" (assignment_expression "uVar14 = (uVar4 < uVar14 + uVar5) + 2" identifier = (binary_expression "(uVar4 < uVar14 + uVar5) + 2" (parenthesized_expression "(uVar4 < uVar14 + uVar5)" ( (binary_expression "uVar4 < uVar14 + uVar5" identifier < (binary_expression "uVar14 + uVar5" identifier + identifier)) )) + number_literal)) ;) }))) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12))" ( (binary_expression "(iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12)" (parenthesized_expression "(iVar19 < 8)" ( (binary_expression "iVar19 < 8" identifier < number_literal) )) && (parenthesized_expression "(uVar13 = uVar12, uVar11 <= uVar12)" ( (comma_expression "uVar13 = uVar12, uVar11 <= uVar12" (assignment_expression "uVar13 = uVar12" identifier = identifier) , (binary_expression "uVar11 <= uVar12" identifier <= identifier)) ))) )) ;) (if_statement "if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }" if (parenthesized_expression "(uVar12 < 10)" ( (binary_expression "uVar12 < 10" identifier < number_literal) )) (compound_statement "{\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }" { (if_statement "if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }" if (parenthesized_expression "(uVar15 == 1)" ( (binary_expression "uVar15 == 1" identifier == number_literal) )) (compound_statement "{\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }" { (expression_statement "bVar2 = 2 < (uVar6 & 1) + uVar14;" (assignment_expression "bVar2 = 2 < (uVar6 & 1) + uVar14" identifier = (binary_expression "2 < (uVar6 & 1) + uVar14" number_literal < (binary_expression "(uVar6 & 1) + uVar14" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) + identifier))) ;) }) (else_clause "else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }" else (compound_statement "{\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }" { (expression_statement "bVar2 = uVar15 == 0 && uVar14 != 0;" (assignment_expression "bVar2 = uVar15 == 0 && uVar14 != 0" identifier = (binary_expression "uVar15 == 0 && uVar14 != 0" (binary_expression "uVar15 == 0" identifier == number_literal) && (binary_expression "uVar14 != 0" identifier != number_literal))) ;) }))) (if_statement "if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" { (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (if_statement "if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" if (parenthesized_expression "(uVar6 == 10)" ( (binary_expression "uVar6 == 10" identifier == number_literal) )) (compound_statement "{\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" { (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }" if (parenthesized_expression "(uVar12 < 10)" ( (binary_expression "uVar12 < 10" identifier < number_literal) )) (compound_statement "{\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00105494;" goto statement_identifier ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00105238;" goto statement_identifier ;) })) }) (else_clause "else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" else (if_statement "if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" if (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" { (labeled_statement "LAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" statement_identifier : (if_statement "if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" if (parenthesized_expression "((param_3 & 8) != 0)" ( (binary_expression "(param_3 & 8) != 0" (parenthesized_expression "(param_3 & 8)" ( (binary_expression "param_3 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" { (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00105238;" goto statement_identifier ;) }))) })))) (expression_statement "param_2[0x286] = (char)uVar6 + '0';" (assignment_expression "param_2[0x286] = (char)uVar6 + '0'" (subscript_expression "param_2[0x286]" identifier [ number_literal ]) = (binary_expression "(char)uVar6 + '0'" (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character '))) ;) (expression_statement "memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);" (call_expression "memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17)" identifier (argument_list "(param_2 + (0x286 - uVar17),pcVar16,uVar17)" ( (binary_expression "param_2 + (0x286 - uVar17)" identifier + (parenthesized_expression "(0x286 - uVar17)" ( (binary_expression "0x286 - uVar17" number_literal - identifier) ))) , identifier , identifier ))) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" identifier = number_literal) ;) (expression_statement "__dest = param_2 + (0x286 - uVar17);" (assignment_expression "__dest = param_2 + (0x286 - uVar17)" identifier = (binary_expression "param_2 + (0x286 - uVar17)" identifier + (parenthesized_expression "(0x286 - uVar17)" ( (binary_expression "0x286 - uVar17" number_literal - identifier) )))) ;) })) }))) })) (labeled_statement "LAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" statement_identifier : (if_statement "if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" if (parenthesized_expression "(uVar15 == 1)" ( (binary_expression "uVar15 == 1" identifier == number_literal) )) (compound_statement "{\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }" { (expression_statement "bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));" (assignment_expression "bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" identifier = (binary_expression "5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" number_literal < (cast_expression "(int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" ( (binary_expression "uVar6 + (((uint)uVar12 & 1) + uVar14 != 0)" identifier + (parenthesized_expression "(((uint)uVar12 & 1) + uVar14 != 0)" ( (binary_expression "((uint)uVar12 & 1) + uVar14 != 0" (binary_expression "((uint)uVar12 & 1) + uVar14" (parenthesized_expression "((uint)uVar12 & 1)" ( (binary_expression "(uint)uVar12 & 1" (cast_expression "(uint)uVar12" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) + identifier) != number_literal) ))) ))))) ;) }) (else_clause "else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" else (compound_statement "{\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" { (expression_statement "bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);" (assignment_expression "bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14)" identifier = (binary_expression "uVar15 == 0 && 0 < (int)(uVar6 + uVar14)" (binary_expression "uVar15 == 0" identifier == number_literal) && (binary_expression "0 < (int)(uVar6 + uVar14)" number_literal < (cast_expression "(int)(uVar6 + uVar14)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar6 + uVar14)" ( (binary_expression "uVar6 + uVar14" identifier + identifier) )))))) ;) })))) (expression_statement "__dest_00 = __dest;" (assignment_expression "__dest_00 = __dest" identifier = identifier) ;) (if_statement "if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }" if (parenthesized_expression "((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8))" ( (binary_expression "(((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)" (parenthesized_expression "(((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12))" ( (binary_expression "((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)" (parenthesized_expression "((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0))" ( (binary_expression "(bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)" (parenthesized_expression "(bVar2)" ( identifier )) && (parenthesized_expression "(uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)" ( (comma_expression "uVar12 = uVar12 + 1, (param_3 & 0x10) != 0" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) , (binary_expression "(param_3 & 0x10) != 0" (parenthesized_expression "(param_3 & 0x10)" ( (binary_expression "param_3 & 0x10" identifier & number_literal) )) != number_literal)) ))) )) && (parenthesized_expression "(uVar4 == uVar12)" ( (binary_expression "uVar4 == uVar12" identifier == identifier) ))) )) && (parenthesized_expression "(iVar19 < 8)" ( (binary_expression "iVar19 < 8" identifier < number_literal) ))) )) (compound_statement "{\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }" { (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (if_statement "if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }" if (parenthesized_expression "((param_3 & 8) == 0)" ( (binary_expression "(param_3 & 8) == 0" (parenthesized_expression "(param_3 & 8)" ( (binary_expression "param_3 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }" { (expression_statement "__dest[-1] = '0';" (assignment_expression "__dest[-1] = '0'" (subscript_expression "__dest[-1]" identifier [ number_literal ]) = (char_literal "'0'" ' character ')) ;) (expression_statement "__dest = __dest + ~uVar17;" (assignment_expression "__dest = __dest + ~uVar17" identifier = (binary_expression "__dest + ~uVar17" identifier + (unary_expression "~uVar17" ~ identifier))) ;) (expression_statement "memcpy(__dest,pcVar16,uVar17);" (call_expression "memcpy(__dest,pcVar16,uVar17)" identifier (argument_list "(__dest,pcVar16,uVar17)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "__dest_00 = __dest + -1;" (assignment_expression "__dest_00 = __dest + -1" identifier = (binary_expression "__dest + -1" identifier + number_literal)) ;) (expression_statement "__dest[-1] = '1';" (assignment_expression "__dest[-1] = '1'" (subscript_expression "__dest[-1]" identifier [ number_literal ]) = (char_literal "'1'" ' character ')) ;) }) (else_clause "else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }" else (compound_statement "{\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }" { (do_statement "do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);" do (compound_statement "{\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      }" { (expression_statement "__dest_00 = __dest_00 + -1;" (assignment_expression "__dest_00 = __dest_00 + -1" identifier = (binary_expression "__dest_00 + -1" identifier + number_literal)) ;) (expression_statement "*__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';" (assignment_expression "*__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0'" (pointer_expression "*__dest_00" * identifier) = (binary_expression "(char)uVar12 + (char)(uVar12 / 10) * -10 + '0'" (binary_expression "(char)uVar12 + (char)(uVar12 / 10) * -10" (cast_expression "(char)uVar12" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(uVar12 / 10) * -10" (cast_expression "(char)(uVar12 / 10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar12 / 10)" ( (binary_expression "uVar12 / 10" identifier / number_literal) ))) * number_literal)) + (char_literal "'0'" ' character '))) ;) (expression_statement "bVar2 = 9 < uVar12;" (assignment_expression "bVar2 = 9 < uVar12" identifier = (binary_expression "9 < uVar12" number_literal < identifier)) ;) (expression_statement "uVar12 = uVar12 / 10;" (assignment_expression "uVar12 = uVar12 / 10" identifier = (binary_expression "uVar12 / 10" identifier / number_literal)) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) }))) }) (else_clause "else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }" else (compound_statement "{\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }" { (if_statement "if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }" if (parenthesized_expression "((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1))" ( (binary_expression "(param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)" (parenthesized_expression "(param_4 % param_5 == 0)" ( (binary_expression "param_4 % param_5 == 0" (binary_expression "param_4 % param_5" identifier % identifier) == number_literal) )) && (parenthesized_expression "(uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)" ( (comma_expression "uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1" (assignment_expression "uVar12 = (param_4 / param_5) * param_1" identifier = (binary_expression "(param_4 / param_5) * param_1" (parenthesized_expression "(param_4 / param_5)" ( (binary_expression "param_4 / param_5" identifier / identifier) )) * identifier)) , (binary_expression "uVar12 / (param_4 / param_5) == param_1" (binary_expression "uVar12 / (param_4 / param_5)" identifier / (parenthesized_expression "(param_4 / param_5)" ( (binary_expression "param_4 / param_5" identifier / identifier) ))) == identifier)) ))) )) (compound_statement "{\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00105103;" goto statement_identifier ;) })) (labeled_statement "LAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;" statement_identifier : (expression_statement "lVar22 = (longdouble)(long)param_4;" (assignment_expression "lVar22 = (longdouble)(long)param_4" identifier = (cast_expression "(longdouble)(long)param_4" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;)) (if_statement "if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }" if (parenthesized_expression "((long)param_4 < 0)" ( (binary_expression "(long)param_4 < 0" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }" { (expression_statement "lVar22 = lVar22 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar22 = lVar22 + (longdouble)_DAT_0010b274" identifier = (binary_expression "lVar22 + (longdouble)_DAT_0010b274" identifier + (cast_expression "(longdouble)_DAT_0010b274" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (expression_statement "lVar23 = (longdouble)(long)param_5;" (assignment_expression "lVar23 = (longdouble)(long)param_5" identifier = (cast_expression "(longdouble)(long)param_5" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(long)param_5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }" if (parenthesized_expression "((long)param_5 < 0)" ( (binary_expression "(long)param_5 < 0" (cast_expression "(long)param_5" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }" { (expression_statement "lVar23 = lVar23 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar23 = lVar23 + (longdouble)_DAT_0010b274" identifier = (binary_expression "lVar23 + (longdouble)_DAT_0010b274" identifier + (cast_expression "(longdouble)_DAT_0010b274" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (expression_statement "lVar24 = (longdouble)(long)param_1;" (assignment_expression "lVar24 = (longdouble)(long)param_1" identifier = (cast_expression "(longdouble)(long)param_1" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (if_statement "if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }" if (parenthesized_expression "((long)param_1 < 0)" ( (binary_expression "(long)param_1 < 0" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (compound_statement "{\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }" { (expression_statement "lVar24 = lVar24 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar24 = lVar24 + (longdouble)_DAT_0010b274" identifier = (binary_expression "lVar24 + (longdouble)_DAT_0010b274" identifier + (cast_expression "(longdouble)_DAT_0010b274" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }" if (parenthesized_expression "((param_3 & 0x10) == 0)" ( (binary_expression "(param_3 & 0x10) == 0" (parenthesized_expression "(param_3 & 0x10)" ( (binary_expression "param_3 & 0x10" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }" { (expression_statement "FUN_00104c0d(uVar15);" (call_expression "FUN_00104c0d(uVar15)" identifier (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");" (call_expression "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf")" identifier (argument_list "(param_2,1,0xffffffffffffffff,"%.0Lf")" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") ))) ;) (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" identifier = number_literal) ;) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar16 = param_2;" (assignment_expression "pcVar16 = param_2" identifier = identifier) ;) (do_statement "do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');" do (compound_statement "{\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar10 = ~uVar10 - 1;" (assignment_expression "uVar10 = ~uVar10 - 1" identifier = (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal)) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }" else (compound_statement "{\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }" { (expression_statement "lVar25 = (longdouble)1;" (assignment_expression "lVar25 = (longdouble)1" identifier = (cast_expression "(longdouble)1" ( (type_descriptor "longdouble" type_identifier) ) number_literal)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (do_statement "do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);" do (compound_statement "{\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      }" { (expression_statement "lVar25 = lVar25 * (longdouble)uVar4;" (assignment_expression "lVar25 = lVar25 * (longdouble)uVar4" identifier = (binary_expression "lVar25 * (longdouble)uVar4" identifier * (cast_expression "(longdouble)uVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (if_statement "if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;" if (parenthesized_expression "(lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25)" ( (binary_expression "lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25" (binary_expression "lVar24 * (lVar22 / lVar23)" identifier * (parenthesized_expression "(lVar22 / lVar23)" ( (binary_expression "lVar22 / lVar23" identifier / identifier) ))) < (binary_expression "(longdouble)uVar4 * lVar25" (cast_expression "(longdouble)uVar4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * identifier)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(iVar19 < 8)" ( (binary_expression "iVar19 < 8" identifier < number_literal) )) ;) (expression_statement "FUN_00104c0d(uVar15);" (call_expression "FUN_00104c0d(uVar15)" identifier (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");" (call_expression "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf")" identifier (argument_list "(param_2,1,0xffffffffffffffff,"%.1Lf")" ( identifier , number_literal , number_literal , (string_literal ""%.1Lf"" " string_content ") ))) ;) (expression_statement "uVar11 = 0xffffffffffffffff;" (assignment_expression "uVar11 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar16 = param_2;" (assignment_expression "pcVar16 = param_2" identifier = identifier) ;) (do_statement "do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');" do (compound_statement "{\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      }" { (if_statement "if (uVar11 == 0) break;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar10 = ~uVar11 - 1;" (assignment_expression "uVar10 = ~uVar11 - 1" identifier = (binary_expression "~uVar11 - 1" (unary_expression "~uVar11" ~ identifier) - number_literal)) ;) (expression_statement "lVar18 = uVar17 + 1;" (assignment_expression "lVar18 = uVar17 + 1" identifier = (binary_expression "uVar17 + 1" identifier + number_literal)) ;) (if_statement "if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }" if (parenthesized_expression "((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0'))))" ( (binary_expression "(uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))" (parenthesized_expression "(uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10)" ( (binary_expression "uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10" (binary_expression "uVar17 + 2 + (ulong)(uVar3 == 0)" (binary_expression "uVar17 + 2" identifier + number_literal) + (call_expression "(ulong)(uVar3 == 0)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) )))) < identifier) )) || (parenthesized_expression "(((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))" ( (parenthesized_expression "((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0'))" ( (binary_expression "(param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')" (binary_expression "(param_3 & 8) != 0" (parenthesized_expression "(param_3 & 8)" ( (binary_expression "param_3 & 8" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(param_2[~uVar11 - 2] == '0')" ( (binary_expression "param_2[~uVar11 - 2] == '0'" (subscript_expression "param_2[~uVar11 - 2]" identifier [ (binary_expression "~uVar11 - 2" (unary_expression "~uVar11" ~ identifier) - number_literal) ]) == (char_literal "'0'" ' character ')) ))) )) ))) )) (compound_statement "{\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }" { (expression_statement "FUN_00104c0d(uVar15);" (call_expression "FUN_00104c0d(uVar15)" identifier (argument_list "(uVar15)" ( identifier ))) ;) (expression_statement "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");" (call_expression "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf")" identifier (argument_list "(param_2,1,0xffffffffffffffff,"%.0Lf")" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") ))) ;) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar16 = param_2;" (assignment_expression "pcVar16 = param_2" identifier = identifier) ;) (do_statement "do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');" do (compound_statement "{\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        }" { (if_statement "if (uVar10 == 0) break;" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "uVar10 = ~uVar10 - 1;" (assignment_expression "uVar10 = ~uVar10 - 1" identifier = (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" ~ identifier) - number_literal)) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) })) }))) (expression_statement "__dest_00 = pcVar9 + -uVar10;" (assignment_expression "__dest_00 = pcVar9 + -uVar10" identifier = (binary_expression "pcVar9 + -uVar10" identifier + (unary_expression "-uVar10" - identifier))) ;) (expression_statement "memmove(__dest_00,param_2,uVar10);" (call_expression "memmove(__dest_00,param_2,uVar10)" identifier (argument_list "(__dest_00,param_2,uVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "__dest = __dest_00 + (uVar10 - lVar18);" (assignment_expression "__dest = __dest_00 + (uVar10 - lVar18)" identifier = (binary_expression "__dest_00 + (uVar10 - lVar18)" identifier + (parenthesized_expression "(uVar10 - lVar18)" ( (binary_expression "uVar10 - lVar18" identifier - identifier) )))) ;) }))) (if_statement "if ((param_3 & 4) != 0) {\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }" if (parenthesized_expression "((param_3 & 4) != 0)" ( (binary_expression "(param_3 & 4) != 0" (parenthesized_expression "(param_3 & 4)" ( (binary_expression "param_3 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }" { (expression_statement "uVar11 = (long)__dest - (long)__dest_00;" (assignment_expression "uVar11 = (long)__dest - (long)__dest_00" identifier = (binary_expression "(long)__dest - (long)__dest_00" (cast_expression "(long)__dest" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)__dest_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "uVar17 = 0xffffffffffffffff;" (assignment_expression "uVar17 = 0xffffffffffffffff" identifier = number_literal) ;) (expression_statement "pcVar16 = pcVar8;" (assignment_expression "pcVar16 = pcVar8" identifier = identifier) ;) (do_statement "do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');" do (compound_statement "{\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    }" { (if_statement "if (uVar17 == 0) break;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar17 = uVar17 - 1;" (assignment_expression "uVar17 = uVar17 - 1" identifier = (binary_expression "uVar17 - 1" identifier - number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" identifier + (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "__memcpy_chk(local_78,__dest_00,uVar11,0x29);" (call_expression "__memcpy_chk(local_78,__dest_00,uVar11,0x29)" identifier (argument_list "(local_78,__dest_00,uVar11,0x29)" ( identifier , identifier , identifier , number_literal ))) ;) (while_statement "while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }" { (expression_statement "bVar21 = *pbVar20;" (assignment_expression "bVar21 = *pbVar20" identifier = (pointer_expression "*pbVar20" * identifier)) ;) (if_statement "if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }" if (parenthesized_expression "(bVar21 != 0)" ( (binary_expression "bVar21 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }" { (expression_statement "uVar10 = (ulong)bVar21;" (assignment_expression "uVar10 = (ulong)bVar21" identifier = (cast_expression "(ulong)bVar21" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }" if (parenthesized_expression "(0x7e < bVar21)" ( (binary_expression "0x7e < bVar21" number_literal < identifier) )) (compound_statement "{\n          uVar10 = uVar11;\n        }" { (expression_statement "uVar10 = uVar11;" (assignment_expression "uVar10 = uVar11" identifier = identifier) ;) })) (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" identifier = (binary_expression "pbVar20 + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }" if (parenthesized_expression "(uVar11 < uVar10)" ( (binary_expression "uVar11 < uVar10" identifier < identifier) )) (compound_statement "{\n        uVar10 = uVar11;\n      }" { (expression_statement "uVar10 = uVar11;" (assignment_expression "uVar10 = uVar11" identifier = identifier) ;) })) (expression_statement "__dest_00 = __dest + -uVar10;" (assignment_expression "__dest_00 = __dest + -uVar10" identifier = (binary_expression "__dest + -uVar10" identifier + (unary_expression "-uVar10" - identifier))) ;) (expression_statement "uVar11 = uVar11 - uVar10;" (assignment_expression "uVar11 = uVar11 - uVar10" identifier = (binary_expression "uVar11 - uVar10" identifier - identifier)) ;) (expression_statement "memcpy(__dest_00,local_78 + uVar11,uVar10);" (call_expression "memcpy(__dest_00,local_78 + uVar11,uVar10)" identifier (argument_list "(__dest_00,local_78 + uVar11,uVar10)" ( identifier , (binary_expression "local_78 + uVar11" identifier + identifier) , identifier ))) ;) (if_statement "if (uVar11 == 0) break;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "__dest = __dest_00 + -(~uVar17 - 1);" (assignment_expression "__dest = __dest_00 + -(~uVar17 - 1)" identifier = (binary_expression "__dest_00 + -(~uVar17 - 1)" identifier + (unary_expression "-(~uVar17 - 1)" - (parenthesized_expression "(~uVar17 - 1)" ( (binary_expression "~uVar17 - 1" (unary_expression "~uVar17" ~ identifier) - number_literal) ))))) ;) (expression_statement "memcpy(__dest,pcVar8,~uVar17 - 1);" (call_expression "memcpy(__dest,pcVar8,~uVar17 - 1)" identifier (argument_list "(__dest,pcVar8,~uVar17 - 1)" ( identifier , identifier , (binary_expression "~uVar17 - 1" (unary_expression "~uVar17" ~ identifier) - number_literal) ))) ;) })) })) (expression_statement "local_a8 = pcVar9;" (assignment_expression "local_a8 = pcVar9" identifier = identifier) ;) (if_statement "if ((param_3 & 0x80) == 0) goto LAB_001050c5;" if (parenthesized_expression "((param_3 & 0x80) == 0)" ( (binary_expression "(param_3 & 0x80) == 0" (parenthesized_expression "(param_3 & 0x80)" ( (binary_expression "param_3 & 0x80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;)) (if_statement "if (iVar19 < 0) {\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }" if (parenthesized_expression "(iVar19 < 0)" ( (binary_expression "iVar19 < 0" identifier < number_literal) )) (compound_statement "{\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }" { (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" identifier = number_literal) ;) (if_statement "if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }" if (parenthesized_expression "(param_5 < 2)" ( (binary_expression "param_5 < 2" identifier < number_literal) )) (compound_statement "{\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_001050b0;" goto statement_identifier ;) })) (do_statement "do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);" do (compound_statement "{\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    }" { (expression_statement "uVar10 = uVar10 * uVar4;" (assignment_expression "uVar10 = uVar10 * uVar4" identifier = (binary_expression "uVar10 * uVar4" identifier * identifier)) ;) (if_statement "if (param_5 <= uVar10) goto LAB_001050b0;" if (parenthesized_expression "(param_5 <= uVar10)" ( (binary_expression "param_5 <= uVar10" identifier <= identifier) )) (goto_statement "goto LAB_001050b0;" goto statement_identifier ;)) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 8)" ( (binary_expression "iVar19 != 8" identifier != number_literal) )) ;) (if_statement "if ((param_3 & 0x40) != 0) goto LAB_0010540f;" if (parenthesized_expression "((param_3 & 0x40) != 0)" ( (binary_expression "(param_3 & 0x40) != 0" (parenthesized_expression "(param_3 & 0x40)" ( (binary_expression "param_3 & 0x40" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_0010540f;" goto statement_identifier ;)) (labeled_statement "LAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }" statement_identifier : (if_statement "if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }" if (parenthesized_expression "((iVar19 == 1) && (uVar3 == 0))" ( (binary_expression "(iVar19 == 1) && (uVar3 == 0)" (parenthesized_expression "(iVar19 == 1)" ( (binary_expression "iVar19 == 1" identifier == number_literal) )) && (parenthesized_expression "(uVar3 == 0)" ( (binary_expression "uVar3 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }" { (expression_statement "*pcVar9 = 'k';" (assignment_expression "*pcVar9 = 'k'" (pointer_expression "*pcVar9" * identifier) = (char_literal "'k'" ' character ')) ;) (expression_statement "local_a8 = pcVar9 + 1;" (assignment_expression "local_a8 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (goto_statement "goto joined_r0x001054bc;" goto statement_identifier ;) }))) (expression_statement "local_a8 = pcVar9 + 1;" (assignment_expression "local_a8 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar9 = (&DAT_0010b240)[iVar19];" (assignment_expression "*pcVar9 = (&DAT_0010b240)[iVar19]" (pointer_expression "*pcVar9" * identifier) = (subscript_expression "(&DAT_0010b240)[iVar19]" (parenthesized_expression "(&DAT_0010b240)" ( (pointer_expression "&DAT_0010b240" & identifier) )) [ identifier ])) ;) (if_statement "if ((param_3 & 0x100) == 0) goto LAB_001050c5;" if (parenthesized_expression "((param_3 & 0x100) == 0)" ( (binary_expression "(param_3 & 0x100) == 0" (parenthesized_expression "(param_3 & 0x100)" ( (binary_expression "param_3 & 0x100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;)) (if_statement "if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }" if (parenthesized_expression "(uVar3 != 0)" ( (binary_expression "uVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }" { (expression_statement "pcVar9[1] = 'i';" (assignment_expression "pcVar9[1] = 'i'" (subscript_expression "pcVar9[1]" identifier [ number_literal ]) = (char_literal "'i'" ' character ')) ;) (expression_statement "local_a8 = pcVar9 + 2;" (assignment_expression "local_a8 = pcVar9 + 2" identifier = (binary_expression "pcVar9 + 2" identifier + number_literal)) ;) })) }) (else_clause "else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }" else (compound_statement "{\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }" { (labeled_statement "LAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;" statement_identifier : (if_statement "if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;" if (parenthesized_expression "((param_3 & 0x100) == 0 && iVar19 == 0)" ( (binary_expression "(param_3 & 0x100) == 0 && iVar19 == 0" (binary_expression "(param_3 & 0x100) == 0" (parenthesized_expression "(param_3 & 0x100)" ( (binary_expression "param_3 & 0x100" identifier & number_literal) )) == number_literal) && (binary_expression "iVar19 == 0" identifier == number_literal)) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;))) (if_statement "if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }" if (parenthesized_expression "((param_3 & 0x40) != 0)" ( (binary_expression "(param_3 & 0x40) != 0" (parenthesized_expression "(param_3 & 0x40)" ( (binary_expression "param_3 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }" { (labeled_statement "LAB_0010540f:\n      pcVar9 = param_2 + 0x288;" statement_identifier : (expression_statement "pcVar9 = param_2 + 0x288;" (assignment_expression "pcVar9 = param_2 + 0x288" identifier = (binary_expression "param_2 + 0x288" identifier + number_literal)) ;)) (expression_statement "param_2[0x287] = ' ';" (assignment_expression "param_2[0x287] = ' '" (subscript_expression "param_2[0x287]" identifier [ number_literal ]) = (char_literal "' '" ' character ')) ;) })) (expression_statement "local_a8 = pcVar9;" (assignment_expression "local_a8 = pcVar9" identifier = identifier) ;) (if_statement "if (iVar19 != 0) goto LAB_00105427;" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00105427;" goto statement_identifier ;)) (labeled_statement "joined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;" statement_identifier : (if_statement "if ((param_3 & 0x100) == 0) goto LAB_001050c5;" if (parenthesized_expression "((param_3 & 0x100) == 0)" ( (binary_expression "(param_3 & 0x100) == 0" (parenthesized_expression "(param_3 & 0x100)" ( (binary_expression "param_3 & 0x100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_001050c5;" goto statement_identifier ;))) }))) (expression_statement "*local_a8 = 'B';" (assignment_expression "*local_a8 = 'B'" (pointer_expression "*local_a8" * identifier) = (char_literal "'B'" ' character ')) ;) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" identifier = (binary_expression "local_a8 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_001050c5:\n  *local_a8 = '\0';" statement_identifier : (expression_statement "*local_a8 = '\0';" (assignment_expression "*local_a8 = '\0'" (pointer_expression "*local_a8" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest_00;\n  }" if (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return __dest_00;\n  }" { (return_statement "return __dest_00;" return identifier ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (unary_expression ~ IDENT) - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (field_expression IDENT -> field_identifier))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT -> field_identifier)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (unary_expression ~ IDENT) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (field_expression IDENT -> field_identifier)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (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 IDENT % IDENT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT / IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) + LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT % IDENT) ))) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )) + (binary_expression (parenthesized_expression ( (binary_expression IDENT % IDENT) )) * LIT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) != LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + IDENT)) )) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT <= IDENT)) ))) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT != LIT))) ;) }))) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) }))) })))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (char_literal ' character '))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) ))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) })) }))) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) + IDENT) != LIT) ))) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT == LIT) && (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))))) ;) })))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / LIT) ))) * LIT)) + (char_literal ' character '))) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT % IDENT) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT / IDENT) )) * IDENT)) , (binary_expression (binary_expression IDENT / (parenthesized_expression ( (binary_expression IDENT / IDENT) ))) == IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT * (parenthesized_expression ( (binary_expression IDENT / IDENT) ))) < (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression IDENT < LIT) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (unary_expression ~ IDENT) - LIT) ]) == (char_literal ' character ')) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (unary_expression ~ IDENT) - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (parenthesized_expression ( (binary_expression (unary_expression ~ IDENT) - LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression (unary_expression ~ IDENT) - LIT) ))) ;) })) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) && (binary_expression IDENT == LIT)) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' character ')) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "char * FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)\n\n{\n  char cVar1;\n  bool bVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  lconv *plVar7;\n  char *pcVar8;\n  char *pcVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  char *__dest;\n  uint uVar14;\n  uint uVar15;\n  char *__dest_00;\n  char *pcVar16;\n  ulong uVar17;\n  long lVar18;\n  int iVar19;\n  byte *pbVar20;\n  long in_FS_OFFSET;\n  byte bVar21;\n  longdouble lVar22;\n  longdouble lVar23;\n  longdouble lVar24;\n  longdouble lVar25;\n  char *local_a8;\n  undefined1 local_78 [56];\n  long local_40;\n  \n  bVar21 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar15 = param_3 & 3;\n  uVar3 = param_3 & 0x20;\n  uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;\n  plVar7 = localeconv();\n  pcVar16 = plVar7->decimal_point;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = pcVar16;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  uVar17 = ~uVar10 - 1;\n  if (0xf < ~uVar10 - 2) {\n    uVar17 = 1;\n    pcVar16 = ".";\n  }\n  pbVar20 = (byte *)plVar7->grouping;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = plVar7->thousands_sep;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  pcVar8 = "";\n  if (~uVar10 - 1 < 0x11) {\n    pcVar8 = plVar7->thousands_sep;\n  }\n  pcVar9 = param_2 + 0x287;\n  if (param_4 < param_5) {\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }\n  else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }\n  if ((param_3 & 4) != 0) {\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }\n  local_a8 = pcVar9;\n  if ((param_3 & 0x80) == 0) goto LAB_001050c5;\n  if (iVar19 < 0) {\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }\n  *local_a8 = 'B';\n  local_a8 = local_a8 + 1;\nLAB_001050c5:\n  *local_a8 = '\0';\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest_00;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "char") (pointer_declarator "* FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)" (* "*") (function_declarator "FUN_00104cd1(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)" (identifier "FUN_00104cd1") (parameter_list "(ulong param_1,char *param_2,uint param_3,ulong param_4,ulong param_5)" (( "(") (parameter_declaration "ulong param_1" (type_identifier "ulong") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "ulong param_4" (type_identifier "ulong") (identifier "param_4")) (, ",") (parameter_declaration "ulong param_5" (type_identifier "ulong") (identifier "param_5")) () ")")))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  uint uVar3;\n  uint uVar4;\n  uint uVar5;\n  uint uVar6;\n  lconv *plVar7;\n  char *pcVar8;\n  char *pcVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  char *__dest;\n  uint uVar14;\n  uint uVar15;\n  char *__dest_00;\n  char *pcVar16;\n  ulong uVar17;\n  long lVar18;\n  int iVar19;\n  byte *pbVar20;\n  long in_FS_OFFSET;\n  byte bVar21;\n  longdouble lVar22;\n  longdouble lVar23;\n  longdouble lVar24;\n  longdouble lVar25;\n  char *local_a8;\n  undefined1 local_78 [56];\n  long local_40;\n  \n  bVar21 = 0;\n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  uVar15 = param_3 & 3;\n  uVar3 = param_3 & 0x20;\n  uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;\n  plVar7 = localeconv();\n  pcVar16 = plVar7->decimal_point;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = pcVar16;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  uVar17 = ~uVar10 - 1;\n  if (0xf < ~uVar10 - 2) {\n    uVar17 = 1;\n    pcVar16 = ".";\n  }\n  pbVar20 = (byte *)plVar7->grouping;\n  uVar10 = 0xffffffffffffffff;\n  pcVar8 = plVar7->thousands_sep;\n  do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');\n  pcVar8 = "";\n  if (~uVar10 - 1 < 0x11) {\n    pcVar8 = plVar7->thousands_sep;\n  }\n  pcVar9 = param_2 + 0x287;\n  if (param_4 < param_5) {\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }\n  else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }\n  if ((param_3 & 4) != 0) {\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }\n  local_a8 = pcVar9;\n  if ((param_3 & 0x80) == 0) goto LAB_001050c5;\n  if (iVar19 < 0) {\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }\n  *local_a8 = 'B';\n  local_a8 = local_a8 + 1;\nLAB_001050c5:\n  *local_a8 = '\0';\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest_00;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "lconv *plVar7;" (type_identifier "lconv") (pointer_declarator "*plVar7" (* "*") (identifier "plVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "ulong uVar11;" (type_identifier "ulong") (identifier "uVar11") (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "char *__dest;" (primitive_type "char") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "char *__dest_00;" (primitive_type "char") (pointer_declarator "*__dest_00" (* "*") (identifier "__dest_00")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "ulong uVar17;" (type_identifier "ulong") (identifier "uVar17") (; ";")) (declaration "long lVar18;" (sized_type_specifier "long" (long "long")) (identifier "lVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "byte bVar21;" (type_identifier "byte") (identifier "bVar21") (; ";")) (declaration "longdouble lVar22;" (type_identifier "longdouble") (identifier "lVar22") (; ";")) (declaration "longdouble lVar23;" (type_identifier "longdouble") (identifier "lVar23") (; ";")) (declaration "longdouble lVar24;" (type_identifier "longdouble") (identifier "lVar24") (; ";")) (declaration "longdouble lVar25;" (type_identifier "longdouble") (identifier "lVar25") (; ";")) (declaration "char *local_a8;" (primitive_type "char") (pointer_declarator "*local_a8" (* "*") (identifier "local_a8")) (; ";")) (declaration "undefined1 local_78 [56];" (type_identifier "undefined1") (array_declarator "local_78 [56]" (identifier "local_78") ([ "[") (number_literal "56") (] "]")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "uVar15 = param_3 & 3;" (assignment_expression "uVar15 = param_3 & 3" (identifier "uVar15") (= "=") (binary_expression "param_3 & 3" (identifier "param_3") (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar3 = param_3 & 0x20;" (assignment_expression "uVar3 = param_3 & 0x20" (identifier "uVar3") (= "=") (binary_expression "param_3 & 0x20" (identifier "param_3") (& "&") (number_literal "0x20"))) (; ";")) (expression_statement "uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;" (assignment_expression "uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400" (identifier "uVar4") (= "=") (binary_expression "(-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400" (parenthesized_expression "(-(uint)(uVar3 == 0) & 0xffffffe8)" (( "(") (binary_expression "-(uint)(uVar3 == 0) & 0xffffffe8" (unary_expression "-(uint)(uVar3 == 0)" (- "-") (call_expression "(uint)(uVar3 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xffffffe8")) () ")")) (+ "+") (number_literal "0x400"))) (; ";")) (expression_statement "plVar7 = localeconv();" (assignment_expression "plVar7 = localeconv()" (identifier "plVar7") (= "=") (call_expression "localeconv()" (identifier "localeconv") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar16 = plVar7->decimal_point;" (assignment_expression "pcVar16 = plVar7->decimal_point" (identifier "pcVar16") (= "=") (field_expression "plVar7->decimal_point" (identifier "plVar7") (-> "->") (field_identifier "decimal_point"))) (; ";")) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" (identifier "uVar10") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar8 = pcVar16;" (assignment_expression "pcVar8 = pcVar16" (identifier "pcVar8") (= "=") (identifier "pcVar16")) (; ";")) (do_statement "do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');" (do "do") (compound_statement "{\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  }" ({ "{") (if_statement "if (uVar10 == 0) break;" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" (identifier "cVar1") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar21 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar21")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "uVar17 = ~uVar10 - 1;" (assignment_expression "uVar17 = ~uVar10 - 1" (identifier "uVar17") (= "=") (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" (~ "~") (identifier "uVar10")) (- "-") (number_literal "1"))) (; ";")) (if_statement "if (0xf < ~uVar10 - 2) {\n    uVar17 = 1;\n    pcVar16 = ".";\n  }" (if "if") (parenthesized_expression "(0xf < ~uVar10 - 2)" (( "(") (binary_expression "0xf < ~uVar10 - 2" (number_literal "0xf") (< "<") (binary_expression "~uVar10 - 2" (unary_expression "~uVar10" (~ "~") (identifier "uVar10")) (- "-") (number_literal "2"))) () ")")) (compound_statement "{\n    uVar17 = 1;\n    pcVar16 = ".";\n  }" ({ "{") (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" (identifier "uVar17") (= "=") (number_literal "1")) (; ";")) (expression_statement "pcVar16 = ".";" (assignment_expression "pcVar16 = "."" (identifier "pcVar16") (= "=") (string_literal ""."" (" """) (string_content ".") (" """))) (; ";")) (} "}"))) (expression_statement "pbVar20 = (byte *)plVar7->grouping;" (assignment_expression "pbVar20 = (byte *)plVar7->grouping" (identifier "pbVar20") (= "=") (cast_expression "(byte *)plVar7->grouping" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "plVar7->grouping" (identifier "plVar7") (-> "->") (field_identifier "grouping")))) (; ";")) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" (identifier "uVar10") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar8 = plVar7->thousands_sep;" (assignment_expression "pcVar8 = plVar7->thousands_sep" (identifier "pcVar8") (= "=") (field_expression "plVar7->thousands_sep" (identifier "plVar7") (-> "->") (field_identifier "thousands_sep"))) (; ";")) (do_statement "do {\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  } while (cVar1 != '\0');" (do "do") (compound_statement "{\n    if (uVar10 == 0) break;\n    uVar10 = uVar10 - 1;\n    cVar1 = *pcVar8;\n    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;\n  }" ({ "{") (if_statement "if (uVar10 == 0) break;" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar8;" (assignment_expression "cVar1 = *pcVar8" (identifier "cVar1") (= "=") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8"))) (; ";")) (expression_statement "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1" (identifier "pcVar8") (= "=") (binary_expression "pcVar8 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar8 + (ulong)bVar21 * -2" (identifier "pcVar8") (+ "+") (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar21")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar8 = "";" (assignment_expression "pcVar8 = """ (identifier "pcVar8") (= "=") (string_literal """" (" """) (" """))) (; ";")) (if_statement "if (~uVar10 - 1 < 0x11) {\n    pcVar8 = plVar7->thousands_sep;\n  }" (if "if") (parenthesized_expression "(~uVar10 - 1 < 0x11)" (( "(") (binary_expression "~uVar10 - 1 < 0x11" (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" (~ "~") (identifier "uVar10")) (- "-") (number_literal "1")) (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n    pcVar8 = plVar7->thousands_sep;\n  }" ({ "{") (expression_statement "pcVar8 = plVar7->thousands_sep;" (assignment_expression "pcVar8 = plVar7->thousands_sep" (identifier "pcVar8") (= "=") (field_expression "plVar7->thousands_sep" (identifier "plVar7") (-> "->") (field_identifier "thousands_sep"))) (; ";")) (} "}"))) (expression_statement "pcVar9 = param_2 + 0x287;" (assignment_expression "pcVar9 = param_2 + 0x287" (identifier "pcVar9") (= "=") (binary_expression "param_2 + 0x287" (identifier "param_2") (+ "+") (number_literal "0x287"))) (; ";")) (if_statement "if (param_4 < param_5) {\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }\n  else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }" (if "if") (parenthesized_expression "(param_4 < param_5)" (( "(") (binary_expression "param_4 < param_5" (identifier "param_4") (< "<") (identifier "param_5")) () ")")) (compound_statement "{\n    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;\n    param_4 = param_5 / param_4;\n    uVar12 = param_1 / param_4;\n    uVar10 = (param_1 % param_4) * 10;\n    uVar11 = (uVar10 % param_4) * 2;\n    uVar10 = uVar10 / param_4 & 0xffffffff;\n    if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }\nLAB_00105103:\n    uVar6 = (uint)uVar10;\n    iVar19 = -1;\n    __dest = pcVar9;\n    if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }\nLAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }\n    __dest_00 = __dest;\n    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }\n  }" ({ "{") (if_statement "if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;" (if "if") (parenthesized_expression "((param_4 == 0) || (param_5 % param_4 != 0))" (( "(") (binary_expression "(param_4 == 0) || (param_5 % param_4 != 0)" (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_5 % param_4 != 0)" (( "(") (binary_expression "param_5 % param_4 != 0" (binary_expression "param_5 % param_4" (identifier "param_5") (% "%") (identifier "param_4")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00104dfa;" (goto "goto") (statement_identifier "LAB_00104dfa") (; ";"))) (expression_statement "param_4 = param_5 / param_4;" (assignment_expression "param_4 = param_5 / param_4" (identifier "param_4") (= "=") (binary_expression "param_5 / param_4" (identifier "param_5") (/ "/") (identifier "param_4"))) (; ";")) (expression_statement "uVar12 = param_1 / param_4;" (assignment_expression "uVar12 = param_1 / param_4" (identifier "uVar12") (= "=") (binary_expression "param_1 / param_4" (identifier "param_1") (/ "/") (identifier "param_4"))) (; ";")) (expression_statement "uVar10 = (param_1 % param_4) * 10;" (assignment_expression "uVar10 = (param_1 % param_4) * 10" (identifier "uVar10") (= "=") (binary_expression "(param_1 % param_4) * 10" (parenthesized_expression "(param_1 % param_4)" (( "(") (binary_expression "param_1 % param_4" (identifier "param_1") (% "%") (identifier "param_4")) () ")")) (* "*") (number_literal "10"))) (; ";")) (expression_statement "uVar11 = (uVar10 % param_4) * 2;" (assignment_expression "uVar11 = (uVar10 % param_4) * 2" (identifier "uVar11") (= "=") (binary_expression "(uVar10 % param_4) * 2" (parenthesized_expression "(uVar10 % param_4)" (( "(") (binary_expression "uVar10 % param_4" (identifier "uVar10") (% "%") (identifier "param_4")) () ")")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "uVar10 = uVar10 / param_4 & 0xffffffff;" (assignment_expression "uVar10 = uVar10 / param_4 & 0xffffffff" (identifier "uVar10") (= "=") (binary_expression "uVar10 / param_4 & 0xffffffff" (binary_expression "uVar10 / param_4" (identifier "uVar10") (/ "/") (identifier "param_4")) (& "&") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (uVar11 < param_4) {\n      uVar14 = (uint)(uVar11 != 0);\n    }\n    else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }" (if "if") (parenthesized_expression "(uVar11 < param_4)" (( "(") (binary_expression "uVar11 < param_4" (identifier "uVar11") (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n      uVar14 = (uint)(uVar11 != 0);\n    }" ({ "{") (expression_statement "uVar14 = (uint)(uVar11 != 0);" (assignment_expression "uVar14 = (uint)(uVar11 != 0)" (identifier "uVar14") (= "=") (call_expression "(uint)(uVar11 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar11 != 0)" (( "(") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      uVar14 = (param_4 < uVar11) + 2;\n    }" (else "else") (compound_statement "{\n      uVar14 = (param_4 < uVar11) + 2;\n    }" ({ "{") (expression_statement "uVar14 = (param_4 < uVar11) + 2;" (assignment_expression "uVar14 = (param_4 < uVar11) + 2" (identifier "uVar14") (= "=") (binary_expression "(param_4 < uVar11) + 2" (parenthesized_expression "(param_4 < uVar11)" (( "(") (binary_expression "param_4 < uVar11" (identifier "param_4") (< "<") (identifier "uVar11")) () ")")) (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (labeled_statement "LAB_00105103:\n    uVar6 = (uint)uVar10;" (statement_identifier "LAB_00105103") (: ":") (expression_statement "uVar6 = (uint)uVar10;" (assignment_expression "uVar6 = (uint)uVar10" (identifier "uVar6") (= "=") (cast_expression "(uint)uVar10" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar10"))) (; ";"))) (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" (identifier "iVar19") (= "=") (number_literal "-1")) (; ";")) (expression_statement "__dest = pcVar9;" (assignment_expression "__dest = pcVar9" (identifier "__dest") (= "=") (identifier "pcVar9")) (; ";")) (if_statement "if ((param_3 & 0x10) != 0) {\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }" (if "if") (parenthesized_expression "((param_3 & 0x10) != 0)" (( "(") (binary_expression "(param_3 & 0x10) != 0" (parenthesized_expression "(param_3 & 0x10)" (( "(") (binary_expression "param_3 & 0x10" (identifier "param_3") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar11 = (ulong)uVar4;\n      if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }\n    }" ({ "{") (expression_statement "uVar11 = (ulong)uVar4;" (assignment_expression "uVar11 = (ulong)uVar4" (identifier "uVar11") (= "=") (cast_expression "(ulong)uVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar4"))) (; ";")) (if_statement "if (uVar12 < uVar11) {\n        iVar19 = 0;\n      }\n      else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }" (if "if") (parenthesized_expression "(uVar12 < uVar11)" (( "(") (binary_expression "uVar12 < uVar11" (identifier "uVar12") (< "<") (identifier "uVar11")) () ")")) (compound_statement "{\n        iVar19 = 0;\n      }" ({ "{") (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }" (else "else") (compound_statement "{\n        iVar19 = 0;\n        uVar13 = uVar12;\n        do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));\n        if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }\n      }" ({ "{") (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar13 = uVar12;" (assignment_expression "uVar13 = uVar12" (identifier "uVar13") (= "=") (identifier "uVar12")) (; ";")) (do_statement "do {\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));" (do "do") (compound_statement "{\n          uVar12 = uVar13 / uVar11;\n          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;\n          uVar6 = uVar5 / uVar4;\n          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;\n          uVar10 = (ulong)uVar6;\n          if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }\n          iVar19 = iVar19 + 1;\n        }" ({ "{") (expression_statement "uVar12 = uVar13 / uVar11;" (assignment_expression "uVar12 = uVar13 / uVar11" (identifier "uVar12") (= "=") (binary_expression "uVar13 / uVar11" (identifier "uVar13") (/ "/") (identifier "uVar11"))) (; ";")) (expression_statement "uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;" (assignment_expression "uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10" (identifier "uVar5") (= "=") (binary_expression "(int)uVar10 + (int)(uVar13 % uVar11) * 10" (cast_expression "(int)uVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar10")) (+ "+") (binary_expression "(int)(uVar13 % uVar11) * 10" (cast_expression "(int)(uVar13 % uVar11)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar13 % uVar11)" (( "(") (binary_expression "uVar13 % uVar11" (identifier "uVar13") (% "%") (identifier "uVar11")) () ")"))) (* "*") (number_literal "10")))) (; ";")) (expression_statement "uVar6 = uVar5 / uVar4;" (assignment_expression "uVar6 = uVar5 / uVar4" (identifier "uVar6") (= "=") (binary_expression "uVar5 / uVar4" (identifier "uVar5") (/ "/") (identifier "uVar4"))) (; ";")) (expression_statement "uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;" (assignment_expression "uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2" (identifier "uVar5") (= "=") (binary_expression "((int)uVar14 >> 1) + (uVar5 % uVar4) * 2" (parenthesized_expression "((int)uVar14 >> 1)" (( "(") (binary_expression "(int)uVar14 >> 1" (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14")) (>> ">>") (number_literal "1")) () ")")) (+ "+") (binary_expression "(uVar5 % uVar4) * 2" (parenthesized_expression "(uVar5 % uVar4)" (( "(") (binary_expression "uVar5 % uVar4" (identifier "uVar5") (% "%") (identifier "uVar4")) () ")")) (* "*") (number_literal "2")))) (; ";")) (expression_statement "uVar10 = (ulong)uVar6;" (assignment_expression "uVar10 = (ulong)uVar6" (identifier "uVar10") (= "=") (cast_expression "(ulong)uVar6" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar6"))) (; ";")) (if_statement "if (uVar5 < uVar4) {\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }\n          else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }" (if "if") (parenthesized_expression "(uVar5 < uVar4)" (( "(") (binary_expression "uVar5 < uVar4" (identifier "uVar5") (< "<") (identifier "uVar4")) () ")")) (compound_statement "{\n            uVar14 = (uint)(uVar14 + uVar5 != 0);\n          }" ({ "{") (expression_statement "uVar14 = (uint)(uVar14 + uVar5 != 0);" (assignment_expression "uVar14 = (uint)(uVar14 + uVar5 != 0)" (identifier "uVar14") (= "=") (call_expression "(uint)(uVar14 + uVar5 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar14 + uVar5 != 0)" (( "(") (binary_expression "uVar14 + uVar5 != 0" (binary_expression "uVar14 + uVar5" (identifier "uVar14") (+ "+") (identifier "uVar5")) (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }" (else "else") (compound_statement "{\n            uVar14 = (uVar4 < uVar14 + uVar5) + 2;\n          }" ({ "{") (expression_statement "uVar14 = (uVar4 < uVar14 + uVar5) + 2;" (assignment_expression "uVar14 = (uVar4 < uVar14 + uVar5) + 2" (identifier "uVar14") (= "=") (binary_expression "(uVar4 < uVar14 + uVar5) + 2" (parenthesized_expression "(uVar4 < uVar14 + uVar5)" (( "(") (binary_expression "uVar4 < uVar14 + uVar5" (identifier "uVar4") (< "<") (binary_expression "uVar14 + uVar5" (identifier "uVar14") (+ "+") (identifier "uVar5"))) () ")")) (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12))" (( "(") (binary_expression "(iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12)" (parenthesized_expression "(iVar19 < 8)" (( "(") (binary_expression "iVar19 < 8" (identifier "iVar19") (< "<") (number_literal "8")) () ")")) (&& "&&") (parenthesized_expression "(uVar13 = uVar12, uVar11 <= uVar12)" (( "(") (comma_expression "uVar13 = uVar12, uVar11 <= uVar12" (assignment_expression "uVar13 = uVar12" (identifier "uVar13") (= "=") (identifier "uVar12")) (, ",") (binary_expression "uVar11 <= uVar12" (identifier "uVar11") (<= "<=") (identifier "uVar12"))) () ")"))) () ")")) (; ";")) (if_statement "if (uVar12 < 10) {\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }" (if "if") (parenthesized_expression "(uVar12 < 10)" (( "(") (binary_expression "uVar12 < 10" (identifier "uVar12") (< "<") (number_literal "10")) () ")")) (compound_statement "{\n          if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }\n          if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          param_2[0x286] = (char)uVar6 + '0';\n          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);\n          uVar14 = 0;\n          uVar6 = 0;\n          __dest = param_2 + (0x286 - uVar17);\n        }" ({ "{") (if_statement "if (uVar15 == 1) {\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }\n          else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }" (if "if") (parenthesized_expression "(uVar15 == 1)" (( "(") (binary_expression "uVar15 == 1" (identifier "uVar15") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            bVar2 = 2 < (uVar6 & 1) + uVar14;\n          }" ({ "{") (expression_statement "bVar2 = 2 < (uVar6 & 1) + uVar14;" (assignment_expression "bVar2 = 2 < (uVar6 & 1) + uVar14" (identifier "bVar2") (= "=") (binary_expression "2 < (uVar6 & 1) + uVar14" (number_literal "2") (< "<") (binary_expression "(uVar6 & 1) + uVar14" (parenthesized_expression "(uVar6 & 1)" (( "(") (binary_expression "uVar6 & 1" (identifier "uVar6") (& "&") (number_literal "1")) () ")")) (+ "+") (identifier "uVar14")))) (; ";")) (} "}")) (else_clause "else {\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }" (else "else") (compound_statement "{\n            bVar2 = uVar15 == 0 && uVar14 != 0;\n          }" ({ "{") (expression_statement "bVar2 = uVar15 == 0 && uVar14 != 0;" (assignment_expression "bVar2 = uVar15 == 0 && uVar14 != 0" (identifier "bVar2") (= "=") (binary_expression "uVar15 == 0 && uVar14 != 0" (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) (&& "&&") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")))) (; ";")) (} "}")))) (if_statement "if (bVar2) {\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }\n          else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n            uVar6 = uVar6 + 1;\n            if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" ({ "{") (expression_statement "uVar6 = uVar6 + 1;" (assignment_expression "uVar6 = uVar6 + 1" (identifier "uVar6") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar6 == 10) {\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" (if "if") (parenthesized_expression "(uVar6 == 10)" (( "(") (binary_expression "uVar6 == 10" (identifier "uVar6") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n              uVar12 = uVar12 + 1;\n              if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }\n              uVar14 = 0;\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" ({ "{") (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar12 < 10) {\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }" (if "if") (parenthesized_expression "(uVar12 < 10)" (( "(") (binary_expression "uVar12 < 10" (identifier "uVar12") (< "<") (number_literal "10")) () ")")) (compound_statement "{\n                uVar14 = 0;\n                uVar6 = 0;\n                goto LAB_00105494;\n              }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00105494;" (goto "goto") (statement_identifier "LAB_00105494") (; ";")) (} "}"))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00105238;" (goto "goto") (statement_identifier "LAB_00105238") (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" (else "else") (if_statement "if (uVar6 == 0) {\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" (if "if") (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }\n          }" ({ "{") (labeled_statement "LAB_00105494:\n            if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" (statement_identifier "LAB_00105494") (: ":") (if_statement "if ((param_3 & 8) != 0) {\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" (if "if") (parenthesized_expression "((param_3 & 8) != 0)" (( "(") (binary_expression "(param_3 & 8) != 0" (parenthesized_expression "(param_3 & 8)" (( "(") (binary_expression "param_3 & 8" (identifier "param_3") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar6 = 0;\n              goto LAB_00105238;\n            }" ({ "{") (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00105238;" (goto "goto") (statement_identifier "LAB_00105238") (; ";")) (} "}")))) (} "}"))))) (expression_statement "param_2[0x286] = (char)uVar6 + '0';" (assignment_expression "param_2[0x286] = (char)uVar6 + '0'" (subscript_expression "param_2[0x286]" (identifier "param_2") ([ "[") (number_literal "0x286") (] "]")) (= "=") (binary_expression "(char)uVar6 + '0'" (cast_expression "(char)uVar6" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar6")) (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'")))) (; ";")) (expression_statement "memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);" (call_expression "memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17)" (identifier "memcpy") (argument_list "(param_2 + (0x286 - uVar17),pcVar16,uVar17)" (( "(") (binary_expression "param_2 + (0x286 - uVar17)" (identifier "param_2") (+ "+") (parenthesized_expression "(0x286 - uVar17)" (( "(") (binary_expression "0x286 - uVar17" (number_literal "0x286") (- "-") (identifier "uVar17")) () ")"))) (, ",") (identifier "pcVar16") (, ",") (identifier "uVar17") () ")"))) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = 0;" (assignment_expression "uVar6 = 0" (identifier "uVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "__dest = param_2 + (0x286 - uVar17);" (assignment_expression "__dest = param_2 + (0x286 - uVar17)" (identifier "__dest") (= "=") (binary_expression "param_2 + (0x286 - uVar17)" (identifier "param_2") (+ "+") (parenthesized_expression "(0x286 - uVar17)" (( "(") (binary_expression "0x286 - uVar17" (number_literal "0x286") (- "-") (identifier "uVar17")) () ")")))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (labeled_statement "LAB_00105238:\n    if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" (statement_identifier "LAB_00105238") (: ":") (if_statement "if (uVar15 == 1) {\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }\n    else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" (if "if") (parenthesized_expression "(uVar15 == 1)" (( "(") (binary_expression "uVar15 == 1" (identifier "uVar15") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));\n    }" ({ "{") (expression_statement "bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));" (assignment_expression "bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" (identifier "bVar2") (= "=") (binary_expression "5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" (number_literal "5") (< "<") (cast_expression "(int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0))" (( "(") (binary_expression "uVar6 + (((uint)uVar12 & 1) + uVar14 != 0)" (identifier "uVar6") (+ "+") (parenthesized_expression "(((uint)uVar12 & 1) + uVar14 != 0)" (( "(") (binary_expression "((uint)uVar12 & 1) + uVar14 != 0" (binary_expression "((uint)uVar12 & 1) + uVar14" (parenthesized_expression "((uint)uVar12 & 1)" (( "(") (binary_expression "(uint)uVar12 & 1" (cast_expression "(uint)uVar12" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar12")) (& "&") (number_literal "1")) () ")")) (+ "+") (identifier "uVar14")) (!= "!=") (number_literal "0")) () ")"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" (else "else") (compound_statement "{\n      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);\n    }" ({ "{") (expression_statement "bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);" (assignment_expression "bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14)" (identifier "bVar2") (= "=") (binary_expression "uVar15 == 0 && 0 < (int)(uVar6 + uVar14)" (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) (&& "&&") (binary_expression "0 < (int)(uVar6 + uVar14)" (number_literal "0") (< "<") (cast_expression "(int)(uVar6 + uVar14)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar6 + uVar14)" (( "(") (binary_expression "uVar6 + uVar14" (identifier "uVar6") (+ "+") (identifier "uVar14")) () ")")))))) (; ";")) (} "}"))))) (expression_statement "__dest_00 = __dest;" (assignment_expression "__dest_00 = __dest" (identifier "__dest_00") (= "=") (identifier "__dest")) (; ";")) (if_statement "if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)) {\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }\n    else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }" (if "if") (parenthesized_expression "((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8))" (( "(") (binary_expression "(((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&\n       (iVar19 < 8)" (parenthesized_expression "(((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12))" (( "(") (binary_expression "((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)" (parenthesized_expression "((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0))" (( "(") (binary_expression "(bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)" (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (&& "&&") (parenthesized_expression "(uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)" (( "(") (comma_expression "uVar12 = uVar12 + 1, (param_3 & 0x10) != 0" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (, ",") (binary_expression "(param_3 & 0x10) != 0" (parenthesized_expression "(param_3 & 0x10)" (( "(") (binary_expression "param_3 & 0x10" (identifier "param_3") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar4 == uVar12)" (( "(") (binary_expression "uVar4 == uVar12" (identifier "uVar4") (== "==") (identifier "uVar12")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar19 < 8)" (( "(") (binary_expression "iVar19 < 8" (identifier "iVar19") (< "<") (number_literal "8")) () ")"))) () ")")) (compound_statement "{\n      iVar19 = iVar19 + 1;\n      if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }\n      __dest_00 = __dest + -1;\n      __dest[-1] = '1';\n    }" ({ "{") (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((param_3 & 8) == 0) {\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }" (if "if") (parenthesized_expression "((param_3 & 8) == 0)" (( "(") (binary_expression "(param_3 & 8) == 0" (parenthesized_expression "(param_3 & 8)" (( "(") (binary_expression "param_3 & 8" (identifier "param_3") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        __dest[-1] = '0';\n        __dest = __dest + ~uVar17;\n        memcpy(__dest,pcVar16,uVar17);\n      }" ({ "{") (expression_statement "__dest[-1] = '0';" (assignment_expression "__dest[-1] = '0'" (subscript_expression "__dest[-1]" (identifier "__dest") ([ "[") (number_literal "-1") (] "]")) (= "=") (char_literal "'0'" (' "'") (character "0") (' "'"))) (; ";")) (expression_statement "__dest = __dest + ~uVar17;" (assignment_expression "__dest = __dest + ~uVar17" (identifier "__dest") (= "=") (binary_expression "__dest + ~uVar17" (identifier "__dest") (+ "+") (unary_expression "~uVar17" (~ "~") (identifier "uVar17")))) (; ";")) (expression_statement "memcpy(__dest,pcVar16,uVar17);" (call_expression "memcpy(__dest,pcVar16,uVar17)" (identifier "memcpy") (argument_list "(__dest,pcVar16,uVar17)" (( "(") (identifier "__dest") (, ",") (identifier "pcVar16") (, ",") (identifier "uVar17") () ")"))) (; ";")) (} "}"))) (expression_statement "__dest_00 = __dest + -1;" (assignment_expression "__dest_00 = __dest + -1" (identifier "__dest_00") (= "=") (binary_expression "__dest + -1" (identifier "__dest") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "__dest[-1] = '1';" (assignment_expression "__dest[-1] = '1'" (subscript_expression "__dest[-1]" (identifier "__dest") ([ "[") (number_literal "-1") (] "]")) (= "=") (char_literal "'1'" (' "'") (character "1") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }" (else "else") (compound_statement "{\n      do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);\n    }" ({ "{") (do_statement "do {\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      } while (bVar2);" (do "do") (compound_statement "{\n        __dest_00 = __dest_00 + -1;\n        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';\n        bVar2 = 9 < uVar12;\n        uVar12 = uVar12 / 10;\n      }" ({ "{") (expression_statement "__dest_00 = __dest_00 + -1;" (assignment_expression "__dest_00 = __dest_00 + -1" (identifier "__dest_00") (= "=") (binary_expression "__dest_00 + -1" (identifier "__dest_00") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "*__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';" (assignment_expression "*__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0'" (pointer_expression "*__dest_00" (* "*") (identifier "__dest_00")) (= "=") (binary_expression "(char)uVar12 + (char)(uVar12 / 10) * -10 + '0'" (binary_expression "(char)uVar12 + (char)(uVar12 / 10) * -10" (cast_expression "(char)uVar12" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar12")) (+ "+") (binary_expression "(char)(uVar12 / 10) * -10" (cast_expression "(char)(uVar12 / 10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar12 / 10)" (( "(") (binary_expression "uVar12 / 10" (identifier "uVar12") (/ "/") (number_literal "10")) () ")"))) (* "*") (number_literal "-10"))) (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'")))) (; ";")) (expression_statement "bVar2 = 9 < uVar12;" (assignment_expression "bVar2 = 9 < uVar12" (identifier "bVar2") (= "=") (binary_expression "9 < uVar12" (number_literal "9") (< "<") (identifier "uVar12"))) (; ";")) (expression_statement "uVar12 = uVar12 / 10;" (assignment_expression "uVar12 = uVar12 / 10" (identifier "uVar12") (= "=") (binary_expression "uVar12 / 10" (identifier "uVar12") (/ "/") (number_literal "10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }" (else "else") (compound_statement "{\n    if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }\nLAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;\n    if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }\n    lVar23 = (longdouble)(long)param_5;\n    if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }\n    lVar24 = (longdouble)(long)param_1;\n    if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }\n    if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }\n    __dest_00 = pcVar9 + -uVar10;\n    memmove(__dest_00,param_2,uVar10);\n    __dest = __dest_00 + (uVar10 - lVar18);\n  }" ({ "{") (if_statement "if ((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }" (if "if") (parenthesized_expression "((param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1))" (( "(") (binary_expression "(param_4 % param_5 == 0) &&\n       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)" (parenthesized_expression "(param_4 % param_5 == 0)" (( "(") (binary_expression "param_4 % param_5 == 0" (binary_expression "param_4 % param_5" (identifier "param_4") (% "%") (identifier "param_5")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)" (( "(") (comma_expression "uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1" (assignment_expression "uVar12 = (param_4 / param_5) * param_1" (identifier "uVar12") (= "=") (binary_expression "(param_4 / param_5) * param_1" (parenthesized_expression "(param_4 / param_5)" (( "(") (binary_expression "param_4 / param_5" (identifier "param_4") (/ "/") (identifier "param_5")) () ")")) (* "*") (identifier "param_1"))) (, ",") (binary_expression "uVar12 / (param_4 / param_5) == param_1" (binary_expression "uVar12 / (param_4 / param_5)" (identifier "uVar12") (/ "/") (parenthesized_expression "(param_4 / param_5)" (( "(") (binary_expression "param_4 / param_5" (identifier "param_4") (/ "/") (identifier "param_5")) () ")"))) (== "==") (identifier "param_1"))) () ")"))) () ")")) (compound_statement "{\n      uVar14 = 0;\n      uVar10 = 0;\n      goto LAB_00105103;\n    }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00105103;" (goto "goto") (statement_identifier "LAB_00105103") (; ";")) (} "}"))) (labeled_statement "LAB_00104dfa:\n    lVar22 = (longdouble)(long)param_4;" (statement_identifier "LAB_00104dfa") (: ":") (expression_statement "lVar22 = (longdouble)(long)param_4;" (assignment_expression "lVar22 = (longdouble)(long)param_4" (identifier "lVar22") (= "=") (cast_expression "(longdouble)(long)param_4" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (cast_expression "(long)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_4")))) (; ";"))) (if_statement "if ((long)param_4 < 0) {\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }" (if "if") (parenthesized_expression "((long)param_4 < 0)" (( "(") (binary_expression "(long)param_4 < 0" (cast_expression "(long)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_4")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      lVar22 = lVar22 + (longdouble)_DAT_0010b274;\n    }" ({ "{") (expression_statement "lVar22 = lVar22 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar22 = lVar22 + (longdouble)_DAT_0010b274" (identifier "lVar22") (= "=") (binary_expression "lVar22 + (longdouble)_DAT_0010b274" (identifier "lVar22") (+ "+") (cast_expression "(longdouble)_DAT_0010b274" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "_DAT_0010b274")))) (; ";")) (} "}"))) (expression_statement "lVar23 = (longdouble)(long)param_5;" (assignment_expression "lVar23 = (longdouble)(long)param_5" (identifier "lVar23") (= "=") (cast_expression "(longdouble)(long)param_5" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (cast_expression "(long)param_5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_5")))) (; ";")) (if_statement "if ((long)param_5 < 0) {\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }" (if "if") (parenthesized_expression "((long)param_5 < 0)" (( "(") (binary_expression "(long)param_5 < 0" (cast_expression "(long)param_5" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_5")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      lVar23 = lVar23 + (longdouble)_DAT_0010b274;\n    }" ({ "{") (expression_statement "lVar23 = lVar23 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar23 = lVar23 + (longdouble)_DAT_0010b274" (identifier "lVar23") (= "=") (binary_expression "lVar23 + (longdouble)_DAT_0010b274" (identifier "lVar23") (+ "+") (cast_expression "(longdouble)_DAT_0010b274" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "_DAT_0010b274")))) (; ";")) (} "}"))) (expression_statement "lVar24 = (longdouble)(long)param_1;" (assignment_expression "lVar24 = (longdouble)(long)param_1" (identifier "lVar24") (= "=") (cast_expression "(longdouble)(long)param_1" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")))) (; ";")) (if_statement "if ((long)param_1 < 0) {\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }" (if "if") (parenthesized_expression "((long)param_1 < 0)" (( "(") (binary_expression "(long)param_1 < 0" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      lVar24 = lVar24 + (longdouble)_DAT_0010b274;\n    }" ({ "{") (expression_statement "lVar24 = lVar24 + (longdouble)_DAT_0010b274;" (assignment_expression "lVar24 = lVar24 + (longdouble)_DAT_0010b274" (identifier "lVar24") (= "=") (binary_expression "lVar24 + (longdouble)_DAT_0010b274" (identifier "lVar24") (+ "+") (cast_expression "(longdouble)_DAT_0010b274" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "_DAT_0010b274")))) (; ";")) (} "}"))) (if_statement "if ((param_3 & 0x10) == 0) {\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }\n    else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }" (if "if") (parenthesized_expression "((param_3 & 0x10) == 0)" (( "(") (binary_expression "(param_3 & 0x10) == 0" (parenthesized_expression "(param_3 & 0x10)" (( "(") (binary_expression "param_3 & 0x10" (identifier "param_3") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n      iVar19 = -1;\n      uVar10 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar10 - 1;\n      lVar18 = 0;\n    }" ({ "{") (expression_statement "FUN_00104c0d(uVar15);" (call_expression "FUN_00104c0d(uVar15)" (identifier "FUN_00104c0d") (argument_list "(uVar15)" (( "(") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");" (call_expression "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf")" (identifier "__sprintf_chk") (argument_list "(param_2,1,0xffffffffffffffff,"%.0Lf")" (( "(") (identifier "param_2") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (string_literal ""%.0Lf"" (" """) (string_content "%.0Lf") (" """)) () ")"))) (; ";")) (expression_statement "iVar19 = -1;" (assignment_expression "iVar19 = -1" (identifier "iVar19") (= "=") (number_literal "-1")) (; ";")) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" (identifier "uVar10") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar16 = param_2;" (assignment_expression "pcVar16 = param_2" (identifier "pcVar16") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');" (do "do") (compound_statement "{\n        if (uVar10 == 0) break;\n        uVar10 = uVar10 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      }" ({ "{") (if_statement "if (uVar10 == 0) break;" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" (identifier "cVar1") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" (identifier "pcVar16") (+ "+") (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar21")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "uVar10 = ~uVar10 - 1;" (assignment_expression "uVar10 = ~uVar10 - 1" (identifier "uVar10") (= "=") (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" (~ "~") (identifier "uVar10")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }" (else "else") (compound_statement "{\n      lVar25 = (longdouble)1;\n      iVar19 = 0;\n      do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);\n      FUN_00104c0d(uVar15);\n      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");\n      uVar11 = 0xffffffffffffffff;\n      pcVar16 = param_2;\n      do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');\n      uVar10 = ~uVar11 - 1;\n      lVar18 = uVar17 + 1;\n      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }\n    }" ({ "{") (expression_statement "lVar25 = (longdouble)1;" (assignment_expression "lVar25 = (longdouble)1" (identifier "lVar25") (= "=") (cast_expression "(longdouble)1" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (number_literal "1"))) (; ";")) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      } while (iVar19 < 8);" (do "do") (compound_statement "{\n        lVar25 = lVar25 * (longdouble)uVar4;\n        iVar19 = iVar19 + 1;\n        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;\n      }" ({ "{") (expression_statement "lVar25 = lVar25 * (longdouble)uVar4;" (assignment_expression "lVar25 = lVar25 * (longdouble)uVar4" (identifier "lVar25") (= "=") (binary_expression "lVar25 * (longdouble)uVar4" (identifier "lVar25") (* "*") (cast_expression "(longdouble)uVar4" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar4")))) (; ";")) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;" (if "if") (parenthesized_expression "(lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25)" (( "(") (binary_expression "lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25" (binary_expression "lVar24 * (lVar22 / lVar23)" (identifier "lVar24") (* "*") (parenthesized_expression "(lVar22 / lVar23)" (( "(") (binary_expression "lVar22 / lVar23" (identifier "lVar22") (/ "/") (identifier "lVar23")) () ")"))) (< "<") (binary_expression "(longdouble)uVar4 * lVar25" (cast_expression "(longdouble)uVar4" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "uVar4")) (* "*") (identifier "lVar25"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar19 < 8)" (( "(") (binary_expression "iVar19 < 8" (identifier "iVar19") (< "<") (number_literal "8")) () ")")) (; ";")) (expression_statement "FUN_00104c0d(uVar15);" (call_expression "FUN_00104c0d(uVar15)" (identifier "FUN_00104c0d") (argument_list "(uVar15)" (( "(") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");" (call_expression "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf")" (identifier "__sprintf_chk") (argument_list "(param_2,1,0xffffffffffffffff,"%.1Lf")" (( "(") (identifier "param_2") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (string_literal ""%.1Lf"" (" """) (string_content "%.1Lf") (" """)) () ")"))) (; ";")) (expression_statement "uVar11 = 0xffffffffffffffff;" (assignment_expression "uVar11 = 0xffffffffffffffff" (identifier "uVar11") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar16 = param_2;" (assignment_expression "pcVar16 = param_2" (identifier "pcVar16") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      } while (cVar1 != '\0');" (do "do") (compound_statement "{\n        if (uVar11 == 0) break;\n        uVar11 = uVar11 - 1;\n        cVar1 = *pcVar16;\n        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n      }" ({ "{") (if_statement "if (uVar11 == 0) break;" (if "if") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = uVar11 - 1;" (assignment_expression "uVar11 = uVar11 - 1" (identifier "uVar11") (= "=") (binary_expression "uVar11 - 1" (identifier "uVar11") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" (identifier "cVar1") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" (identifier "pcVar16") (+ "+") (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar21")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "uVar10 = ~uVar11 - 1;" (assignment_expression "uVar10 = ~uVar11 - 1" (identifier "uVar10") (= "=") (binary_expression "~uVar11 - 1" (unary_expression "~uVar11" (~ "~") (identifier "uVar11")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "lVar18 = uVar17 + 1;" (assignment_expression "lVar18 = uVar17 + 1" (identifier "lVar18") (= "=") (binary_expression "uVar17 + 1" (identifier "uVar17") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }" (if "if") (parenthesized_expression "((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0'))))" (( "(") (binary_expression "(uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||\n         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))" (parenthesized_expression "(uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10)" (( "(") (binary_expression "uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10" (binary_expression "uVar17 + 2 + (ulong)(uVar3 == 0)" (binary_expression "uVar17 + 2" (identifier "uVar17") (+ "+") (number_literal "2")) (+ "+") (call_expression "(ulong)(uVar3 == 0)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")")))) (< "<") (identifier "uVar10")) () ")")) (|| "||") (parenthesized_expression "(((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))" (( "(") (parenthesized_expression "((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0'))" (( "(") (binary_expression "(param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')" (binary_expression "(param_3 & 8) != 0" (parenthesized_expression "(param_3 & 8)" (( "(") (binary_expression "param_3 & 8" (identifier "param_3") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(param_2[~uVar11 - 2] == '0')" (( "(") (binary_expression "param_2[~uVar11 - 2] == '0'" (subscript_expression "param_2[~uVar11 - 2]" (identifier "param_2") ([ "[") (binary_expression "~uVar11 - 2" (unary_expression "~uVar11" (~ "~") (identifier "uVar11")) (- "-") (number_literal "2")) (] "]")) (== "==") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        FUN_00104c0d(uVar15);\n        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");\n        uVar10 = 0xffffffffffffffff;\n        pcVar16 = param_2;\n        do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');\n        uVar10 = ~uVar10 - 1;\n        lVar18 = 0;\n      }" ({ "{") (expression_statement "FUN_00104c0d(uVar15);" (call_expression "FUN_00104c0d(uVar15)" (identifier "FUN_00104c0d") (argument_list "(uVar15)" (( "(") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");" (call_expression "__sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf")" (identifier "__sprintf_chk") (argument_list "(param_2,1,0xffffffffffffffff,"%.0Lf")" (( "(") (identifier "param_2") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffffffffffff") (, ",") (string_literal ""%.0Lf"" (" """) (string_content "%.0Lf") (" """)) () ")"))) (; ";")) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" (identifier "uVar10") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar16 = param_2;" (assignment_expression "pcVar16 = param_2" (identifier "pcVar16") (= "=") (identifier "param_2")) (; ";")) (do_statement "do {\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        } while (cVar1 != '\0');" (do "do") (compound_statement "{\n          if (uVar10 == 0) break;\n          uVar10 = uVar10 - 1;\n          cVar1 = *pcVar16;\n          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n        }" ({ "{") (if_statement "if (uVar10 == 0) break;" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" (identifier "cVar1") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" (identifier "pcVar16") (+ "+") (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar21")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "uVar10 = ~uVar10 - 1;" (assignment_expression "uVar10 = ~uVar10 - 1" (identifier "uVar10") (= "=") (binary_expression "~uVar10 - 1" (unary_expression "~uVar10" (~ "~") (identifier "uVar10")) (- "-") (number_literal "1"))) (; ";")) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (expression_statement "__dest_00 = pcVar9 + -uVar10;" (assignment_expression "__dest_00 = pcVar9 + -uVar10" (identifier "__dest_00") (= "=") (binary_expression "pcVar9 + -uVar10" (identifier "pcVar9") (+ "+") (unary_expression "-uVar10" (- "-") (identifier "uVar10")))) (; ";")) (expression_statement "memmove(__dest_00,param_2,uVar10);" (call_expression "memmove(__dest_00,param_2,uVar10)" (identifier "memmove") (argument_list "(__dest_00,param_2,uVar10)" (( "(") (identifier "__dest_00") (, ",") (identifier "param_2") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "__dest = __dest_00 + (uVar10 - lVar18);" (assignment_expression "__dest = __dest_00 + (uVar10 - lVar18)" (identifier "__dest") (= "=") (binary_expression "__dest_00 + (uVar10 - lVar18)" (identifier "__dest_00") (+ "+") (parenthesized_expression "(uVar10 - lVar18)" (( "(") (binary_expression "uVar10 - lVar18" (identifier "uVar10") (- "-") (identifier "lVar18")) () ")")))) (; ";")) (} "}")))) (if_statement "if ((param_3 & 4) != 0) {\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }" (if "if") (parenthesized_expression "((param_3 & 4) != 0)" (( "(") (binary_expression "(param_3 & 4) != 0" (parenthesized_expression "(param_3 & 4)" (( "(") (binary_expression "param_3 & 4" (identifier "param_3") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar11 = (long)__dest - (long)__dest_00;\n    uVar10 = 0xffffffffffffffff;\n    uVar17 = 0xffffffffffffffff;\n    pcVar16 = pcVar8;\n    do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');\n    __memcpy_chk(local_78,__dest_00,uVar11,0x29);\n    while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }\n  }" ({ "{") (expression_statement "uVar11 = (long)__dest - (long)__dest_00;" (assignment_expression "uVar11 = (long)__dest - (long)__dest_00" (identifier "uVar11") (= "=") (binary_expression "(long)__dest - (long)__dest_00" (cast_expression "(long)__dest" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__dest")) (- "-") (cast_expression "(long)__dest_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__dest_00")))) (; ";")) (expression_statement "uVar10 = 0xffffffffffffffff;" (assignment_expression "uVar10 = 0xffffffffffffffff" (identifier "uVar10") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "uVar17 = 0xffffffffffffffff;" (assignment_expression "uVar17 = 0xffffffffffffffff" (identifier "uVar17") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (expression_statement "pcVar16 = pcVar8;" (assignment_expression "pcVar16 = pcVar8" (identifier "pcVar16") (= "=") (identifier "pcVar8")) (; ";")) (do_statement "do {\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    } while (cVar1 != '\0');" (do "do") (compound_statement "{\n      if (uVar17 == 0) break;\n      uVar17 = uVar17 - 1;\n      cVar1 = *pcVar16;\n      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;\n    }" ({ "{") (if_statement "if (uVar17 == 0) break;" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar17 = uVar17 - 1;" (assignment_expression "uVar17 = uVar17 - 1" (identifier "uVar17") (= "=") (binary_expression "uVar17 - 1" (identifier "uVar17") (- "-") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" (identifier "cVar1") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + (ulong)bVar21 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar21 * -2" (identifier "pcVar16") (+ "+") (binary_expression "(ulong)bVar21 * -2" (cast_expression "(ulong)bVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar21")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "__memcpy_chk(local_78,__dest_00,uVar11,0x29);" (call_expression "__memcpy_chk(local_78,__dest_00,uVar11,0x29)" (identifier "__memcpy_chk") (argument_list "(local_78,__dest_00,uVar11,0x29)" (( "(") (identifier "local_78") (, ",") (identifier "__dest_00") (, ",") (identifier "uVar11") (, ",") (number_literal "0x29") () ")"))) (; ";")) (while_statement "while( true ) {\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      bVar21 = *pbVar20;\n      if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }\n      if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }\n      __dest_00 = __dest + -uVar10;\n      uVar11 = uVar11 - uVar10;\n      memcpy(__dest_00,local_78 + uVar11,uVar10);\n      if (uVar11 == 0) break;\n      __dest = __dest_00 + -(~uVar17 - 1);\n      memcpy(__dest,pcVar8,~uVar17 - 1);\n    }" ({ "{") (expression_statement "bVar21 = *pbVar20;" (assignment_expression "bVar21 = *pbVar20" (identifier "bVar21") (= "=") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20"))) (; ";")) (if_statement "if (bVar21 != 0) {\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }" (if "if") (parenthesized_expression "(bVar21 != 0)" (( "(") (binary_expression "bVar21 != 0" (identifier "bVar21") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar10 = (ulong)bVar21;\n        if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }\n        pbVar20 = pbVar20 + 1;\n      }" ({ "{") (expression_statement "uVar10 = (ulong)bVar21;" (assignment_expression "uVar10 = (ulong)bVar21" (identifier "uVar10") (= "=") (cast_expression "(ulong)bVar21" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar21"))) (; ";")) (if_statement "if (0x7e < bVar21) {\n          uVar10 = uVar11;\n        }" (if "if") (parenthesized_expression "(0x7e < bVar21)" (( "(") (binary_expression "0x7e < bVar21" (number_literal "0x7e") (< "<") (identifier "bVar21")) () ")")) (compound_statement "{\n          uVar10 = uVar11;\n        }" ({ "{") (expression_statement "uVar10 = uVar11;" (assignment_expression "uVar10 = uVar11" (identifier "uVar10") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "pbVar20 = pbVar20 + 1;" (assignment_expression "pbVar20 = pbVar20 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + 1" (identifier "pbVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (uVar11 < uVar10) {\n        uVar10 = uVar11;\n      }" (if "if") (parenthesized_expression "(uVar11 < uVar10)" (( "(") (binary_expression "uVar11 < uVar10" (identifier "uVar11") (< "<") (identifier "uVar10")) () ")")) (compound_statement "{\n        uVar10 = uVar11;\n      }" ({ "{") (expression_statement "uVar10 = uVar11;" (assignment_expression "uVar10 = uVar11" (identifier "uVar10") (= "=") (identifier "uVar11")) (; ";")) (} "}"))) (expression_statement "__dest_00 = __dest + -uVar10;" (assignment_expression "__dest_00 = __dest + -uVar10" (identifier "__dest_00") (= "=") (binary_expression "__dest + -uVar10" (identifier "__dest") (+ "+") (unary_expression "-uVar10" (- "-") (identifier "uVar10")))) (; ";")) (expression_statement "uVar11 = uVar11 - uVar10;" (assignment_expression "uVar11 = uVar11 - uVar10" (identifier "uVar11") (= "=") (binary_expression "uVar11 - uVar10" (identifier "uVar11") (- "-") (identifier "uVar10"))) (; ";")) (expression_statement "memcpy(__dest_00,local_78 + uVar11,uVar10);" (call_expression "memcpy(__dest_00,local_78 + uVar11,uVar10)" (identifier "memcpy") (argument_list "(__dest_00,local_78 + uVar11,uVar10)" (( "(") (identifier "__dest_00") (, ",") (binary_expression "local_78 + uVar11" (identifier "local_78") (+ "+") (identifier "uVar11")) (, ",") (identifier "uVar10") () ")"))) (; ";")) (if_statement "if (uVar11 == 0) break;" (if "if") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "__dest = __dest_00 + -(~uVar17 - 1);" (assignment_expression "__dest = __dest_00 + -(~uVar17 - 1)" (identifier "__dest") (= "=") (binary_expression "__dest_00 + -(~uVar17 - 1)" (identifier "__dest_00") (+ "+") (unary_expression "-(~uVar17 - 1)" (- "-") (parenthesized_expression "(~uVar17 - 1)" (( "(") (binary_expression "~uVar17 - 1" (unary_expression "~uVar17" (~ "~") (identifier "uVar17")) (- "-") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "memcpy(__dest,pcVar8,~uVar17 - 1);" (call_expression "memcpy(__dest,pcVar8,~uVar17 - 1)" (identifier "memcpy") (argument_list "(__dest,pcVar8,~uVar17 - 1)" (( "(") (identifier "__dest") (, ",") (identifier "pcVar8") (, ",") (binary_expression "~uVar17 - 1" (unary_expression "~uVar17" (~ "~") (identifier "uVar17")) (- "-") (number_literal "1")) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_a8 = pcVar9;" (assignment_expression "local_a8 = pcVar9" (identifier "local_a8") (= "=") (identifier "pcVar9")) (; ";")) (if_statement "if ((param_3 & 0x80) == 0) goto LAB_001050c5;" (if "if") (parenthesized_expression "((param_3 & 0x80) == 0)" (( "(") (binary_expression "(param_3 & 0x80) == 0" (parenthesized_expression "(param_3 & 0x80)" (( "(") (binary_expression "param_3 & 0x80" (identifier "param_3") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001050c5;" (goto "goto") (statement_identifier "LAB_001050c5") (; ";"))) (if_statement "if (iVar19 < 0) {\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }\n  else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }" (if "if") (parenthesized_expression "(iVar19 < 0)" (( "(") (binary_expression "iVar19 < 0" (identifier "iVar19") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar19 = 1;\n    uVar10 = 1;\n    if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }\n    do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);\n    if ((param_3 & 0x40) != 0) goto LAB_0010540f;\nLAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }\n    local_a8 = pcVar9 + 1;\n    *pcVar9 = (&DAT_0010b240)[iVar19];\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n    if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }\n  }" ({ "{") (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" (identifier "iVar19") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar10 = 1;" (assignment_expression "uVar10 = 1" (identifier "uVar10") (= "=") (number_literal "1")) (; ";")) (if_statement "if (param_5 < 2) {\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }" (if "if") (parenthesized_expression "(param_5 < 2)" (( "(") (binary_expression "param_5 < 2" (identifier "param_5") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      iVar19 = 0;\n      goto LAB_001050b0;\n    }" ({ "{") (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_001050b0;" (goto "goto") (statement_identifier "LAB_001050b0") (; ";")) (} "}"))) (do_statement "do {\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    } while (iVar19 != 8);" (do "do") (compound_statement "{\n      uVar10 = uVar10 * uVar4;\n      if (param_5 <= uVar10) goto LAB_001050b0;\n      iVar19 = iVar19 + 1;\n    }" ({ "{") (expression_statement "uVar10 = uVar10 * uVar4;" (assignment_expression "uVar10 = uVar10 * uVar4" (identifier "uVar10") (= "=") (binary_expression "uVar10 * uVar4" (identifier "uVar10") (* "*") (identifier "uVar4"))) (; ";")) (if_statement "if (param_5 <= uVar10) goto LAB_001050b0;" (if "if") (parenthesized_expression "(param_5 <= uVar10)" (( "(") (binary_expression "param_5 <= uVar10" (identifier "param_5") (<= "<=") (identifier "uVar10")) () ")")) (goto_statement "goto LAB_001050b0;" (goto "goto") (statement_identifier "LAB_001050b0") (; ";"))) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar19 != 8)" (( "(") (binary_expression "iVar19 != 8" (identifier "iVar19") (!= "!=") (number_literal "8")) () ")")) (; ";")) (if_statement "if ((param_3 & 0x40) != 0) goto LAB_0010540f;" (if "if") (parenthesized_expression "((param_3 & 0x40) != 0)" (( "(") (binary_expression "(param_3 & 0x40) != 0" (parenthesized_expression "(param_3 & 0x40)" (( "(") (binary_expression "param_3 & 0x40" (identifier "param_3") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010540f;" (goto "goto") (statement_identifier "LAB_0010540f") (; ";"))) (labeled_statement "LAB_00105427:\n    if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }" (statement_identifier "LAB_00105427") (: ":") (if_statement "if ((iVar19 == 1) && (uVar3 == 0)) {\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }" (if "if") (parenthesized_expression "((iVar19 == 1) && (uVar3 == 0))" (( "(") (binary_expression "(iVar19 == 1) && (uVar3 == 0)" (parenthesized_expression "(iVar19 == 1)" (( "(") (binary_expression "iVar19 == 1" (identifier "iVar19") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(uVar3 == 0)" (( "(") (binary_expression "uVar3 == 0" (identifier "uVar3") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      *pcVar9 = 'k';\n      local_a8 = pcVar9 + 1;\n      goto joined_r0x001054bc;\n    }" ({ "{") (expression_statement "*pcVar9 = 'k';" (assignment_expression "*pcVar9 = 'k'" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (char_literal "'k'" (' "'") (character "k") (' "'"))) (; ";")) (expression_statement "local_a8 = pcVar9 + 1;" (assignment_expression "local_a8 = pcVar9 + 1" (identifier "local_a8") (= "=") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) (; ";")) (goto_statement "goto joined_r0x001054bc;" (goto "goto") (statement_identifier "joined_r0x001054bc") (; ";")) (} "}")))) (expression_statement "local_a8 = pcVar9 + 1;" (assignment_expression "local_a8 = pcVar9 + 1" (identifier "local_a8") (= "=") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar9 = (&DAT_0010b240)[iVar19];" (assignment_expression "*pcVar9 = (&DAT_0010b240)[iVar19]" (pointer_expression "*pcVar9" (* "*") (identifier "pcVar9")) (= "=") (subscript_expression "(&DAT_0010b240)[iVar19]" (parenthesized_expression "(&DAT_0010b240)" (( "(") (pointer_expression "&DAT_0010b240" (& "&") (identifier "DAT_0010b240")) () ")")) ([ "[") (identifier "iVar19") (] "]"))) (; ";")) (if_statement "if ((param_3 & 0x100) == 0) goto LAB_001050c5;" (if "if") (parenthesized_expression "((param_3 & 0x100) == 0)" (( "(") (binary_expression "(param_3 & 0x100) == 0" (parenthesized_expression "(param_3 & 0x100)" (( "(") (binary_expression "param_3 & 0x100" (identifier "param_3") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001050c5;" (goto "goto") (statement_identifier "LAB_001050c5") (; ";"))) (if_statement "if (uVar3 != 0) {\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }" (if "if") (parenthesized_expression "(uVar3 != 0)" (( "(") (binary_expression "uVar3 != 0" (identifier "uVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar9[1] = 'i';\n      local_a8 = pcVar9 + 2;\n    }" ({ "{") (expression_statement "pcVar9[1] = 'i';" (assignment_expression "pcVar9[1] = 'i'" (subscript_expression "pcVar9[1]" (identifier "pcVar9") ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'i'" (' "'") (character "i") (' "'"))) (; ";")) (expression_statement "local_a8 = pcVar9 + 2;" (assignment_expression "local_a8 = pcVar9 + 2" (identifier "local_a8") (= "=") (binary_expression "pcVar9 + 2" (identifier "pcVar9") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }" (else "else") (compound_statement "{\nLAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;\n    if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }\n    local_a8 = pcVar9;\n    if (iVar19 != 0) goto LAB_00105427;\njoined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;\n  }" ({ "{") (labeled_statement "LAB_001050b0:\n    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;" (statement_identifier "LAB_001050b0") (: ":") (if_statement "if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;" (if "if") (parenthesized_expression "((param_3 & 0x100) == 0 && iVar19 == 0)" (( "(") (binary_expression "(param_3 & 0x100) == 0 && iVar19 == 0" (binary_expression "(param_3 & 0x100) == 0" (parenthesized_expression "(param_3 & 0x100)" (( "(") (binary_expression "param_3 & 0x100" (identifier "param_3") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_001050c5;" (goto "goto") (statement_identifier "LAB_001050c5") (; ";")))) (if_statement "if ((param_3 & 0x40) != 0) {\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }" (if "if") (parenthesized_expression "((param_3 & 0x40) != 0)" (( "(") (binary_expression "(param_3 & 0x40) != 0" (parenthesized_expression "(param_3 & 0x40)" (( "(") (binary_expression "param_3 & 0x40" (identifier "param_3") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0010540f:\n      pcVar9 = param_2 + 0x288;\n      param_2[0x287] = ' ';\n    }" ({ "{") (labeled_statement "LAB_0010540f:\n      pcVar9 = param_2 + 0x288;" (statement_identifier "LAB_0010540f") (: ":") (expression_statement "pcVar9 = param_2 + 0x288;" (assignment_expression "pcVar9 = param_2 + 0x288" (identifier "pcVar9") (= "=") (binary_expression "param_2 + 0x288" (identifier "param_2") (+ "+") (number_literal "0x288"))) (; ";"))) (expression_statement "param_2[0x287] = ' ';" (assignment_expression "param_2[0x287] = ' '" (subscript_expression "param_2[0x287]" (identifier "param_2") ([ "[") (number_literal "0x287") (] "]")) (= "=") (char_literal "' '" (' "'") (character " ") (' "'"))) (; ";")) (} "}"))) (expression_statement "local_a8 = pcVar9;" (assignment_expression "local_a8 = pcVar9" (identifier "local_a8") (= "=") (identifier "pcVar9")) (; ";")) (if_statement "if (iVar19 != 0) goto LAB_00105427;" (if "if") (parenthesized_expression "(iVar19 != 0)" (( "(") (binary_expression "iVar19 != 0" (identifier "iVar19") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00105427;" (goto "goto") (statement_identifier "LAB_00105427") (; ";"))) (labeled_statement "joined_r0x001054bc:\n    if ((param_3 & 0x100) == 0) goto LAB_001050c5;" (statement_identifier "joined_r0x001054bc") (: ":") (if_statement "if ((param_3 & 0x100) == 0) goto LAB_001050c5;" (if "if") (parenthesized_expression "((param_3 & 0x100) == 0)" (( "(") (binary_expression "(param_3 & 0x100) == 0" (parenthesized_expression "(param_3 & 0x100)" (( "(") (binary_expression "param_3 & 0x100" (identifier "param_3") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001050c5;" (goto "goto") (statement_identifier "LAB_001050c5") (; ";")))) (} "}")))) (expression_statement "*local_a8 = 'B';" (assignment_expression "*local_a8 = 'B'" (pointer_expression "*local_a8" (* "*") (identifier "local_a8")) (= "=") (char_literal "'B'" (' "'") (character "B") (' "'"))) (; ";")) (expression_statement "local_a8 = local_a8 + 1;" (assignment_expression "local_a8 = local_a8 + 1" (identifier "local_a8") (= "=") (binary_expression "local_a8 + 1" (identifier "local_a8") (+ "+") (number_literal "1"))) (; ";")) (labeled_statement "LAB_001050c5:\n  *local_a8 = '\0';" (statement_identifier "LAB_001050c5") (: ":") (expression_statement "*local_a8 = '\0';" (assignment_expression "*local_a8 = '\0'" (pointer_expression "*local_a8" (* "*") (identifier "local_a8")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return __dest_00;\n  }" (if "if") (parenthesized_expression "(local_40 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return __dest_00;\n  }" ({ "{") (return_statement "return __dest_00;" (return "return") (identifier "__dest_00") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

char * function_1(type_1 var_11,char *var_8,int var_2,type_1 var_9,
                     type_1 var_10)

{
  char var_7;
  long var_40;
  bool bVar3;
  type_2 var_3;
  type_2 var_29;
  type_2 var_28;
  type_2 var_32;
  type_3 *plVar8;
  char *var_6;
  char *var_23;
  type_4 var_12;
  type_4 var_5;
  type_4 var_13;
  type_4 var_27;
  char *var_34;
  type_2 var_30;
  type_2 var_31;
  char *var_25;
  char *var_19;
  type_4 var_21;
  long var_26;
  int var_20;
  type_5 *var_37;
  long var_1;
  type_5 var_36;
  type_6 var_14;
  type_6 var_15;
  type_6 var_16;
  char *var_39;
  char var_38 [41];
  
  var_36 = 0;
  var_40 = *(long *)(var_1 + 0x28);
  var_31 = var_2 & 3;
  var_3 = var_2 & 0x20;
  var_29 = (-(type_2)(var_3 == 0) & 0xffffffe8) + 0x400;
  var_34 = var_8;
  plVar8 = var_4();
  var_19 = plVar8->decimal_point;
  var_5 = 0xffffffffffffffff;
  var_6 = var_19;
  do {
    if (var_5 == 0) break;
    var_5 = var_5 - 1;
    var_7 = *var_6;
    var_6 = var_6 + (type_4)var_36 * -2 + 1;
  } while (var_7 != '\0');
  var_21 = ~var_5 - 1;
  if (0xf < ~var_5 - 2) {
    var_21 = 1;
    var_19 = ".";
  }
  var_37 = (type_5 *)plVar8->grouping;
  var_5 = 0xffffffffffffffff;
  var_6 = plVar8->thousands_sep;
  do {
    if (var_5 == 0) break;
    var_5 = var_5 - 1;
    var_7 = *var_6;
    var_6 = var_6 + (type_4)var_36 * -2 + 1;
  } while (var_7 != '\0');
  var_6 = "";
  if (~var_5 - 1 < 0x11) {
    var_6 = plVar8->thousands_sep;
  }
  var_23 = var_8 + 0x287;
  if (var_9 < var_10) {
    if ((var_9 != 0) && (var_10 % var_9 == 0)) {
      var_12 = var_10 / var_9;
      var_27 = var_11 / var_12;
      var_5 = (var_11 % var_12) * 10;
      var_13 = (var_5 % var_12) * 2;
      var_5 = var_5 / var_12 & 0xffffffff;
      if (var_13 < var_12) {
        var_30 = (type_2)(var_13 != 0);
      }
      else {
        var_30 = (var_12 < var_13) + 2;
      }
      goto LAB_00105103;
    }
LAB_00104dfa:
    var_14 = (type_6)(long)var_9;
    if ((long)var_9 < 0) {
      var_14 = var_14 + (type_6)_DAT_0010b274;
    }
    var_15 = (type_6)(long)var_10;
    if ((long)var_10 < 0) {
      var_15 = var_15 + (type_6)_DAT_0010b274;
    }
    var_16 = (type_6)(long)var_11;
    if ((long)var_11 < 0) {
      var_16 = var_16 + (type_6)_DAT_0010b274;
    }
    var_16 = var_16 * (var_14 / var_15);
    if ((var_2 & 0x10U) == 0) {
      var_17((type_6 *)(type_4)var_31,(int)var_34,var_16);
      var_18(var_8,1,0xffffffffffffffff,"%.0Lf");
      var_20 = -1;
      var_5 = 0xffffffffffffffff;
      var_19 = var_8;
      do {
        if (var_5 == 0) break;
        var_5 = var_5 - 1;
        var_7 = *var_19;
        var_19 = var_19 + (type_4)var_36 * -2 + 1;
      } while (var_7 != '\0');
      var_5 = ~var_5 - 1;
      var_26 = 0;
    }
    else {
      var_14 = (type_6)1;
      var_20 = 0;
      do {
        var_14 = var_14 * (type_6)var_29;
        var_20 = var_20 + 1;
        if (var_16 < (type_6)var_29 * var_14) break;
      } while (var_20 < 8);
      var_17((type_6 *)(type_4)var_31,(int)var_34,var_16 / var_14);
      var_18(var_8,1,0xffffffffffffffff,"%.1Lf");
      var_13 = 0xffffffffffffffff;
      var_19 = var_8;
      do {
        if (var_13 == 0) break;
        var_13 = var_13 - 1;
        var_7 = *var_19;
        var_19 = var_19 + (type_4)var_36 * -2 + 1;
      } while (var_7 != '\0');
      var_13 = ~var_13;
      var_5 = var_13 - 1;
      var_26 = var_21 + 1;
      if ((var_21 + 2 + (type_4)(var_3 == 0) < var_5) ||
         (((var_2 & 8U) != 0 && (var_8[var_13 - 2] == '0')))) {
        var_17((type_6 *)(type_4)var_31,(int)var_13,var_22 * (var_16 / var_14));
        var_18(var_8,1,0xffffffffffffffff,"%.0Lf");
        var_5 = 0xffffffffffffffff;
        var_19 = var_8;
        do {
          if (var_5 == 0) break;
          var_5 = var_5 - 1;
          var_7 = *var_19;
          var_19 = var_19 + (type_4)var_36 * -2 + 1;
        } while (var_7 != '\0');
        var_5 = ~var_5 - 1;
        var_26 = 0;
      }
    }
    var_25 = var_23 + -var_5;
    var_24(var_25,var_8,var_5);
    var_34 = var_25 + (var_5 - var_26);
  }
  else {
    if ((var_9 % var_10 != 0) ||
       (var_27 = (var_9 / var_10) * var_11,
       var_27 / (var_9 / var_10) != var_11)) goto LAB_00104dfa;
    var_30 = 0;
    var_5 = 0;
LAB_00105103:
    var_32 = (type_2)var_5;
    var_20 = -1;
    var_34 = var_23;
    if ((var_2 & 0x10U) != 0) {
      var_13 = (type_4)var_29;
      if (var_27 < var_13) {
        var_20 = 0;
      }
      else {
        var_20 = 0;
        var_12 = var_27;
        do {
          var_27 = var_12 / var_13;
          var_28 = (int)var_5 + (int)(var_12 % var_13) * 10;
          var_32 = var_28 / var_29;
          var_28 = ((int)var_30 >> 1) + (var_28 % var_29) * 2;
          var_5 = (type_4)var_32;
          if (var_28 < var_29) {
            var_30 = (type_2)(var_30 + var_28 != 0);
          }
          else {
            var_30 = (var_29 < var_30 + var_28) + 2;
          }
          var_20 = var_20 + 1;
        } while ((var_20 < 8) && (var_12 = var_27, var_13 <= var_27));
        if (var_27 < 10) {
          if (var_31 == 1) {
            bVar3 = 2 < (var_32 & 1) + var_30;
          }
          else {
            bVar3 = var_31 == 0 && var_30 != 0;
          }
          if (bVar3) {
            var_32 = var_32 + 1;
            if (var_32 == 10) {
              var_27 = var_27 + 1;
              if (var_27 < 10) {
                var_30 = 0;
                var_32 = 0;
                goto LAB_00105494;
              }
              var_30 = 0;
              var_32 = 0;
              goto LAB_00105238;
            }
          }
          else if (var_32 == 0) {
LAB_00105494:
            if ((var_2 & 8U) != 0) {
              var_32 = 0;
              goto LAB_00105238;
            }
          }
          var_8[0x286] = (char)var_32 + '0';
          var_33(var_8 + (0x286 - var_21),var_19,var_21);
          var_30 = 0;
          var_32 = 0;
          var_34 = var_8 + (0x286 - var_21);
        }
      }
    }
LAB_00105238:
    if (var_31 == 1) {
      bVar3 = 5 < (int)(var_32 + (((type_2)var_27 & 1) + var_30 != 0));
    }
    else {
      bVar3 = var_31 == 0 && 0 < (int)(var_32 + var_30);
    }
    var_25 = var_34;
    if ((((bVar3) && (var_27 = var_27 + 1, (var_2 & 0x10U) != 0)) && (var_29 == var_27)) &&
       (var_20 < 8)) {
      var_20 = var_20 + 1;
      if ((var_2 & 8U) == 0) {
        var_34[-1] = '0';
        var_34 = var_34 + ~var_21;
        var_33(var_34,var_19,var_21);
      }
      var_25 = var_34 + -1;
      var_34[-1] = '1';
    }
    else {
      do {
        var_25 = var_25 + -1;
        *var_25 = (char)var_27 + (char)(var_27 / 10) * -10 + '0';
        bVar3 = 9 < var_27;
        var_27 = var_27 / 10;
      } while (bVar3);
    }
  }
  if ((var_2 & 4U) != 0) {
    var_13 = (long)var_34 - (long)var_25;
    var_5 = 0xffffffffffffffff;
    var_21 = 0xffffffffffffffff;
    var_19 = var_6;
    do {
      if (var_21 == 0) break;
      var_21 = var_21 - 1;
      var_7 = *var_19;
      var_19 = var_19 + (type_4)var_36 * -2 + 1;
    } while (var_7 != '\0');
    var_35(var_38,var_25,var_13,0x29);
    while( true ) {
      var_36 = *var_37;
      if (var_36 != 0) {
        var_5 = (type_4)var_36;
        if (0x7e < var_36) {
          var_5 = var_13;
        }
        var_37 = var_37 + 1;
      }
      if (var_13 < var_5) {
        var_5 = var_13;
      }
      var_25 = var_34 + -var_5;
      var_13 = var_13 - var_5;
      var_33(var_25,var_38 + var_13,var_5);
      if (var_13 == 0) break;
      var_34 = var_25 + -(~var_21 - 1);
      var_33(var_34,var_6,~var_21 - 1);
    }
  }
  var_39 = var_23;
  if ((var_2 & 0x80U) == 0) goto LAB_001050c5;
  if (var_20 < 0) {
    var_20 = 1;
    var_5 = 1;
    if (var_10 < 2) {
      var_20 = 0;
      goto LAB_001050b0;
    }
    do {
      var_5 = var_5 * var_29;
      if (var_10 <= var_5) goto LAB_001050b0;
      var_20 = var_20 + 1;
    } while (var_20 != 8);
    if ((var_2 & 0x40U) != 0) goto LAB_0010540f;
LAB_00105427:
    if ((var_20 == 1) && (var_3 == 0)) {
      *var_23 = 'k';
      var_39 = var_23 + 1;
      goto joined_r0x001054bc;
    }
    var_39 = var_23 + 1;
    *var_23 = ""[var_20];
    if ((var_2 & 0x100U) == 0) goto LAB_001050c5;
    if (var_3 != 0) {
      var_23[1] = 'i';
      var_39 = var_23 + 2;
    }
  }
  else {
LAB_001050b0:
    if ((var_2 & 0x100U) == 0 && var_20 == 0) goto LAB_001050c5;
    if ((var_2 & 0x40U) != 0) {
LAB_0010540f:
      var_23 = var_8 + 0x288;
      var_8[0x287] = ' ';
    }
    var_39 = var_23;
    if (var_20 != 0) goto LAB_00105427;
joined_r0x001054bc:
    if ((var_2 & 0x100U) == 0) goto LAB_001050c5;
  }
  *var_39 = 'B';
  var_39 = var_39 + 1;
LAB_001050c5:
  *var_39 = '\0';
  if (var_40 == *(long *)(var_1 + 0x28)) {
    return var_25;
  }
                    /* WARNING: Subroutine does not return */
  var_41();
}


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

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

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

{
  char cVar1;
  bool bVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  lconv *plVar7;
  char *pcVar8;
  char *pcVar9;
  ulong uVar10;
  ulong uVar11;
  ulong uVar12;
  ulong uVar13;
  char *__dest;
  uint uVar14;
  uint uVar15;
  char *__dest_00;
  char *pcVar16;
  ulong uVar17;
  long lVar18;
  int iVar19;
  byte *pbVar20;
  long in_FS_OFFSET;
  byte bVar21;
  longdouble lVar22;
  longdouble lVar23;
  longdouble lVar24;
  longdouble lVar25;
  char *local_a8;
  undefined1 local_78 [56];
  long local_40;
  
  bVar21 = 0;
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  uVar15 = param_3 & 3;
  uVar3 = param_3 & 0x20;
  uVar4 = (-(uint)(uVar3 == 0) & 0xffffffe8) + 0x400;
  plVar7 = localeconv();
  pcVar16 = plVar7->decimal_point;
  uVar10 = 0xffffffffffffffff;
  pcVar8 = pcVar16;
  do {
    if (uVar10 == 0) break;
    uVar10 = uVar10 - 1;
    cVar1 = *pcVar8;
    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;
  } while (cVar1 != '\0');
  uVar17 = ~uVar10 - 1;
  if (0xf < ~uVar10 - 2) {
    uVar17 = 1;
    pcVar16 = ".";
  }
  pbVar20 = (byte *)plVar7->grouping;
  uVar10 = 0xffffffffffffffff;
  pcVar8 = plVar7->thousands_sep;
  do {
    if (uVar10 == 0) break;
    uVar10 = uVar10 - 1;
    cVar1 = *pcVar8;
    pcVar8 = pcVar8 + (ulong)bVar21 * -2 + 1;
  } while (cVar1 != '\0');
  pcVar8 = "";
  if (~uVar10 - 1 < 0x11) {
    pcVar8 = plVar7->thousands_sep;
  }
  pcVar9 = param_2 + 0x287;
  if (param_4 < param_5) {
    if ((param_4 == 0) || (param_5 % param_4 != 0)) goto LAB_00104dfa;
    param_4 = param_5 / param_4;
    uVar12 = param_1 / param_4;
    uVar10 = (param_1 % param_4) * 10;
    uVar11 = (uVar10 % param_4) * 2;
    uVar10 = uVar10 / param_4 & 0xffffffff;
    if (uVar11 < param_4) {
      uVar14 = (uint)(uVar11 != 0);
    }
    else {
      uVar14 = (param_4 < uVar11) + 2;
    }
LAB_00105103:
    uVar6 = (uint)uVar10;
    iVar19 = -1;
    __dest = pcVar9;
    if ((param_3 & 0x10) != 0) {
      uVar11 = (ulong)uVar4;
      if (uVar12 < uVar11) {
        iVar19 = 0;
      }
      else {
        iVar19 = 0;
        uVar13 = uVar12;
        do {
          uVar12 = uVar13 / uVar11;
          uVar5 = (int)uVar10 + (int)(uVar13 % uVar11) * 10;
          uVar6 = uVar5 / uVar4;
          uVar5 = ((int)uVar14 >> 1) + (uVar5 % uVar4) * 2;
          uVar10 = (ulong)uVar6;
          if (uVar5 < uVar4) {
            uVar14 = (uint)(uVar14 + uVar5 != 0);
          }
          else {
            uVar14 = (uVar4 < uVar14 + uVar5) + 2;
          }
          iVar19 = iVar19 + 1;
        } while ((iVar19 < 8) && (uVar13 = uVar12, uVar11 <= uVar12));
        if (uVar12 < 10) {
          if (uVar15 == 1) {
            bVar2 = 2 < (uVar6 & 1) + uVar14;
          }
          else {
            bVar2 = uVar15 == 0 && uVar14 != 0;
          }
          if (bVar2) {
            uVar6 = uVar6 + 1;
            if (uVar6 == 10) {
              uVar12 = uVar12 + 1;
              if (uVar12 < 10) {
                uVar14 = 0;
                uVar6 = 0;
                goto LAB_00105494;
              }
              uVar14 = 0;
              uVar6 = 0;
              goto LAB_00105238;
            }
          }
          else if (uVar6 == 0) {
LAB_00105494:
            if ((param_3 & 8) != 0) {
              uVar6 = 0;
              goto LAB_00105238;
            }
          }
          param_2[0x286] = (char)uVar6 + '0';
          memcpy(param_2 + (0x286 - uVar17),pcVar16,uVar17);
          uVar14 = 0;
          uVar6 = 0;
          __dest = param_2 + (0x286 - uVar17);
        }
      }
    }
LAB_00105238:
    if (uVar15 == 1) {
      bVar2 = 5 < (int)(uVar6 + (((uint)uVar12 & 1) + uVar14 != 0));
    }
    else {
      bVar2 = uVar15 == 0 && 0 < (int)(uVar6 + uVar14);
    }
    __dest_00 = __dest;
    if ((((bVar2) && (uVar12 = uVar12 + 1, (param_3 & 0x10) != 0)) && (uVar4 == uVar12)) &&
       (iVar19 < 8)) {
      iVar19 = iVar19 + 1;
      if ((param_3 & 8) == 0) {
        __dest[-1] = '0';
        __dest = __dest + ~uVar17;
        memcpy(__dest,pcVar16,uVar17);
      }
      __dest_00 = __dest + -1;
      __dest[-1] = '1';
    }
    else {
      do {
        __dest_00 = __dest_00 + -1;
        *__dest_00 = (char)uVar12 + (char)(uVar12 / 10) * -10 + '0';
        bVar2 = 9 < uVar12;
        uVar12 = uVar12 / 10;
      } while (bVar2);
    }
  }
  else {
    if ((param_4 % param_5 == 0) &&
       (uVar12 = (param_4 / param_5) * param_1, uVar12 / (param_4 / param_5) == param_1)) {
      uVar14 = 0;
      uVar10 = 0;
      goto LAB_00105103;
    }
LAB_00104dfa:
    lVar22 = (longdouble)(long)param_4;
    if ((long)param_4 < 0) {
      lVar22 = lVar22 + (longdouble)_DAT_0010b274;
    }
    lVar23 = (longdouble)(long)param_5;
    if ((long)param_5 < 0) {
      lVar23 = lVar23 + (longdouble)_DAT_0010b274;
    }
    lVar24 = (longdouble)(long)param_1;
    if ((long)param_1 < 0) {
      lVar24 = lVar24 + (longdouble)_DAT_0010b274;
    }
    if ((param_3 & 0x10) == 0) {
      FUN_00104c0d(uVar15);
      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");
      iVar19 = -1;
      uVar10 = 0xffffffffffffffff;
      pcVar16 = param_2;
      do {
        if (uVar10 == 0) break;
        uVar10 = uVar10 - 1;
        cVar1 = *pcVar16;
        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;
      } while (cVar1 != '\0');
      uVar10 = ~uVar10 - 1;
      lVar18 = 0;
    }
    else {
      lVar25 = (longdouble)1;
      iVar19 = 0;
      do {
        lVar25 = lVar25 * (longdouble)uVar4;
        iVar19 = iVar19 + 1;
        if (lVar24 * (lVar22 / lVar23) < (longdouble)uVar4 * lVar25) break;
      } while (iVar19 < 8);
      FUN_00104c0d(uVar15);
      __sprintf_chk(param_2,1,0xffffffffffffffff,"%.1Lf");
      uVar11 = 0xffffffffffffffff;
      pcVar16 = param_2;
      do {
        if (uVar11 == 0) break;
        uVar11 = uVar11 - 1;
        cVar1 = *pcVar16;
        pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;
      } while (cVar1 != '\0');
      uVar10 = ~uVar11 - 1;
      lVar18 = uVar17 + 1;
      if ((uVar17 + 2 + (ulong)(uVar3 == 0) < uVar10) ||
         (((param_3 & 8) != 0 && (param_2[~uVar11 - 2] == '0')))) {
        FUN_00104c0d(uVar15);
        __sprintf_chk(param_2,1,0xffffffffffffffff,"%.0Lf");
        uVar10 = 0xffffffffffffffff;
        pcVar16 = param_2;
        do {
          if (uVar10 == 0) break;
          uVar10 = uVar10 - 1;
          cVar1 = *pcVar16;
          pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;
        } while (cVar1 != '\0');
        uVar10 = ~uVar10 - 1;
        lVar18 = 0;
      }
    }
    __dest_00 = pcVar9 + -uVar10;
    memmove(__dest_00,param_2,uVar10);
    __dest = __dest_00 + (uVar10 - lVar18);
  }
  if ((param_3 & 4) != 0) {
    uVar11 = (long)__dest - (long)__dest_00;
    uVar10 = 0xffffffffffffffff;
    uVar17 = 0xffffffffffffffff;
    pcVar16 = pcVar8;
    do {
      if (uVar17 == 0) break;
      uVar17 = uVar17 - 1;
      cVar1 = *pcVar16;
      pcVar16 = pcVar16 + (ulong)bVar21 * -2 + 1;
    } while (cVar1 != '\0');
    __memcpy_chk(local_78,__dest_00,uVar11,0x29);
    while( true ) {
      bVar21 = *pbVar20;
      if (bVar21 != 0) {
        uVar10 = (ulong)bVar21;
        if (0x7e < bVar21) {
          uVar10 = uVar11;
        }
        pbVar20 = pbVar20 + 1;
      }
      if (uVar11 < uVar10) {
        uVar10 = uVar11;
      }
      __dest_00 = __dest + -uVar10;
      uVar11 = uVar11 - uVar10;
      memcpy(__dest_00,local_78 + uVar11,uVar10);
      if (uVar11 == 0) break;
      __dest = __dest_00 + -(~uVar17 - 1);
      memcpy(__dest,pcVar8,~uVar17 - 1);
    }
  }
  local_a8 = pcVar9;
  if ((param_3 & 0x80) == 0) goto LAB_001050c5;
  if (iVar19 < 0) {
    iVar19 = 1;
    uVar10 = 1;
    if (param_5 < 2) {
      iVar19 = 0;
      goto LAB_001050b0;
    }
    do {
      uVar10 = uVar10 * uVar4;
      if (param_5 <= uVar10) goto LAB_001050b0;
      iVar19 = iVar19 + 1;
    } while (iVar19 != 8);
    if ((param_3 & 0x40) != 0) goto LAB_0010540f;
LAB_00105427:
    if ((iVar19 == 1) && (uVar3 == 0)) {
      *pcVar9 = 'k';
      local_a8 = pcVar9 + 1;
      goto joined_r0x001054bc;
    }
    local_a8 = pcVar9 + 1;
    *pcVar9 = (&DAT_0010b240)[iVar19];
    if ((param_3 & 0x100) == 0) goto LAB_001050c5;
    if (uVar3 != 0) {
      pcVar9[1] = 'i';
      local_a8 = pcVar9 + 2;
    }
  }
  else {
LAB_001050b0:
    if ((param_3 & 0x100) == 0 && iVar19 == 0) goto LAB_001050c5;
    if ((param_3 & 0x40) != 0) {
LAB_0010540f:
      pcVar9 = param_2 + 0x288;
      param_2[0x287] = ' ';
    }
    local_a8 = pcVar9;
    if (iVar19 != 0) goto LAB_00105427;
joined_r0x001054bc:
    if ((param_3 & 0x100) == 0) goto LAB_001050c5;
  }
  *local_a8 = 'B';
  local_a8 = local_a8 + 1;
LAB_001050c5:
  *local_a8 = '\0';
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return __dest_00;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

