
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* 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)

{
  ulonglong uVar1;
  ulonglong uVar2;
  int iVar3;
  byte bVar4;
  uintmax_t uVar5;
  char cVar6;
  bool bVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  lconv *plVar11;
  size_t sVar12;
  char *pcVar13;
  size_t __n;
  uint uVar14;
  int iVar15;
  uint uVar16;
  uint uVar17;
  char *pcVar18;
  uint uVar19;
  int in_GS_OFFSET;
  longdouble lVar20;
  longdouble lVar21;
  longdouble lVar22;
  longlong lVar23;
  undefined8 uVar24;
  longlong lVar25;
  byte *local_bc;
  uint local_b8;
  int local_a4;
  char *local_98;
  undefined1 local_94 [8];
  undefined2 uStack_8c;
  char *local_7c;
  uint local_74;
  char *local_6c;
  uint local_68;
  undefined8 *local_64;
  uint local_5c;
  undefined8 local_54;
  char buf_1 [41];
  
  _local_94 = CONCAT64(CONCAT24(uStack_8c,from_block_size._4_4_),(uint)from_block_size);
  iVar3 = *(int *)(in_GS_OFFSET + 0x14);
  uVar8 = opts & 3;
  uVar9 = opts & 0x20;
  uVar10 = (-(uint)(uVar9 == 0) & 0xffffffe8) + 0x400;
  plVar11 = localeconv();
  local_6c = plVar11->decimal_point;
  local_74 = strlen(local_6c);
  if (0xf < local_74 - 1) {
    local_74 = 1;
    local_6c = ".";
  }
  local_bc = (byte *)plVar11->grouping;
  pcVar18 = plVar11->thousands_sep;
  sVar12 = strlen(pcVar18);
  pcVar13 = "";
  if (sVar12 < 0x11) {
    pcVar13 = pcVar18;
  }
  local_98 = buf + 0x287;
  local_7c = local_98;
  if (from_block_size._4_4_ < to_block_size._4_4_ ||
      from_block_size._4_4_ - to_block_size._4_4_ <
      (uint)((uint)from_block_size < (uint)to_block_size)) {
    if (from_block_size != 0) {
      uVar24 = __udivmoddi4(to_block_size,from_block_size,&local_54);
      uVar17 = (uint)((ulonglong)uVar24 >> 0x20);
      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {
        lVar25 = __udivmoddi4(n,uVar24,&local_54);
        lVar23 = (local_54 & 0xffffffff) * 10;
        local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,
                                uVar24,&local_54);
        uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;
        uVar14 = (uint)local_54 * 2;
        if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)) {
          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);
        }
        else {
          uVar19 = 3;
          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {
            uVar19 = 2;
          }
        }
        if ((opts & 0x10U) != 0) goto LAB_000153b5;
LAB_0001578e:
        local_a4 = -1;
LAB_00015796:
        if (uVar8 != 1) goto LAB_000157a9;
        uVar8 = (uint)lVar25 & 1;
        pcVar18 = local_98;
        lVar23 = lVar25;
        if (5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)) goto LAB_000157bb;
        goto LAB_000157f4;
      }
    }
LAB_00014fe8:
    lVar20 = (longdouble)(longlong)local_94;
    if ((longlong)from_block_size < 0) {
      lVar20 = lVar20 + (longdouble)DAT_0001e244;
    }
    if ((longlong)to_block_size < 0) {
      lVar20 = lVar20 / ((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244);
      if ((longlong)n < 0) goto LAB_00015298;
LAB_00015026:
      lVar20 = (longdouble)(longlong)n * lVar20;
      if ((opts & 0x10U) != 0) goto LAB_00015036;
LAB_000151c8:
      lVar22 = lVar20;
      if ((uVar8 != 1) && (lVar20 < _DAT_0001e250)) {
        if ((longdouble)DAT_0001e248 <= lVar20) {
          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);
          local_54._4_4_ = (int)(uVar2 >> 0x20);
          local_54._0_4_ = (uint)uVar2;
          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);
          local_54 = uVar2;
        }
        else {
          uVar1 = (ulonglong)ROUND(lVar20);
          local_54 = uVar1;
        }
        lVar22 = (longdouble)(longlong)uVar1;
        if ((longlong)uVar1 < 0) {
          lVar22 = lVar22 + (longdouble)DAT_0001e244;
        }
        if (((uVar8 == 0) && (lVar20 != lVar22)) &&
           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {
          lVar22 = lVar22 + (longdouble)DAT_0001e244;
        }
      }
      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),
                    (short)((unkuint10)lVar22 >> 0x40));
      __n = strlen(buf);
      local_a4 = -1;
      sVar12 = __n;
    }
    else {
      lVar20 = lVar20 / (longdouble)(longlong)to_block_size;
      if (-1 < (longlong)n) goto LAB_00015026;
LAB_00015298:
      lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20;
      if ((opts & 0x10U) == 0) goto LAB_000151c8;
LAB_00015036:
      local_a4 = 0;
      lVar22 = (longdouble)(int)uVar10;
      do {
        lVar21 = lVar22;
        local_a4 = local_a4 + 1;
        lVar22 = lVar21 * (longdouble)(int)uVar10;
        if (lVar20 < lVar22) break;
      } while (local_a4 != 8);
      lVar20 = lVar20 / lVar21;
      uVar17 = local_74 + 2 + (uint)(uVar9 == 0);
      if (uVar8 == 1) {
        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),
                      (short)((unkuint10)lVar20 >> 0x40));
        __n = strlen(buf);
        if (__n <= uVar17) goto LAB_00015830;
        lVar20 = lVar20 * (longdouble)DAT_0001e24c;
      }
      else {
        lVar22 = lVar20;
        if (lVar20 < _DAT_0001e250) {
          if ((longdouble)DAT_0001e248 <= lVar20) {
            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);
            local_54._4_4_ = (int)(uVar2 >> 0x20);
            local_54._0_4_ = (uint)uVar2;
            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);
            local_54 = uVar2;
          }
          else {
            uVar1 = (ulonglong)ROUND(lVar20);
            local_54 = uVar1;
          }
          lVar22 = (longdouble)(longlong)uVar1;
          if ((longlong)uVar1 < 0) {
            lVar22 = lVar22 + (longdouble)DAT_0001e244;
          }
          if (((uVar8 == 0) && (lVar20 != lVar22)) &&
             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {
            lVar22 = lVar22 + (longdouble)DAT_0001e244;
          }
        }
        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),
                      (short)((unkuint10)lVar22 >> 0x40));
        __n = strlen(buf);
        if (uVar17 < __n) {
          lVar22 = lVar20 * (longdouble)DAT_0001e24c;
        }
        else {
LAB_00015830:
          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {
            sVar12 = __n - (local_74 + 1);
            goto LAB_00015214;
          }
          lVar20 = lVar20 * (longdouble)DAT_0001e24c;
          lVar22 = lVar20;
          if (uVar8 == 1) goto LAB_00015192;
        }
        lVar20 = lVar22;
        if (lVar22 < _DAT_0001e250) {
          if ((longdouble)DAT_0001e248 <= lVar22) {
            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);
            local_54._4_4_ = (int)(uVar2 >> 0x20);
            local_54._0_4_ = (uint)uVar2;
            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);
            local_54 = uVar2;
          }
          else {
            uVar1 = (ulonglong)ROUND(lVar22);
            local_54 = uVar1;
          }
          lVar20 = (longdouble)(longlong)uVar1;
          if ((longlong)uVar1 < 0) {
            lVar20 = lVar20 + (longdouble)DAT_0001e244;
          }
          if (((uVar8 == 0) && (lVar22 != lVar20)) &&
             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {
            lVar20 = lVar20 + (longdouble)DAT_0001e244;
          }
        }
      }
LAB_00015192:
      lVar20 = lVar20 / (longdouble)DAT_0001e24c;
      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),
                    (short)((unkuint10)lVar20 >> 0x40));
      __n = strlen(buf);
      sVar12 = __n;
    }
LAB_00015214:
    pcVar18 = local_98 + -__n;
    memmove(pcVar18,buf,__n);
    local_7c = pcVar18 + sVar12;
  }
  else {
    lVar23 = __udivmoddi4(from_block_size,to_block_size,&local_54);
    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;
    lVar25 = n * lVar23;
    uVar5 = __udivdi3(lVar25,(short)lVar23,(int)((ulonglong)lVar23 >> 0x20));
    if (n != uVar5) goto LAB_00014fe8;
    uVar19 = 0;
    local_68 = 0;
    if ((opts & 0x10U) == 0) goto LAB_0001578e;
LAB_000153b5:
    local_64 = &local_54;
    local_a4 = 0;
    if ((uint)((ulonglong)lVar25 >> 0x20) < (uint)((uint)lVar25 < uVar10)) goto LAB_00015796;
    while( true ) {
      lVar25 = __udivmoddi4(lVar25,uVar10,0,local_64);
      uVar16 = (uint)((ulonglong)lVar25 >> 0x20);
      uVar14 = (uint)lVar25;
      uVar17 = local_68 + (uint)local_54 * 10;
      uVar1 = (ulonglong)uVar17 / (ulonglong)uVar10;
      local_68 = (uint)uVar1;
      uVar17 = ((int)uVar19 >> 1) + (uVar17 % uVar10) * 2;
      uVar19 = uVar19 + uVar17;
      if (uVar17 < uVar10) {
        uVar19 = (uint)(uVar19 != 0);
      }
      else {
        uVar19 = (uVar10 < uVar19) + 2;
      }
      local_a4 = local_a4 + 1;
      if (uVar16 < (uVar14 < uVar10)) break;
      if (local_a4 == 8) goto LAB_00015796;
    }
    if (uVar16 != 0 || -uVar16 < (uint)(9 < uVar14)) goto LAB_00015796;
    if (uVar8 == 1) {
      bVar7 = 2 < (local_68 & 1) + uVar19;
    }
    else {
      bVar7 = uVar19 != 0 && uVar8 == 0;
    }
    cVar6 = (char)uVar1;
    if (bVar7) {
      if (local_68 == 9) {
        lVar23 = lVar25 + 1;
        lVar25 = lVar25 + 1;
        if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {
          uVar19 = 0;
          goto LAB_00015ae9;
        }
        goto LAB_00015b39;
      }
      cVar6 = cVar6 + '1';
    }
    else if (local_68 == 0) {
LAB_00015ae9:
      if ((opts & 8U) != 0) goto LAB_00015b3b;
      cVar6 = '0';
    }
    else {
      cVar6 = cVar6 + '0';
    }
    buf[0x286] = cVar6;
    local_7c = buf + (0x286 - local_74);
    if (local_74 < 4) {
      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {
        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));
      }
    }
    else {
      *(undefined4 *)local_7c = *(undefined4 *)local_6c;
      *(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));
      iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);
      uVar17 = iVar15 + local_74 & 0xfffffffc;
      if (3 < uVar17) {
        uVar14 = 0;
        do {
          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =
               *(undefined4 *)(local_6c + (uVar14 - iVar15));
          uVar14 = uVar14 + 4;
        } while (uVar14 < uVar17);
      }
    }
LAB_00015b39:
    uVar19 = 0;
LAB_00015b3b:
    pcVar18 = local_7c;
    lVar23 = lVar25;
    if (uVar8 == 1) goto LAB_000157f4;
    local_68 = 0;
LAB_000157a9:
    pcVar18 = local_7c;
    lVar23 = lVar25;
    if ((uVar8 == 0) && (0 < (int)(local_68 + uVar19))) {
LAB_000157bb:
      local_5c = opts & 0x10;
      pcVar18 = local_7c;
      lVar23 = lVar25 + 1;
      if (((local_5c == 0) ||
          (lVar23 = lVar25 + 1,
          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||
         (lVar23 = lVar25 + 1, local_a4 == 8)) goto LAB_000157f4;
      local_a4 = local_a4 + 1;
      if ((opts & 8U) == 0) {
        local_7c[-1] = '0';
        local_7c = local_7c + ~local_74;
        if (local_74 < 4) {
          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {
            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));
          }
        }
        else {
          *(undefined4 *)local_7c = *(undefined4 *)local_6c;
          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));
          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);
          uVar8 = iVar15 + local_74 & 0xfffffffc;
          if (3 < uVar8) {
            uVar17 = 0;
            do {
              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =
                   *(undefined4 *)(local_6c + (uVar17 - iVar15));
              uVar17 = uVar17 + 4;
            } while (uVar17 < uVar8);
          }
        }
      }
      pcVar18 = local_7c + -1;
      local_7c[-1] = '1';
    }
    else {
LAB_000157f4:
      do {
        iVar15 = (int)((ulonglong)lVar23 >> 0x20);
        uVar8 = (uint)lVar23;
        pcVar18 = pcVar18 + -1;
        cVar6 = __umoddi3(lVar23,10,0);
        *pcVar18 = cVar6 + '0';
        lVar23 = __udivdi3(lVar23,10,0);
      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));
    }
  }
  if ((opts & 4U) != 0) {
    uVar17 = (int)local_7c - (int)pcVar18;
    sVar12 = strlen(pcVar13);
    __memcpy_chk(buf_1,pcVar18,(short)uVar17,0x29);
    uVar8 = 0xffffffff;
    while( true ) {
      bVar4 = *local_bc;
      if (bVar4 != 0) {
        uVar8 = (uint)bVar4;
        if (0x7e < bVar4) {
          uVar8 = uVar17;
        }
        local_bc = local_bc + 1;
      }
      if (uVar17 < uVar8) break;
      uVar17 = uVar17 - uVar8;
      pcVar18 = local_7c + -uVar8;
      memcpy(pcVar18,buf_1 + uVar17,uVar8);
      if (uVar17 == 0) goto LAB_00015240;
      local_7c = pcVar18 + -sVar12;
      memcpy(local_7c,pcVar13,sVar12);
    }
    pcVar18 = local_7c + -uVar17;
    memcpy(pcVar18,buf_1,uVar17);
  }
LAB_00015240:
  if ((opts & 0x80U) == 0) goto LAB_0001526d;
  if (local_a4 == -1) {
    if (to_block_size._4_4_ == 0 && (uint)(1 < (uint)to_block_size) <= -to_block_size._4_4_) {
      local_a4 = 0;
      goto LAB_00015255;
    }
    local_a4 = 1;
    local_b8 = 0;
    local_bc = (byte *)0x1;
    do {
      uVar1 = ZEXT48(local_bc);
      local_bc = (byte *)(uVar1 * uVar10);
      local_b8 = (int)(uVar1 * uVar10 >> 0x20) + local_b8 * uVar10;
      if (to_block_size._4_4_ <= local_b8 &&
          (uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_) break;
      local_a4 = local_a4 + 1;
    } while (local_a4 != 8);
    if ((opts & 0x40U) != 0) goto LAB_000155da;
LAB_000155fb:
    if ((uVar9 == 0) && (local_a4 == 1)) {
      *local_98 = 'k';
      pcVar13 = local_98 + 1;
      if ((opts & 0x100U) == 0) {
LAB_00015a82:
        local_98 = local_98 + 1;
        goto LAB_0001526d;
      }
    }
    else {
      *local_98 = ""[local_a4];
      if ((opts & 0x100U) == 0) goto LAB_00015a82;
      pcVar13 = local_98 + 1;
      if (uVar9 != 0) {
        local_98[1] = 'i';
        pcVar13 = local_98 + 2;
      }
    }
  }
  else {
LAB_00015255:
    if (local_a4 == 0 && (opts & 0x100U) == 0) goto LAB_0001526d;
    if ((opts & 0x40U) != 0) {
LAB_000155da:
      local_98 = buf + 0x288;
      buf[0x287] = ' ';
    }
    if (local_a4 != 0) goto LAB_000155fb;
    pcVar13 = local_98;
    if ((opts & 0x100U) == 0) goto LAB_0001526d;
  }
  local_98 = pcVar13 + 1;
  *pcVar13 = 'B';
LAB_0001526d:
  *local_98 = '\0';
  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {
    return pcVar18;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

char * FUN_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,
                   uint param_6,uint param_7,uint param_8)

{
  ulonglong uVar1;
  ulonglong uVar2;
  byte bVar3;
  char cVar4;
  bool bVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  lconv *plVar9;
  size_t sVar10;
  char *pcVar11;
  size_t __n;
  uint uVar12;
  int iVar13;
  uint uVar14;
  uint uVar15;
  char *pcVar16;
  uint uVar17;
  int in_GS_OFFSET;
  longdouble lVar18;
  longdouble lVar19;
  longdouble lVar20;
  longlong lVar21;
  undefined8 uVar22;
  longlong lVar23;
  byte *local_bc;
  uint local_b8;
  undefined8 local_a4;
  char *local_98;
  undefined1 local_94 [8];
  undefined2 uStack_8c;
  char *local_7c;
  uint local_74;
  char *local_6c;
  uint local_68;
  undefined8 *local_64;
  uint local_5c;
  undefined8 local_54;
  undefined1 local_49 [41];
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x14e59;
  local_a4 = CONCAT44(param_2,param_1);
  _local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  uVar6 = param_4 & 3;
  uVar7 = param_4 & 0x20;
  uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;
  plVar9 = localeconv();
  local_6c = plVar9->decimal_point;
  local_74 = strlen(local_6c);
  if (0xf < local_74 - 1) {
    local_74 = 1;
    local_6c = ".";
  }
  local_bc = (byte *)plVar9->grouping;
  pcVar16 = plVar9->thousands_sep;
  sVar10 = strlen(pcVar16);
  pcVar11 = "";
  if (sVar10 < 0x11) {
    pcVar11 = pcVar16;
  }
  local_98 = param_3 + 0x287;
  local_7c = local_98;
  if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {
    if (param_6 != 0 || param_5 != 0) {
      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);
      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);
      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {
        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);
        lVar21 = (local_54 & 0xffffffff) * 10;
        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,
                                uVar22,&local_54);
        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;
        uVar12 = (uint)local_54 * 2;
        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {
          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);
        }
        else {
          uVar17 = 3;
          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {
            uVar17 = 2;
          }
        }
        if ((param_4 & 0x10) != 0) goto LAB_000153b5;
LAB_0001578e:
        local_a4._0_4_ = -1;
LAB_00015796:
        if (uVar6 != 1) goto LAB_000157a9;
        uVar6 = (uint)lVar23 & 1;
        pcVar16 = local_98;
        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;
        goto LAB_000157f4;
      }
    }
LAB_00014fe8:
    lVar18 = (longdouble)(longlong)local_94;
    if ((int)param_6 < 0) {
      lVar18 = lVar18 + (longdouble)DAT_0001e244;
    }
    local_94._4_4_ = param_8;
    local_94._0_4_ = param_7;
    if ((int)param_8 < 0) {
      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);
      if (param_2 < 0) goto LAB_00015298;
LAB_00015026:
      lVar18 = (longdouble)local_a4 * lVar18;
      if ((param_4 & 0x10) != 0) goto LAB_00015036;
LAB_000151c8:
      lVar20 = lVar18;
      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {
        if ((longdouble)DAT_0001e248 <= lVar18) {
          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);
          local_54._4_4_ = (int)(uVar2 >> 0x20);
          local_54._0_4_ = (uint)uVar2;
          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);
          local_54 = uVar2;
        }
        else {
          uVar1 = (ulonglong)ROUND(lVar18);
          local_54 = uVar1;
        }
        lVar20 = (longdouble)(longlong)uVar1;
        if ((longlong)uVar1 < 0) {
          lVar20 = lVar20 + (longdouble)DAT_0001e244;
        }
        if (((uVar6 == 0) && (lVar18 != lVar20)) &&
           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {
          lVar20 = lVar20 + (longdouble)DAT_0001e244;
        }
      }
      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),
                    (short)((unkuint10)lVar20 >> 0x40));
      __n = strlen(param_3);
      local_a4._0_4_ = -1;
      sVar10 = __n;
    }
    else {
      lVar18 = lVar18 / (longdouble)(longlong)local_94;
      if (-1 < param_2) goto LAB_00015026;
LAB_00015298:
      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;
      if ((param_4 & 0x10) == 0) goto LAB_000151c8;
LAB_00015036:
      local_a4._0_4_ = 0;
      lVar20 = (longdouble)(int)uVar8;
      do {
        lVar19 = lVar20;
        local_a4._0_4_ = (int)local_a4 + 1;
        lVar20 = lVar19 * (longdouble)(int)uVar8;
        if (lVar18 < lVar20) break;
      } while ((int)local_a4 != 8);
      lVar18 = lVar18 / lVar19;
      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);
      if (uVar6 == 1) {
        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)
                      ,(short)((unkuint10)lVar18 >> 0x40));
        __n = strlen(param_3);
        if (__n <= uVar15) goto LAB_00015830;
        lVar18 = lVar18 * (longdouble)DAT_0001e24c;
      }
      else {
        lVar20 = lVar18;
        if (lVar18 < _DAT_0001e250) {
          if ((longdouble)DAT_0001e248 <= lVar18) {
            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);
            local_54._4_4_ = (int)(uVar2 >> 0x20);
            local_54._0_4_ = (uint)uVar2;
            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);
            local_54 = uVar2;
          }
          else {
            uVar1 = (ulonglong)ROUND(lVar18);
            local_54 = uVar1;
          }
          lVar20 = (longdouble)(longlong)uVar1;
          if ((longlong)uVar1 < 0) {
            lVar20 = lVar20 + (longdouble)DAT_0001e244;
          }
          if (((uVar6 == 0) && (lVar18 != lVar20)) &&
             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {
            lVar20 = lVar20 + (longdouble)DAT_0001e244;
          }
        }
        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)
                      ,(short)((unkuint10)lVar20 >> 0x40));
        __n = strlen(param_3);
        if (uVar15 < __n) {
          lVar20 = lVar18 * (longdouble)DAT_0001e24c;
        }
        else {
LAB_00015830:
          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {
            sVar10 = __n - (local_74 + 1);
            goto LAB_00015214;
          }
          lVar18 = lVar18 * (longdouble)DAT_0001e24c;
          lVar20 = lVar18;
          if (uVar6 == 1) goto LAB_00015192;
        }
        lVar18 = lVar20;
        if (lVar20 < _DAT_0001e250) {
          if ((longdouble)DAT_0001e248 <= lVar20) {
            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);
            local_54._4_4_ = (int)(uVar2 >> 0x20);
            local_54._0_4_ = (uint)uVar2;
            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);
            local_54 = uVar2;
          }
          else {
            uVar1 = (ulonglong)ROUND(lVar20);
            local_54 = uVar1;
          }
          lVar18 = (longdouble)(longlong)uVar1;
          if ((longlong)uVar1 < 0) {
            lVar18 = lVar18 + (longdouble)DAT_0001e244;
          }
          if (((uVar6 == 0) && (lVar20 != lVar18)) &&
             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {
            lVar18 = lVar18 + (longdouble)DAT_0001e244;
          }
        }
      }
LAB_00015192:
      lVar18 = lVar18 / (longdouble)DAT_0001e24c;
      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),
                    (short)((unkuint10)lVar18 >> 0x40));
      __n = strlen(param_3);
      sVar10 = __n;
    }
LAB_00015214:
    pcVar16 = local_98 + -__n;
    memmove(pcVar16,param_3,__n);
    local_7c = pcVar16 + sVar10;
  }
  else {
    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);
    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;
    lVar23 = lVar21 * local_a4;
    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));
    if (lVar21 != local_a4) goto LAB_00014fe8;
    uVar17 = 0;
    local_68 = 0;
    if ((param_4 & 0x10) == 0) goto LAB_0001578e;
LAB_000153b5:
    local_64 = &local_54;
    local_a4._0_4_ = 0;
    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;
    while( true ) {
      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);
      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);
      uVar12 = (uint)lVar23;
      uVar15 = local_68 + (uint)local_54 * 10;
      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;
      local_68 = (uint)uVar1;
      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;
      uVar17 = uVar17 + uVar15;
      if (uVar15 < uVar8) {
        uVar17 = (uint)(uVar17 != 0);
      }
      else {
        uVar17 = (uVar8 < uVar17) + 2;
      }
      local_a4._0_4_ = (int)local_a4 + 1;
      if (uVar14 < (uVar12 < uVar8)) break;
      if ((int)local_a4 == 8) goto LAB_00015796;
    }
    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;
    if (uVar6 == 1) {
      bVar5 = 2 < (local_68 & 1) + uVar17;
    }
    else {
      bVar5 = uVar17 != 0 && uVar6 == 0;
    }
    cVar4 = (char)uVar1;
    if (bVar5) {
      if (local_68 == 9) {
        lVar21 = lVar23 + 1;
        lVar23 = lVar23 + 1;
        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {
          uVar17 = 0;
          goto LAB_00015ae9;
        }
        goto LAB_00015b39;
      }
      cVar4 = cVar4 + '1';
    }
    else if (local_68 == 0) {
LAB_00015ae9:
      if ((param_4 & 8) != 0) goto LAB_00015b3b;
      cVar4 = '0';
    }
    else {
      cVar4 = cVar4 + '0';
    }
    param_3[0x286] = cVar4;
    local_7c = param_3 + (0x286 - local_74);
    if (local_74 < 4) {
      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {
        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));
      }
    }
    else {
      *(undefined4 *)local_7c = *(undefined4 *)local_6c;
      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));
      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);
      uVar15 = iVar13 + local_74 & 0xfffffffc;
      if (3 < uVar15) {
        uVar12 = 0;
        do {
          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =
               *(undefined4 *)(local_6c + (uVar12 - iVar13));
          uVar12 = uVar12 + 4;
        } while (uVar12 < uVar15);
      }
    }
LAB_00015b39:
    uVar17 = 0;
LAB_00015b3b:
    pcVar16 = local_7c;
    if (uVar6 == 1) goto LAB_000157f4;
    local_68 = 0;
LAB_000157a9:
    pcVar16 = local_7c;
    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {
LAB_000157bb:
      local_5c = param_4 & 0x10;
      lVar23 = lVar23 + 1;
      pcVar16 = local_7c;
      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||
         ((int)local_a4 == 8)) goto LAB_000157f4;
      local_a4._0_4_ = (int)local_a4 + 1;
      if ((param_4 & 8) == 0) {
        local_7c[-1] = '0';
        local_7c = local_7c + ~local_74;
        if (local_74 < 4) {
          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {
            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));
          }
        }
        else {
          *(undefined4 *)local_7c = *(undefined4 *)local_6c;
          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));
          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);
          uVar6 = iVar13 + local_74 & 0xfffffffc;
          if (3 < uVar6) {
            uVar15 = 0;
            do {
              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =
                   *(undefined4 *)(local_6c + (uVar15 - iVar13));
              uVar15 = uVar15 + 4;
            } while (uVar15 < uVar6);
          }
        }
      }
      pcVar16 = local_7c + -1;
      local_7c[-1] = '1';
    }
    else {
LAB_000157f4:
      do {
        iVar13 = (int)((ulonglong)lVar23 >> 0x20);
        uVar6 = (uint)lVar23;
        pcVar16 = pcVar16 + -1;
        cVar4 = FUN_0001bda0(lVar23,10,0);
        *pcVar16 = cVar4 + '0';
        lVar23 = FUN_0001bc90(lVar23,10,0);
      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));
    }
  }
  if ((param_4 & 4) != 0) {
    uVar15 = (int)local_7c - (int)pcVar16;
    sVar10 = strlen(pcVar11);
    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);
    uVar6 = 0xffffffff;
    while( true ) {
      bVar3 = *local_bc;
      if (bVar3 != 0) {
        uVar6 = (uint)bVar3;
        if (0x7e < bVar3) {
          uVar6 = uVar15;
        }
        local_bc = local_bc + 1;
      }
      if (uVar15 < uVar6) break;
      uVar15 = uVar15 - uVar6;
      pcVar16 = local_7c + -uVar6;
      memcpy(pcVar16,local_49 + uVar15,uVar6);
      if (uVar15 == 0) goto LAB_00015240;
      local_7c = pcVar16 + -sVar10;
      memcpy(local_7c,pcVar11,sVar10);
    }
    pcVar16 = local_7c + -uVar15;
    memcpy(pcVar16,local_49,uVar15);
  }
LAB_00015240:
  if ((param_4 & 0x80) == 0) goto LAB_0001526d;
  if ((int)local_a4 == -1) {
    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {
      local_a4._0_4_ = 0;
      goto LAB_00015255;
    }
    local_a4._0_4_ = 1;
    local_b8 = 0;
    local_bc = (byte *)0x1;
    do {
      uVar1 = ZEXT48(local_bc);
      local_bc = (byte *)(uVar1 * uVar8);
      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;
      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;
      local_a4._0_4_ = (int)local_a4 + 1;
    } while ((int)local_a4 != 8);
    if ((param_4 & 0x40) != 0) goto LAB_000155da;
LAB_000155fb:
    if ((uVar7 == 0) && ((int)local_a4 == 1)) {
      *local_98 = 'k';
      pcVar11 = local_98 + 1;
      if ((param_4 & 0x100) == 0) {
LAB_00015a82:
        local_98 = local_98 + 1;
        goto LAB_0001526d;
      }
    }
    else {
      *local_98 = (&UNK_0001e238)[(int)local_a4];
      if ((param_4 & 0x100) == 0) goto LAB_00015a82;
      pcVar11 = local_98 + 1;
      if (uVar7 != 0) {
        local_98[1] = 'i';
        pcVar11 = local_98 + 2;
      }
    }
  }
  else {
LAB_00015255:
    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;
    if ((param_4 & 0x40) != 0) {
LAB_000155da:
      local_98 = param_3 + 0x288;
      param_3[0x287] = ' ';
    }
    if ((int)local_a4 != 0) goto LAB_000155fb;
    pcVar11 = local_98;
    if ((param_4 & 0x100) == 0) goto LAB_0001526d;
  }
  local_98 = pcVar11 + 1;
  *pcVar11 = 'B';
LAB_0001526d:
  *local_98 = '\0';
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return pcVar16;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0001c140();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00012f10
ADD EBX,0xf1a7
SUB ESP,0xac
MOV EAX,dword ptr [ESP + 0xc0]
MOV EDX,dword ptr [ESP + 0xc4]
MOV dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0xc8]
MOV dword ptr [ESP + 0x1c],EDX
MOV EDX,dword ptr [ESP + 0xd4]
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [ESP + 0xd0]
MOV dword ptr [ESP + 0x2c],EDX
MOV EDX,dword ptr [ESP + 0xdc]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,dword ptr [ESP + 0xd8]
MOV dword ptr [ESP + 0xc],EDX
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x9c],EAX
XOR EAX,EAX
MOV EAX,dword ptr [ESP + 0xcc]
AND EAX,0x3
MOV dword ptr [ESP + 0x38],EAX
MOV EAX,dword ptr [ESP + 0xcc]
AND EAX,0x20
CMP EAX,0x1
MOV dword ptr [ESP + 0x4c],EAX
SBB EAX,EAX
AND EAX,0xffffffe8
ADD EAX,0x400
MOV dword ptr [ESP + 0x3c],EAX
CALL 0x00012450
SUB ESP,0xc
MOV ESI,EAX
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESP + 0x5c],EAX
PUSH EAX
CALL 0x000122e0
ADD ESP,0x10
MOV dword ptr [ESP + 0x48],EAX
SUB EAX,0x1
CMP EAX,0xf
JBE 0x00014f25
LEA EAX,[EBX + 0xffff9057]
MOV dword ptr [ESP + 0x48],0x1
MOV dword ptr [ESP + 0x50],EAX
MOV EAX,dword ptr [ESI + 0x8]
MOV ESI,dword ptr [ESI + 0x4]
SUB ESP,0xc
MOV dword ptr [ESP + 0xc],EAX
PUSH ESI
CALL 0x000122e0
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x28]
MOV EBP,dword ptr [ESP + 0x2c]
CMP EAX,0x10
LEA EAX,[EBX + 0xffffb136]
MOV EDX,dword ptr [ESP + 0xc]
CMOVBE EAX,ESI
MOV ECX,EBP
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x34]
ADD EAX,0x287
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,dword ptr [ESP + 0x8]
CMP EDI,EAX
SBB ECX,EDX
JC 0x000152e8
LEA ECX,[ESP + 0x68]
SUB ESP,0xc
MOV dword ptr [ESP + 0x64],ECX
PUSH ECX
PUSH EDX
PUSH EAX
PUSH EBP
PUSH EDI
CALL 0x0001bee0
ADD ESP,0x20
MOV ECX,EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x6c]
OR EAX,dword ptr [ESP + 0x68]
JNZ 0x00014fe8
MOV EDI,dword ptr [ESP + 0x18]
MOV EBP,dword ptr [ESP + 0x1c]
MOV ESI,ECX
MOV dword ptr [ESP + 0x40],EDX
MOV dword ptr [ESP + 0x44],ECX
IMUL ESI,EDI
MOV EAX,EBP
IMUL EAX,dword ptr [ESP + 0x40]
ADD ESI,EAX
MOV EAX,dword ptr [ESP + 0x40]
MUL dword ptr [ESP + 0x18]
PUSH dword ptr [ESP + 0x44]
PUSH dword ptr [ESP + 0x44]
MOV EBP,EDX
MOV EDI,EAX
ADD EBP,ESI
PUSH EBP
PUSH EAX
CALL 0x0001bc90
ADD ESP,0x10
XOR EAX,dword ptr [ESP + 0x18]
XOR EDX,dword ptr [ESP + 0x1c]
OR EDX,EAX
JZ 0x00015770
MOV EDX,dword ptr [ESP + 0x2c]
FILD qword ptr [ESP + 0x28]
TEST EDX,EDX
JS 0x000152d8
MOV EAX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [ESP + 0x2c],EDX
FILD qword ptr [ESP + 0x28]
TEST EDX,EDX
JS 0x000152b8
MOV EDX,dword ptr [ESP + 0x1c]
FDIVP
FILD qword ptr [ESP + 0x18]
TEST EDX,EDX
JS 0x00015298
FMULP
TEST byte ptr [ESP + 0xcc],0x10
JZ 0x000151c8
FILD dword ptr [ESP + 0x3c]
XOR EAX,EAX
FLD ST0
JMP 0x00015044
FSTP ST1
FXCH ST2
FLD ST0
ADD EAX,0x1
FMUL ST2
FXCH ST3
FCOMI ST0,ST3
JC 0x00015060
CMP EAX,0x8
JNZ 0x00015040
FSTP ST2
FSTP ST2
JMP 0x00015064
FSTP ST2
FSTP ST2
MOV ESI,dword ptr [ESP + 0x4c]
MOV EDI,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x18],EAX
XOR EAX,EAX
FDIVRP
ADD EDI,0x1
TEST ESI,ESI
SETZ AL
CMP dword ptr [ESP + 0x38],0x1
LEA ESI,[EDI + EAX*0x1 + 0x1]
JZ 0x00015860
FLD tword ptr [EBX + 0xffffa250]
FLD ST0
FSTP tword ptr [ESP + 0x28]
FCOMIP ST0,ST1
JA 0x00015650
FLD ST0
JMP 0x000150b0
FXCH
JMP 0x000150b0
FXCH
NOP
FSTP tword ptr [ESP + 0x28]
LEA EAX,[EBX + 0xffffa1e0]
SUB ESP,0x10
FSTP tword ptr [ESP]
PUSH EAX
PUSH -0x1
PUSH 0x1
MOV EBP,dword ptr [ESP + 0x50]
PUSH EBP
CALL 0x00012550
ADD ESP,0x14
PUSH EBP
CALL 0x000122e0
FLD tword ptr [ESP + 0x38]
ADD ESP,0x10
CMP EAX,ESI
JBE 0x00015830
FMUL dword ptr [EBX + 0xffffa24c]
FLD tword ptr [EBX + 0xffffa250]
FLD ST0
FSTP tword ptr [ESP + 0x28]
FCOMIP ST0,ST1
JBE 0x00015192
FLD dword ptr [EBX + 0xffffa248]
FXCH
FCOMI ST0,ST1
JNC 0x000159a0
FSTP ST1
FNSTCW word ptr [ESP + 0x66]
MOVZX EAX,word ptr [ESP + 0x66]
OR AH,0xc
MOV word ptr [ESP + 0x64],AX
FLD ST0
FLDCW word ptr [ESP + 0x64]
FISTP qword ptr [ESP + 0x68]
FLDCW word ptr [ESP + 0x66]
MOV ESI,dword ptr [ESP + 0x68]
MOV EDI,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0x28],ESI
MOV dword ptr [ESP + 0x2c],EDI
FILD qword ptr [ESP + 0x28]
TEST EDI,EDI
JNS 0x00015150
FADD dword ptr [EBX + 0xffffa244]
MOV EAX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x00015190
FXCH
FUCOMIP ST0,ST1
JP 0x00015164
JZ 0x00015192
FSTP ST0
JMP 0x00015166
FSTP ST0
ADD ESI,0x1
ADC EDI,0x0
MOV dword ptr [ESP + 0x28],ESI
MOV dword ptr [ESP + 0x2c],EDI
MOV EAX,dword ptr [ESP + 0x2c]
FILD qword ptr [ESP + 0x28]
TEST EAX,EAX
JS 0x00015a4a
JMP 0x00015192
FSTP ST1
FDIV dword ptr [EBX + 0xffffa24c]
SUB ESP,0x10
LEA EAX,[EBX + 0xffffa1da]
FSTP tword ptr [ESP]
PUSH EAX
PUSH -0x1
PUSH 0x1
MOV EDI,dword ptr [ESP + 0x50]
PUSH EDI
CALL 0x00012550
ADD ESP,0x14
PUSH EDI
CALL 0x000122e0
ADD ESP,0x10
MOV EDI,EAX
JMP 0x00015214
CMP dword ptr [ESP + 0x38],0x1
JZ 0x000151e3
FLD tword ptr [EBX + 0xffffa250]
FLD ST0
FSTP tword ptr [ESP + 0x18]
FCOMIP ST0,ST1
JA 0x000156f0
SUB ESP,0x10
LEA EAX,[EBX + 0xffffa1da]
FSTP tword ptr [ESP]
PUSH EAX
PUSH -0x1
PUSH 0x1
MOV EDI,dword ptr [ESP + 0x50]
PUSH EDI
CALL 0x00012550
ADD ESP,0x14
PUSH EDI
CALL 0x000122e0
ADD ESP,0x10
MOV dword ptr [ESP + 0x18],0xffffffff
MOV EDI,EAX
MOV ESI,dword ptr [ESP + 0x24]
SUB ESP,0x4
PUSH EAX
SUB ESI,EAX
PUSH dword ptr [ESP + 0x3c]
PUSH ESI
CALL 0x00012090
LEA EAX,[ESI + EDI*0x1]
MOV dword ptr [ESP + 0x50],EAX
ADD ESP,0x10
TEST byte ptr [ESP + 0xcc],0x4
JNZ 0x00015480
TEST byte ptr [ESP + 0xcc],0x80
JZ 0x0001526d
CMP dword ptr [ESP + 0x18],-0x1
JZ 0x00015540
MOV EAX,dword ptr [ESP + 0xcc]
MOV EDX,dword ptr [ESP + 0x18]
AND EAX,0x100
OR EDX,EAX
JNZ 0x00015900
MOV EAX,dword ptr [ESP + 0x24]
MOV byte ptr [EAX],0x0
MOV EAX,ESI
MOV EDX,dword ptr [ESP + 0x9c]
XOR EDX,dword ptr GS:[0x14]
JNZ 0x00015cd8
ADD ESP,0xac
POP EBX
POP ESI
POP EDI
POP EBP
RET
FADD dword ptr [EBX + 0xffffa244]
FMULP
TEST byte ptr [ESP + 0xcc],0x10
JNZ 0x00015036
JMP 0x000151c8
FADD dword ptr [EBX + 0xffffa244]
MOV EDX,dword ptr [ESP + 0x1c]
FDIVP
FILD qword ptr [ESP + 0x18]
TEST EDX,EDX
JNS 0x00015026
JMP 0x00015298
FADD dword ptr [EBX + 0xffffa244]
JMP 0x00014ff8
MOV EDI,dword ptr [ESP + 0x2c]
MOV ESI,dword ptr [ESP + 0x28]
MOV EDX,EDI
OR EDX,ESI
JZ 0x00014fe8
LEA EBP,[ESP + 0x68]
SUB ESP,0xc
MOV dword ptr [ESP + 0x64],EBP
PUSH EBP
PUSH EDI
PUSH ESI
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x24]
CALL 0x0001bee0
ADD ESP,0x20
MOV ECX,EDX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x6c]
OR EAX,dword ptr [ESP + 0x68]
JNZ 0x00014fe8
SUB ESP,0xc
PUSH EBP
MOV dword ptr [ESP + 0x38],EDX
MOV dword ptr [ESP + 0x3c],ECX
PUSH ECX
PUSH EDX
PUSH dword ptr [ESP + 0x34]
PUSH dword ptr [ESP + 0x34]
CALL 0x0001bee0
ADD ESP,0x14
IMUL ECX,dword ptr [ESP + 0x78],0xa
MOV EDI,EDX
MOV ESI,EAX
MOV EAX,0xa
MUL dword ptr [ESP + 0x74]
PUSH EBP
MOV EBP,EDI
MOV EDI,ESI
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
ADD EDX,ECX
PUSH EDX
PUSH EAX
CALL 0x0001bee0
ADD ESP,0x20
MOV EDX,dword ptr [ESP + 0x68]
MOV ECX,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0x54],EAX
SHLD ECX,EDX,0x1
ADD EDX,EDX
CMP EDX,dword ptr [ESP + 0x28]
MOV EAX,ECX
SBB EAX,dword ptr [ESP + 0x2c]
JNC 0x000158e0
MOV EAX,EDX
OR EAX,ECX
SETNZ AL
MOVZX EAX,AL
MOV ESI,EAX
MOV EAX,dword ptr [ESP + 0xcc]
AND EAX,0x10
MOV dword ptr [ESP + 0x60],EAX
JZ 0x0001578e
MOV ECX,dword ptr [ESP + 0x3c]
XOR EDX,EDX
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x2c],EDX
CMP EDI,ECX
MOV dword ptr [ESP + 0x28],ECX
MOV ECX,EBP
SBB ECX,EDX
JC 0x00015796
MOV dword ptr [ESP + 0x5c],EBX
MOV dword ptr [ESP + 0x40],EDI
MOV dword ptr [ESP + 0x44],EBP
JMP 0x00015413
XOR EDX,EDX
TEST ESI,ESI
SETNZ DL
MOV ESI,EDX
ADD dword ptr [ESP + 0x18],0x1
MOV EDI,EBX
CMP ECX,dword ptr [ESP + 0x28]
SBB EDI,dword ptr [ESP + 0x2c]
MOV EDX,dword ptr [ESP + 0x18]
JC 0x00015a90
CMP EDX,0x8
JZ 0x00015a58
SUB ESP,0xc
MOV EDI,ESI
PUSH dword ptr [ESP + 0x64]
SAR EDI,0x1
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x3c]
PUSH dword ptr [ESP + 0x5c]
PUSH dword ptr [ESP + 0x5c]
MOV EBX,dword ptr [ESP + 0x7c]
CALL 0x0001bee0
ADD ESP,0x20
MOV EBP,dword ptr [ESP + 0x3c]
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x68]
MOV EBX,EDX
MOV EDX,dword ptr [ESP + 0x54]
MOV dword ptr [ESP + 0x40],ECX
LEA EAX,[EAX + EAX*0x4]
MOV dword ptr [ESP + 0x44],EBX
LEA EAX,[EDX + EAX*0x2]
XOR EDX,EDX
DIV EBP
LEA EDX,[EDI + EDX*0x2]
MOV dword ptr [ESP + 0x54],EAX
ADD ESI,EDX
CMP EBP,EDX
JA 0x000153e8
XOR EDX,EDX
CMP dword ptr [ESP + 0x3c],ESI
SETC DL
MOV ESI,EDX
ADD ESI,0x2
JMP 0x000153f1
MOV EBP,dword ptr [ESP + 0x40]
SUB ESP,0xc
MOV EDI,0xffffffff
PUSH dword ptr [ESP + 0x1c]
SUB EBP,ESI
CALL 0x000122e0
ADD ESP,0x10
MOV dword ptr [ESP + 0x38],EAX
PUSH 0x29
PUSH EBP
PUSH ESI
LEA EAX,[ESP + 0x7f]
MOV dword ptr [ESP + 0x34],EAX
PUSH EAX
CALL 0x00012290
ADD ESP,0x10
MOV EAX,EBP
MOV ESI,dword ptr [ESP + 0x40]
MOV EBP,EDI
MOV EDI,EAX
LEA ESI,[ESI]
MOV ECX,dword ptr [ESP]
MOVZX EAX,byte ptr [ECX]
TEST AL,AL
JZ 0x000154da
CMP AL,0x7f
MOVZX EDX,AL
CMOVNC EDX,EDI
ADD ECX,0x1
MOV dword ptr [ESP],ECX
MOV EBP,EDX
CMP EBP,EDI
JBE 0x00015500
SUB ESP,0x4
SUB ESI,EDI
PUSH EDI
PUSH dword ptr [ESP + 0x30]
PUSH ESI
CALL 0x000120b0
ADD ESP,0x10
JMP 0x00015240
MOV EAX,dword ptr [ESP + 0x28]
SUB EDI,EBP
SUB ESP,0x4
SUB ESI,EBP
PUSH EBP
ADD EAX,EDI
PUSH EAX
PUSH ESI
CALL 0x000120b0
ADD ESP,0x10
TEST EDI,EDI
JZ 0x00015240
MOV EAX,dword ptr [ESP + 0x38]
SUB ESP,0x4
SUB ESI,EAX
PUSH EAX
PUSH dword ptr [ESP + 0x18]
PUSH ESI
CALL 0x000120b0
ADD ESP,0x10
JMP 0x000154c0
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,0x1
MOV ECX,dword ptr [ESP + 0xc]
CMP EAX,EDX
MOV EAX,0x0
SBB EAX,ECX
JNC 0x00015a3d
MOV EAX,dword ptr [ESP + 0x3c]
XOR EDX,EDX
MOV EDI,0x1
MOV dword ptr [ESP + 0x14],0x0
MOV dword ptr [ESP + 0x4],EDX
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,0x1
MOV dword ptr [ESP],EAX
NOP
MOV EDX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [ESP + 0x14]
IMUL EDX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [ESP]
IMUL ECX,dword ptr [ESP]
ADD ECX,EDX
MUL dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x4],EDX
MOV EDX,dword ptr [ESP + 0xc]
ADD dword ptr [ESP + 0x4],ECX
MOV ECX,dword ptr [ESP + 0x4]
MOV dword ptr [ESP],EAX
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [ESP],EAX
SBB ECX,EDX
JNC 0x000155c0
ADD EDI,0x1
CMP EDI,0x8
JNZ 0x00015580
MOV EAX,dword ptr [ESP + 0xcc]
MOV dword ptr [ESP + 0x18],EDI
AND EAX,0x100
TEST byte ptr [ESP + 0xcc],0x40
JZ 0x000155fb
MOV EDX,dword ptr [ESP + 0x34]
LEA ECX,[EDX + 0x288]
MOV byte ptr [EDX + 0x287],0x20
MOV dword ptr [ESP + 0x24],ECX
MOV ECX,dword ptr [ESP + 0x18]
TEST ECX,ECX
JZ 0x00015ce5
MOV EDX,dword ptr [ESP + 0x4c]
TEST EDX,EDX
JNZ 0x0001560e
CMP dword ptr [ESP + 0x18],0x1
JZ 0x00015a70
MOV ECX,dword ptr [ESP + 0x18]
MOV EDI,dword ptr [ESP + 0x24]
MOVZX ECX,byte ptr [EBX + ECX*0x1 + 0xffffa238]
LEA EDX,[EDI + 0x1]
MOV byte ptr [EDI],CL
TEST EAX,EAX
JZ 0x00015a82
MOV EAX,dword ptr [ESP + 0x4c]
TEST EAX,EAX
JNZ 0x00015918
LEA EAX,[EDX + 0x1]
MOV byte ptr [EDX],0x42
MOV dword ptr [ESP + 0x24],EAX
JMP 0x0001526d
FLD dword ptr [EBX + 0xffffa248]
FXCH
FCOMI ST0,ST1
JNC 0x00015960
FSTP ST1
FNSTCW word ptr [ESP + 0x66]
MOVZX EAX,word ptr [ESP + 0x66]
OR AH,0xc
MOV word ptr [ESP + 0x64],AX
FLD ST0
FLDCW word ptr [ESP + 0x64]
FISTP qword ptr [ESP + 0x68]
FLDCW word ptr [ESP + 0x66]
MOV EAX,dword ptr [ESP + 0x68]
MOV EDX,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [ESP + 0x2c],EDX
FILD qword ptr [ESP + 0x28]
TEST EDX,EDX
JNS 0x0001569f
FADD dword ptr [EBX + 0xffffa244]
MOV ECX,dword ptr [ESP + 0x38]
TEST ECX,ECX
JNZ 0x000150a8
FXCH
FUCOMI ST0,ST1
JP 0x000156bb
JZ 0x000150b0
FSTP ST1
JMP 0x000156c0
FSTP ST1
LEA ESI,[ESI]
ADD EAX,0x1
ADC EDX,0x0
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [ESP + 0x2c],EDX
MOV EAX,dword ptr [ESP + 0x2c]
FILD qword ptr [ESP + 0x28]
TEST EAX,EAX
JNS 0x000150ac
FADD dword ptr [EBX + 0xffffa244]
FXCH
JMP 0x000150b0
FLD dword ptr [EBX + 0xffffa248]
FXCH
FCOMI ST0,ST1
JNC 0x00015928
FSTP ST1
FNSTCW word ptr [ESP + 0x66]
MOVZX EAX,word ptr [ESP + 0x66]
OR AH,0xc
MOV word ptr [ESP + 0x64],AX
FLD ST0
FLDCW word ptr [ESP + 0x64]
FISTP qword ptr [ESP + 0x68]
FLDCW word ptr [ESP + 0x66]
MOV ESI,dword ptr [ESP + 0x68]
MOV EDI,dword ptr [ESP + 0x6c]
MOV dword ptr [ESP + 0x18],ESI
MOV dword ptr [ESP + 0x1c],EDI
FILD qword ptr [ESP + 0x18]
TEST EDI,EDI
JNS 0x0001573f
FADD dword ptr [EBX + 0xffffa244]
MOV EBP,dword ptr [ESP + 0x38]
TEST EBP,EBP
JNZ 0x00015760
FXCH
FUCOMIP ST0,ST1
JP 0x000159d6
JNZ 0x000159e0
JMP 0x00015762
FSTP ST1
JMP 0x000151e3
MOV EAX,dword ptr [ESP + 0xcc]
XOR ESI,ESI
MOV dword ptr [ESP + 0x54],0x0
AND EAX,0x10
MOV dword ptr [ESP + 0x60],EAX
JNZ 0x000153b5
MOV dword ptr [ESP + 0x18],0xffffffff
MOV EAX,dword ptr [ESP + 0x24]
CMP dword ptr [ESP + 0x38],0x1
MOV dword ptr [ESP + 0x40],EAX
JZ 0x000158a0
MOV EAX,dword ptr [ESP + 0x38]
TEST EAX,EAX
JNZ 0x000157e0
MOV EAX,dword ptr [ESP + 0x54]
ADD EAX,ESI
TEST EAX,EAX
JLE 0x000157e0
MOV ESI,dword ptr [ESP + 0x60]
ADD EDI,0x1
ADC EBP,0x0
TEST ESI,ESI
JZ 0x000157e0
MOV EAX,dword ptr [ESP + 0x3c]
MOV EDX,EBP
XOR EAX,EDI
OR EDX,EAX
JZ 0x00015a0b
LEA ESI,[ESI]
MOV ESI,dword ptr [ESP + 0x40]
JMP 0x000157f4
MOV EDI,EAX
MOV EBP,EDX
PUSH 0x0
SUB ESI,0x1
PUSH 0xa
PUSH EBP
PUSH EDI
CALL 0x0001bda0
ADD ESP,0x10
ADD EAX,0x30
MOV byte ptr [ESI],AL
PUSH 0x0
PUSH 0xa
PUSH EBP
PUSH EDI
CALL 0x0001bc90
MOV ECX,0x9
ADD ESP,0x10
CMP ECX,EDI
MOV ECX,0x0
SBB ECX,EBP
JC 0x000157f0
JMP 0x00015232
TEST byte ptr [ESP + 0xcc],0x8
JZ 0x00015850
MOV EDX,dword ptr [ESP + 0x34]
CMP byte ptr [EDX + EAX*0x1 + -0x1],0x30
JZ 0x00015b70
FSTP ST0
JMP 0x00015852
FSTP ST0
MOV EDX,EAX
SUB EDX,EDI
MOV EDI,EDX
JMP 0x00015214
SUB ESP,0x10
LEA EAX,[EBX + 0xffffa1e0]
FLD ST0
FSTP tword ptr [ESP]
FSTP tword ptr [ESP + 0x38]
PUSH EAX
PUSH -0x1
PUSH 0x1
MOV EBP,dword ptr [ESP + 0x50]
PUSH EBP
CALL 0x00012550
ADD ESP,0x14
PUSH EBP
CALL 0x000122e0
FLD tword ptr [ESP + 0x38]
ADD ESP,0x10
CMP EAX,ESI
JBE 0x00015830
FMUL dword ptr [EBX + 0xffffa24c]
JMP 0x00015192
MOV ECX,EDI
XOR EDX,EDX
MOV dword ptr [ESP + 0x28],ESI
SAR ESI,0x1f
AND ECX,0x1
MOV dword ptr [ESP + 0x2c],ESI
MOV EAX,ECX
ADD EAX,dword ptr [ESP + 0x28]
ADC EDX,dword ptr [ESP + 0x2c]
MOV ECX,EAX
XOR EAX,EAX
OR ECX,EDX
SETNZ AL
ADD EAX,dword ptr [ESP + 0x54]
CMP EAX,0x5
MOV EAX,dword ptr [ESP + 0x24]
JLE 0x000157e0
MOV dword ptr [ESP + 0x40],EAX
JMP 0x000157bb
MOV EAX,dword ptr [ESP + 0x2c]
CMP dword ptr [ESP + 0x28],EDX
MOV ESI,0x3
SBB EAX,ECX
MOV EAX,0x2
CMOVNC ESI,EAX
JMP 0x000153a1
TEST byte ptr [ESP + 0xcc],0x40
JZ 0x000155ef
JMP 0x000155da
LEA EDX,[EDI + 0x2]
MOV byte ptr [EDI + 0x1],0x69
JMP 0x00015637
FNSTCW word ptr [ESP + 0x66]
FSUBR ST1,ST0
FXCH
MOVZX EAX,word ptr [ESP + 0x66]
OR AH,0xc
MOV word ptr [ESP + 0x64],AX
FLDCW word ptr [ESP + 0x64]
FISTP qword ptr [ESP + 0x68]
FLDCW word ptr [ESP + 0x66]
MOV EDI,dword ptr [ESP + 0x6c]
MOV ESI,dword ptr [ESP + 0x68]
LEA EAX,[EDI + 0x80000000]
MOV EDI,EAX
JMP 0x00015729
FNSTCW word ptr [ESP + 0x66]
FSUBR ST1,ST0
FXCH
MOVZX EAX,word ptr [ESP + 0x66]
OR AH,0xc
MOV word ptr [ESP + 0x64],AX
FLDCW word ptr [ESP + 0x64]
FISTP qword ptr [ESP + 0x68]
FLDCW word ptr [ESP + 0x66]
MOV EDX,dword ptr [ESP + 0x6c]
MOV EAX,dword ptr [ESP + 0x68]
LEA ECX,[EDX + 0x80000000]
MOV EDX,ECX
JMP 0x00015689
FNSTCW word ptr [ESP + 0x66]
FSUBR ST1,ST0
FXCH
MOVZX EAX,word ptr [ESP + 0x66]
OR AH,0xc
MOV word ptr [ESP + 0x64],AX
FLDCW word ptr [ESP + 0x64]
FISTP qword ptr [ESP + 0x68]
FLDCW word ptr [ESP + 0x66]
MOV EDI,dword ptr [ESP + 0x6c]
MOV ESI,dword ptr [ESP + 0x68]
LEA EAX,[EDI + 0x80000000]
MOV EDI,EAX
JMP 0x0001513a
FSTP ST0
JMP 0x000159e2
FSTP ST0
ADD ESI,0x1
ADC EDI,0x0
MOV dword ptr [ESP + 0x18],ESI
MOV dword ptr [ESP + 0x1c],EDI
MOV EDI,dword ptr [ESP + 0x1c]
FILD qword ptr [ESP + 0x18]
TEST EDI,EDI
JNS 0x00015762
FADD dword ptr [EBX + 0xffffa244]
JMP 0x000151e3
MOV EAX,dword ptr [ESP + 0x18]
CMP EAX,0x8
JZ 0x000157e0
ADD EAX,0x1
MOV dword ptr [ESP + 0x18],EAX
TEST byte ptr [ESP + 0xcc],0x8
JZ 0x00015c30
MOV EAX,dword ptr [ESP + 0x40]
LEA ESI,[EAX + -0x1]
MOV byte ptr [EAX + -0x1],0x31
JMP 0x00015232
MOV dword ptr [ESP + 0x18],0x0
JMP 0x00015255
FADD dword ptr [EBX + 0xffffa244]
JMP 0x00015192
MOV EBX,dword ptr [ESP + 0x5c]
MOV EDI,dword ptr [ESP + 0x40]
MOV EBP,dword ptr [ESP + 0x44]
JMP 0x00015796
MOV EBX,dword ptr [ESP + 0x24]
LEA EDX,[EBX + 0x1]
MOV byte ptr [EBX],0x6b
TEST EAX,EAX
JNZ 0x00015637
MOV dword ptr [ESP + 0x24],EDX
JMP 0x0001526d
MOV EDI,dword ptr [ESP + 0x40]
MOV EBP,dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x28],ECX
MOV ECX,EAX
MOV dword ptr [ESP + 0x2c],EBX
MOV EAX,0x9
CMP EAX,dword ptr [ESP + 0x28]
MOV EAX,0x0
SBB EAX,dword ptr [ESP + 0x2c]
MOV EBX,dword ptr [ESP + 0x5c]
JC 0x00015796
CMP dword ptr [ESP + 0x38],0x1
JZ 0x00015b96
MOV EAX,dword ptr [ESP + 0x38]
TEST EAX,EAX
SETZ DL
TEST ESI,ESI
SETG AL
AND EAX,EDX
TEST AL,AL
JNZ 0x00015b86
TEST ECX,ECX
JNZ 0x00015cdd
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x40],EAX
TEST byte ptr [ESP + 0xcc],0x8
JNZ 0x00015b3b
MOV EAX,0x30
MOV ECX,dword ptr [ESP + 0x34]
MOV byte ptr [ECX + 0x286],AL
LEA EDX,[ECX + 0x286]
MOV EAX,dword ptr [ESP + 0x48]
MOV ECX,EDX
SUB ECX,EAX
MOV dword ptr [ESP + 0x40],ECX
CMP EAX,0x4
JNC 0x00015bcc
MOV EDX,EAX
TEST EAX,EAX
JZ 0x00015b39
MOV EAX,dword ptr [ESP + 0x50]
AND EDX,0x2
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ECX],AL
JNZ 0x00015b53
XOR ESI,ESI
CMP dword ptr [ESP + 0x38],0x1
JZ 0x000157e0
MOV dword ptr [ESP + 0x54],0x0
JMP 0x000157a9
MOV EAX,dword ptr [ESP + 0x50]
MOV EDX,dword ptr [ESP + 0x48]
MOV ECX,dword ptr [ESP + 0x40]
MOVZX EAX,word ptr [EAX + EDX*0x1 + -0x2]
MOV word ptr [ECX + EDX*0x1 + -0x2],AX
JMP 0x00015b39
CMP dword ptr [ESP + 0x38],0x1
FMUL dword ptr [EBX + 0xffffa24c]
JNZ 0x000150ed
JMP 0x00015192
LEA EAX,[ECX + 0x1]
CMP EAX,0xa
JZ 0x00015ba8
ADD EAX,0x30
JMP 0x00015b00
MOV EAX,ECX
AND EAX,0x1
ADD EAX,ESI
CMP EAX,0x2
SETG AL
JMP 0x00015ad9
MOV EDI,dword ptr [ESP + 0x28]
MOV EBP,dword ptr [ESP + 0x2c]
ADD EDI,0x1
ADC EBP,0x0
MOV EAX,EDI
XOR EAX,0xa
MOV EDX,EBP
OR EDX,EAX
JZ 0x00015c80
XOR ESI,ESI
JMP 0x00015ae9
MOV ECX,dword ptr [ESP + 0x50]
MOV ESI,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ECX]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESP + 0x48]
MOV dword ptr [ESP + 0x50],ECX
MOV EAX,dword ptr [ECX + EAX*0x1 + -0x4]
MOV dword ptr [EDX + -0x4],EAX
MOV EAX,ESI
LEA ESI,[ESI + 0x4]
MOV EDX,dword ptr [ESP + 0x50]
AND ESI,0xfffffffc
SUB EAX,ESI
MOV ECX,EAX
ADD ECX,dword ptr [ESP + 0x48]
SUB EDX,EAX
AND ECX,0xfffffffc
CMP ECX,0x4
JC 0x00015b39
MOV dword ptr [ESP + 0x28],EDI
AND ECX,0xfffffffc
XOR EAX,EAX
MOV dword ptr [ESP + 0x2c],EBP
MOV EDI,dword ptr [EDX + EAX*0x1]
MOV dword ptr [ESI + EAX*0x1],EDI
ADD EAX,0x4
CMP EAX,ECX
JC 0x00015c16
MOV EDI,dword ptr [ESP + 0x28]
MOV EBP,dword ptr [ESP + 0x2c]
JMP 0x00015b39
MOV EDX,dword ptr [ESP + 0x48]
MOV ECX,dword ptr [ESP + 0x40]
MOV EAX,EDX
MOV byte ptr [ECX + -0x1],0x30
NOT EAX
ADD ECX,EAX
MOV dword ptr [ESP + 0x40],ECX
CMP EDX,0x4
JNC 0x00015c8d
TEST EDX,EDX
JZ 0x00015a2d
MOV EAX,dword ptr [ESP + 0x50]
AND DL,0x2
MOVZX EAX,byte ptr [EAX]
MOV byte ptr [ECX],AL
JZ 0x00015a2d
MOV EAX,dword ptr [ESP + 0x50]
MOV EDX,dword ptr [ESP + 0x48]
MOV ECX,dword ptr [ESP + 0x40]
MOVZX EAX,word ptr [EAX + EDX*0x1 + -0x2]
MOV word ptr [ECX + EDX*0x1 + -0x2],AX
JMP 0x00015a2d
MOV EAX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x40],EAX
JMP 0x00015b39
MOV ECX,dword ptr [ESP + 0x50]
MOV EDX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ECX]
MOV dword ptr [EDX],EAX
MOV EDI,dword ptr [ESP + 0x48]
MOV EAX,dword ptr [ECX + EDI*0x1 + -0x4]
MOV dword ptr [EDX + EDI*0x1 + -0x4],EAX
MOV EAX,EDX
ADD EDX,0x4
AND EDX,0xfffffffc
SUB EAX,EDX
SUB ECX,EAX
ADD EAX,EDI
AND EAX,0xfffffffc
CMP EAX,0x4
JC 0x00015a2d
AND EAX,0xfffffffc
MOV ESI,EAX
XOR EAX,EAX
MOV EDI,dword ptr [ECX + EAX*0x1]
MOV dword ptr [EDX + EAX*0x1],EDI
ADD EAX,0x4
CMP EAX,ESI
JC 0x00015cc6
JMP 0x00015a2d
CALL 0x0001c140
LEA EAX,[ECX + 0x30]
JMP 0x00015b00
MOV EDX,dword ptr [ESP + 0x24]
TEST EAX,EAX
JNZ 0x00015637
JMP 0x0001526d
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nchar * FUN_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  bool bVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  lconv *plVar9;\n  size_t sVar10;\n  char *pcVar11;\n  size_t __n;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  longdouble lVar18;\n  longdouble lVar19;\n  longdouble lVar20;\n  longlong lVar21;\n  undefined8 uVar22;\n  longlong lVar23;\n  byte *local_bc;\n  uint local_b8;\n  undefined8 local_a4;\n  char *local_98;\n  undefined1 local_94 [8];\n  undefined2 uStack_8c;\n  char *local_7c;\n  uint local_74;\n  char *local_6c;\n  uint local_68;\n  undefined8 *local_64;\n  uint local_5c;\n  undefined8 local_54;\n  undefined1 local_49 [41];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x14e59;\n  local_a4 = CONCAT44(param_2,param_1);\n  _local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar6 = param_4 & 3;\n  uVar7 = param_4 & 0x20;\n  uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;\n  plVar9 = localeconv();\n  local_6c = plVar9->decimal_point;\n  local_74 = strlen(local_6c);\n  if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }\n  local_bc = (byte *)plVar9->grouping;\n  pcVar16 = plVar9->thousands_sep;\n  sVar10 = strlen(pcVar16);\n  pcVar11 = "";\n  if (sVar10 < 0x11) {\n    pcVar11 = pcVar16;\n  }\n  local_98 = param_3 + 0x287;\n  local_7c = local_98;\n  if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }\n  else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }\n  if ((param_4 & 4) != 0) {\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }\nLAB_00015240:\n  if ((param_4 & 0x80) == 0) goto LAB_0001526d;\n  if ((int)local_a4 == -1) {\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }\n  local_98 = pcVar11 + 1;\n  *pcVar11 = 'B';\nLAB_0001526d:\n  *local_98 = '\0';\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar16;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0001c140();\n}\n\n" comment comment (function_definition "char * FUN_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  bool bVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  lconv *plVar9;\n  size_t sVar10;\n  char *pcVar11;\n  size_t __n;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  longdouble lVar18;\n  longdouble lVar19;\n  longdouble lVar20;\n  longlong lVar21;\n  undefined8 uVar22;\n  longlong lVar23;\n  byte *local_bc;\n  uint local_b8;\n  undefined8 local_a4;\n  char *local_98;\n  undefined1 local_94 [8];\n  undefined2 uStack_8c;\n  char *local_7c;\n  uint local_74;\n  char *local_6c;\n  uint local_68;\n  undefined8 *local_64;\n  uint local_5c;\n  undefined8 local_54;\n  undefined1 local_49 [41];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x14e59;\n  local_a4 = CONCAT44(param_2,param_1);\n  _local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar6 = param_4 & 3;\n  uVar7 = param_4 & 0x20;\n  uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;\n  plVar9 = localeconv();\n  local_6c = plVar9->decimal_point;\n  local_74 = strlen(local_6c);\n  if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }\n  local_bc = (byte *)plVar9->grouping;\n  pcVar16 = plVar9->thousands_sep;\n  sVar10 = strlen(pcVar16);\n  pcVar11 = "";\n  if (sVar10 < 0x11) {\n    pcVar11 = pcVar16;\n  }\n  local_98 = param_3 + 0x287;\n  local_7c = local_98;\n  if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }\n  else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }\n  if ((param_4 & 4) != 0) {\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }\nLAB_00015240:\n  if ((param_4 & 0x80) == 0) goto LAB_0001526d;\n  if ((int)local_a4 == -1) {\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }\n  local_98 = pcVar11 + 1;\n  *pcVar11 = 'B';\nLAB_0001526d:\n  *local_98 = '\0';\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar16;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0001c140();\n}" primitive_type (pointer_declarator "* FUN_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)" * (function_declarator "FUN_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)" identifier (parameter_list "(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "uint param_6" type_identifier identifier) , (parameter_declaration "uint param_7" type_identifier identifier) , (parameter_declaration "uint param_8" type_identifier identifier) )))) (compound_statement "{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  bool bVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  lconv *plVar9;\n  size_t sVar10;\n  char *pcVar11;\n  size_t __n;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  longdouble lVar18;\n  longdouble lVar19;\n  longdouble lVar20;\n  longlong lVar21;\n  undefined8 uVar22;\n  longlong lVar23;\n  byte *local_bc;\n  uint local_b8;\n  undefined8 local_a4;\n  char *local_98;\n  undefined1 local_94 [8];\n  undefined2 uStack_8c;\n  char *local_7c;\n  uint local_74;\n  char *local_6c;\n  uint local_68;\n  undefined8 *local_64;\n  uint local_5c;\n  undefined8 local_54;\n  undefined1 local_49 [41];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x14e59;\n  local_a4 = CONCAT44(param_2,param_1);\n  _local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar6 = param_4 & 3;\n  uVar7 = param_4 & 0x20;\n  uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;\n  plVar9 = localeconv();\n  local_6c = plVar9->decimal_point;\n  local_74 = strlen(local_6c);\n  if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }\n  local_bc = (byte *)plVar9->grouping;\n  pcVar16 = plVar9->thousands_sep;\n  sVar10 = strlen(pcVar16);\n  pcVar11 = "";\n  if (sVar10 < 0x11) {\n    pcVar11 = pcVar16;\n  }\n  local_98 = param_3 + 0x287;\n  local_7c = local_98;\n  if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }\n  else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }\n  if ((param_4 & 4) != 0) {\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }\nLAB_00015240:\n  if ((param_4 & 0x80) == 0) goto LAB_0001526d;\n  if ((int)local_a4 == -1) {\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }\n  local_98 = pcVar11 + 1;\n  *pcVar11 = 'B';\nLAB_0001526d:\n  *local_98 = '\0';\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar16;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0001c140();\n}" { (declaration "ulonglong uVar1;" type_identifier identifier ;) (declaration "ulonglong uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "lconv *plVar9;" type_identifier (pointer_declarator "*plVar9" * identifier) ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longdouble lVar18;" type_identifier identifier ;) (declaration "longdouble lVar19;" type_identifier identifier ;) (declaration "longdouble lVar20;" type_identifier identifier ;) (declaration "longlong lVar21;" type_identifier identifier ;) (declaration "undefined8 uVar22;" type_identifier identifier ;) (declaration "longlong lVar23;" type_identifier identifier ;) (declaration "byte *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "undefined8 local_a4;" type_identifier identifier ;) (declaration "char *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined1 local_94 [8];" type_identifier (array_declarator "local_94 [8]" identifier [ number_literal ]) ;) (declaration "undefined2 uStack_8c;" type_identifier identifier ;) (declaration "char *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "char *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "undefined8 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined8 local_54;" type_identifier identifier ;) (declaration "undefined1 local_49 [41];" type_identifier (array_declarator "local_49 [41]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x14e59;" (assignment_expression "uStack_14 = 0x14e59" identifier = number_literal) ;) (expression_statement "local_a4 = CONCAT44(param_2,param_1);" (assignment_expression "local_a4 = CONCAT44(param_2,param_1)" identifier = (call_expression "CONCAT44(param_2,param_1)" identifier (argument_list "(param_2,param_1)" ( identifier , identifier )))) ;) (expression_statement "_local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);" (assignment_expression "_local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5)" identifier = (call_expression "CONCAT64(CONCAT24(uStack_8c,param_6),param_5)" identifier (argument_list "(CONCAT24(uStack_8c,param_6),param_5)" ( (call_expression "CONCAT24(uStack_8c,param_6)" identifier (argument_list "(uStack_8c,param_6)" ( identifier , identifier ))) , identifier )))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = param_4 & 3;" (assignment_expression "uVar6 = param_4 & 3" identifier = (binary_expression "param_4 & 3" identifier & number_literal)) ;) (expression_statement "uVar7 = param_4 & 0x20;" (assignment_expression "uVar7 = param_4 & 0x20" identifier = (binary_expression "param_4 & 0x20" identifier & number_literal)) ;) (expression_statement "uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;" (assignment_expression "uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400" identifier = (binary_expression "(-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400" (parenthesized_expression "(-(uint)(uVar7 == 0) & 0xffffffe8)" ( (binary_expression "-(uint)(uVar7 == 0) & 0xffffffe8" (unary_expression "-(uint)(uVar7 == 0)" - (call_expression "(uint)(uVar7 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) (expression_statement "plVar9 = localeconv();" (assignment_expression "plVar9 = localeconv()" identifier = (call_expression "localeconv()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_6c = plVar9->decimal_point;" (assignment_expression "local_6c = plVar9->decimal_point" identifier = (field_expression "plVar9->decimal_point" identifier -> field_identifier)) ;) (expression_statement "local_74 = strlen(local_6c);" (assignment_expression "local_74 = strlen(local_6c)" identifier = (call_expression "strlen(local_6c)" identifier (argument_list "(local_6c)" ( identifier )))) ;) (if_statement "if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }" if (parenthesized_expression "(0xf < local_74 - 1)" ( (binary_expression "0xf < local_74 - 1" number_literal < (binary_expression "local_74 - 1" identifier - number_literal)) )) (compound_statement "{\n    local_74 = 1;\n    local_6c = ".";\n  }" { (expression_statement "local_74 = 1;" (assignment_expression "local_74 = 1" identifier = number_literal) ;) (expression_statement "local_6c = ".";" (assignment_expression "local_6c = "."" identifier = (string_literal ""."" " string_content ")) ;) })) (expression_statement "local_bc = (byte *)plVar9->grouping;" (assignment_expression "local_bc = (byte *)plVar9->grouping" identifier = (cast_expression "(byte *)plVar9->grouping" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar9->grouping" identifier -> field_identifier))) ;) (expression_statement "pcVar16 = plVar9->thousands_sep;" (assignment_expression "pcVar16 = plVar9->thousands_sep" identifier = (field_expression "plVar9->thousands_sep" identifier -> field_identifier)) ;) (expression_statement "sVar10 = strlen(pcVar16);" (assignment_expression "sVar10 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) (if_statement "if (sVar10 < 0x11) {\n    pcVar11 = pcVar16;\n  }" if (parenthesized_expression "(sVar10 < 0x11)" ( (binary_expression "sVar10 < 0x11" identifier < number_literal) )) (compound_statement "{\n    pcVar11 = pcVar16;\n  }" { (expression_statement "pcVar11 = pcVar16;" (assignment_expression "pcVar11 = pcVar16" identifier = identifier) ;) })) (expression_statement "local_98 = param_3 + 0x287;" (assignment_expression "local_98 = param_3 + 0x287" identifier = (binary_expression "param_3 + 0x287" identifier + number_literal)) ;) (expression_statement "local_7c = local_98;" (assignment_expression "local_7c = local_98" identifier = identifier) ;) (if_statement "if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }\n  else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }" if (parenthesized_expression "(param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7))" ( (binary_expression "param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)" (binary_expression "param_6 < param_8" identifier < identifier) || (binary_expression "param_6 - param_8 < (uint)(param_5 < param_7)" (binary_expression "param_6 - param_8" identifier - identifier) < (call_expression "(uint)(param_5 < param_7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_5 < param_7)" ( (binary_expression "param_5 < param_7" identifier < identifier) ))))) )) (compound_statement "{\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }" { (if_statement "if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }" if (parenthesized_expression "(param_6 != 0 || param_5 != 0)" ( (binary_expression "param_6 != 0 || param_5 != 0" (binary_expression "param_6 != 0" identifier != number_literal) || (binary_expression "param_5 != 0" identifier != number_literal)) )) (compound_statement "{\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }" { (expression_statement "uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);" (assignment_expression "uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54)" identifier = (call_expression "FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54)" identifier (argument_list "(param_7,param_8,param_5,param_6,&local_54)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (expression_statement "uVar15 = (uint)((ulonglong)uVar22 >> 0x20);" (assignment_expression "uVar15 = (uint)((ulonglong)uVar22 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar22 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar22 >> 0x20)" ( (binary_expression "(ulonglong)uVar22 >> 0x20" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }" if (parenthesized_expression "(local_54._4_4_ == 0 && (uint)local_54 == 0)" ( (binary_expression "local_54._4_4_ == 0 && (uint)local_54 == 0" (binary_expression "local_54._4_4_ == 0" (field_expression "local_54._4_4_" identifier . field_identifier) == number_literal) && (binary_expression "(uint)local_54 == 0" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal)) )) (compound_statement "{\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }" { (expression_statement "lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);" (assignment_expression "lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54)" identifier = (call_expression "FUN_0001bee0(param_1,param_2,uVar22,&local_54)" identifier (argument_list "(param_1,param_2,uVar22,&local_54)" ( identifier , identifier , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (expression_statement "lVar21 = (local_54 & 0xffffffff) * 10;" (assignment_expression "lVar21 = (local_54 & 0xffffffff) * 10" identifier = (binary_expression "(local_54 & 0xffffffff) * 10" (parenthesized_expression "(local_54 & 0xffffffff)" ( (binary_expression "local_54 & 0xffffffff" identifier & number_literal) )) * number_literal)) ;) (expression_statement "local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);" (assignment_expression "local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54)" identifier = (call_expression "FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54)" identifier (argument_list "((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54)" ( (cast_expression "(int)lVar21" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10" (cast_expression "(int)((ulonglong)lVar21 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar21 >> 0x20)" ( (binary_expression "(ulonglong)lVar21 >> 0x20" (cast_expression "(ulonglong)lVar21" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "local_54._4_4_ * 10" (field_expression "local_54._4_4_" identifier . field_identifier) * number_literal)) , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (expression_statement "uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;" (assignment_expression "uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f" identifier = (binary_expression "local_54._4_4_ << 1 | (uint)local_54 >> 0x1f" (binary_expression "local_54._4_4_ << 1" (field_expression "local_54._4_4_" identifier . field_identifier) << number_literal) | (binary_expression "(uint)local_54 >> 0x1f" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal))) ;) (expression_statement "uVar12 = (uint)local_54 * 2;" (assignment_expression "uVar12 = (uint)local_54 * 2" identifier = (binary_expression "(uint)local_54 * 2" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ;) (if_statement "if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }" if (parenthesized_expression "(uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22))" ( (binary_expression "uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)" (binary_expression "uVar14 < uVar15" identifier < identifier) || (binary_expression "uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)" (binary_expression "uVar14 - uVar15" identifier - identifier) < (call_expression "(uint)(uVar12 < (uint)uVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < (uint)uVar22)" ( (binary_expression "uVar12 < (uint)uVar22" identifier < (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }" { (expression_statement "uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);" (assignment_expression "uVar17 = (uint)(uVar12 != 0 || uVar14 != 0)" identifier = (call_expression "(uint)(uVar12 != 0 || uVar14 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 != 0 || uVar14 != 0)" ( (binary_expression "uVar12 != 0 || uVar14 != 0" (binary_expression "uVar12 != 0" identifier != number_literal) || (binary_expression "uVar14 != 0" identifier != number_literal)) )))) ;) }) (else_clause "else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }" else (compound_statement "{\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }" { (expression_statement "uVar17 = 3;" (assignment_expression "uVar17 = 3" identifier = number_literal) ;) (if_statement "if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }" if (parenthesized_expression "(uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14)" ( (binary_expression "uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14" (binary_expression "uVar14 <= uVar15" identifier <= identifier) && (binary_expression "(uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14" (call_expression "(uint)((uint)uVar22 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar22 < uVar12)" ( (binary_expression "(uint)uVar22 < uVar12" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))) <= (binary_expression "uVar15 - uVar14" identifier - identifier))) )) (compound_statement "{\n            uVar17 = 2;\n          }" { (expression_statement "uVar17 = 2;" (assignment_expression "uVar17 = 2" identifier = number_literal) ;) })) }))) (if_statement "if ((param_4 & 0x10) != 0) goto LAB_000153b5;" if (parenthesized_expression "((param_4 & 0x10) != 0)" ( (binary_expression "(param_4 & 0x10) != 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000153b5;" goto statement_identifier ;)) (labeled_statement "LAB_0001578e:\n        local_a4._0_4_ = -1;" statement_identifier : (expression_statement "local_a4._0_4_ = -1;" (assignment_expression "local_a4._0_4_ = -1" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;)) (labeled_statement "LAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;" statement_identifier : (if_statement "if (uVar6 != 1) goto LAB_000157a9;" if (parenthesized_expression "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )) (goto_statement "goto LAB_000157a9;" goto statement_identifier ;))) (expression_statement "uVar6 = (uint)lVar23 & 1;" (assignment_expression "uVar6 = (uint)lVar23 & 1" identifier = (binary_expression "(uint)lVar23 & 1" (cast_expression "(uint)lVar23" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "pcVar16 = local_98;" (assignment_expression "pcVar16 = local_98" identifier = identifier) ;) (if_statement "if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;" if (parenthesized_expression "(5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68))" ( (binary_expression "5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)" number_literal < (cast_expression "(int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)" ( (binary_expression "(uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68" (parenthesized_expression "(uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17))" ( (binary_expression "uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)" (binary_expression "uVar6 + uVar17 != 0" (binary_expression "uVar6 + uVar17" identifier + identifier) != number_literal) || (call_expression "CARRY4(uVar6,uVar17)" identifier (argument_list "(uVar6,uVar17)" ( identifier , identifier )))) )) + identifier) )))) )) (goto_statement "goto LAB_000157bb;" goto statement_identifier ;)) (goto_statement "goto LAB_000157f4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;" statement_identifier : (expression_statement "lVar18 = (longdouble)(longlong)local_94;" (assignment_expression "lVar18 = (longdouble)(longlong)local_94" identifier = (cast_expression "(longdouble)(longlong)local_94" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)local_94" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;)) (if_statement "if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }" if (parenthesized_expression "((int)param_6 < 0)" ( (binary_expression "(int)param_6 < 0" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }" { (expression_statement "lVar18 = lVar18 + (longdouble)DAT_0001e244;" (assignment_expression "lVar18 = lVar18 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar18 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (expression_statement "local_94._4_4_ = param_8;" (assignment_expression "local_94._4_4_ = param_8" (field_expression "local_94._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_94._0_4_ = param_7;" (assignment_expression "local_94._0_4_ = param_7" (field_expression "local_94._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }" if (parenthesized_expression "((int)param_8 < 0)" ( (binary_expression "(int)param_8 < 0" (cast_expression "(int)param_8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }" { (expression_statement "lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);" (assignment_expression "lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244)" identifier = (binary_expression "lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244)" identifier / (parenthesized_expression "((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244)" ( (binary_expression "(longdouble)(longlong)local_94 + (longdouble)DAT_0001e244" (cast_expression "(longdouble)(longlong)local_94" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)local_94" ( (type_descriptor "longlong" type_identifier) ) identifier)) + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )))) ;) (if_statement "if (param_2 < 0) goto LAB_00015298;" if (parenthesized_expression "(param_2 < 0)" ( (binary_expression "param_2 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00015298;" goto statement_identifier ;)) (labeled_statement "LAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;" statement_identifier : (expression_statement "lVar18 = (longdouble)local_a4 * lVar18;" (assignment_expression "lVar18 = (longdouble)local_a4 * lVar18" identifier = (binary_expression "(longdouble)local_a4 * lVar18" (cast_expression "(longdouble)local_a4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * identifier)) ;)) (if_statement "if ((param_4 & 0x10) != 0) goto LAB_00015036;" if (parenthesized_expression "((param_4 & 0x10) != 0)" ( (binary_expression "(param_4 & 0x10) != 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015036;" goto statement_identifier ;)) (labeled_statement "LAB_000151c8:\n      lVar20 = lVar18;" statement_identifier : (expression_statement "lVar20 = lVar18;" (assignment_expression "lVar20 = lVar18" identifier = identifier) ;)) (if_statement "if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }" if (parenthesized_expression "((uVar6 != 1) && (lVar18 < _DAT_0001e250))" ( (binary_expression "(uVar6 != 1) && (lVar18 < _DAT_0001e250)" (parenthesized_expression "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )) && (parenthesized_expression "(lVar18 < _DAT_0001e250)" ( (binary_expression "lVar18 < _DAT_0001e250" identifier < identifier) ))) )) (compound_statement "{\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }" { (if_statement "if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }" if (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar18)" ( (binary_expression "(longdouble)DAT_0001e248 <= lVar18" (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }" { (expression_statement "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" identifier = (cast_expression "(ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar18 - (longdouble)DAT_0001e248)" identifier (argument_list "(lVar18 - (longdouble)DAT_0001e248)" ( (binary_expression "lVar18 - (longdouble)DAT_0001e248" identifier - (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ))))) ;) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" identifier . field_identifier) = (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier = (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" ( (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" identifier . field_identifier) + number_literal) , (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" identifier = identifier) ;) }) (else_clause "else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }" else (compound_statement "{\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }" { (expression_statement "uVar1 = (ulonglong)ROUND(lVar18);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar18)" identifier = (cast_expression "(ulonglong)ROUND(lVar18)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar18)" identifier (argument_list "(lVar18)" ( identifier ))))) ;) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" identifier = identifier) ;) }))) (expression_statement "lVar20 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar20 = (longdouble)(longlong)uVar1" identifier = (cast_expression "(longdouble)(longlong)uVar1" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) (if_statement "if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" if (parenthesized_expression "((longlong)uVar1 < 0)" ( (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" { (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar20 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" if (parenthesized_expression "(((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" ( (binary_expression "((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar6 == 0) && (lVar18 != lVar20))" ( (binary_expression "(uVar6 == 0) && (lVar18 != lVar20)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(lVar18 != lVar20)" ( (binary_expression "lVar18 != lVar20" identifier != identifier) ))) )) && (parenthesized_expression "(lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" ( (comma_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1)" identifier = (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(longlong)" ( identifier ))) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )))) , (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" { (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar20 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) })) (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40))" identifier (argument_list "(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") , (call_expression "SUB104(lVar20,0)" identifier (argument_list "(lVar20,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x20)" ( (binary_expression "(unkuint10)lVar20 >> 0x20" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar20 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x40)" ( (binary_expression "(unkuint10)lVar20 >> 0x40" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "local_a4._0_4_ = -1;" (assignment_expression "local_a4._0_4_ = -1" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "sVar10 = __n;" (assignment_expression "sVar10 = __n" identifier = identifier) ;) }) (else_clause "else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }" else (compound_statement "{\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }" { (expression_statement "lVar18 = lVar18 / (longdouble)(longlong)local_94;" (assignment_expression "lVar18 = lVar18 / (longdouble)(longlong)local_94" identifier = (binary_expression "lVar18 / (longdouble)(longlong)local_94" identifier / (cast_expression "(longdouble)(longlong)local_94" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)local_94" ( (type_descriptor "longlong" type_identifier) ) identifier)))) ;) (if_statement "if (-1 < param_2) goto LAB_00015026;" if (parenthesized_expression "(-1 < param_2)" ( (binary_expression "-1 < param_2" number_literal < identifier) )) (goto_statement "goto LAB_00015026;" goto statement_identifier ;)) (labeled_statement "LAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;" statement_identifier : (expression_statement "lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;" (assignment_expression "lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18" identifier = (binary_expression "((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18" (parenthesized_expression "((longdouble)local_a4 + (longdouble)DAT_0001e244)" ( (binary_expression "(longdouble)local_a4 + (longdouble)DAT_0001e244" (cast_expression "(longdouble)local_a4" ( (type_descriptor "longdouble" type_identifier) ) identifier) + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )) * identifier)) ;)) (if_statement "if ((param_4 & 0x10) == 0) goto LAB_000151c8;" if (parenthesized_expression "((param_4 & 0x10) == 0)" ( (binary_expression "(param_4 & 0x10) == 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000151c8;" goto statement_identifier ;)) (labeled_statement "LAB_00015036:\n      local_a4._0_4_ = 0;" statement_identifier : (expression_statement "local_a4._0_4_ = 0;" (assignment_expression "local_a4._0_4_ = 0" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;)) (expression_statement "lVar20 = (longdouble)(int)uVar8;" (assignment_expression "lVar20 = (longdouble)(int)uVar8" identifier = (cast_expression "(longdouble)(int)uVar8" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);" do (compound_statement "{\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      }" { (expression_statement "lVar19 = lVar20;" (assignment_expression "lVar19 = lVar20" identifier = identifier) ;) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" identifier . field_identifier) = (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "lVar20 = lVar19 * (longdouble)(int)uVar8;" (assignment_expression "lVar20 = lVar19 * (longdouble)(int)uVar8" identifier = (binary_expression "lVar19 * (longdouble)(int)uVar8" identifier * (cast_expression "(longdouble)(int)uVar8" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (lVar18 < lVar20) break;" if (parenthesized_expression "(lVar18 < lVar20)" ( (binary_expression "lVar18 < lVar20" identifier < identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "((int)local_a4 != 8)" ( (binary_expression "(int)local_a4 != 8" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) ;) (expression_statement "lVar18 = lVar18 / lVar19;" (assignment_expression "lVar18 = lVar18 / lVar19" identifier = (binary_expression "lVar18 / lVar19" identifier / identifier)) ;) (expression_statement "uVar15 = local_74 + 2 + (uint)(uVar7 == 0);" (assignment_expression "uVar15 = local_74 + 2 + (uint)(uVar7 == 0)" identifier = (binary_expression "local_74 + 2 + (uint)(uVar7 == 0)" (binary_expression "local_74 + 2" identifier + number_literal) + (call_expression "(uint)(uVar7 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) ))))) ;) (if_statement "if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (compound_statement "{\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }" { (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40))" identifier (argument_list "(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.1Lf"" " string_content ") , (call_expression "SUB104(lVar18,0)" identifier (argument_list "(lVar18,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar18 >> 0x20)" ( (binary_expression "(unkuint10)lVar18 >> 0x20" (cast_expression "(unkuint10)lVar18" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar18 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar18 >> 0x40)" ( (binary_expression "(unkuint10)lVar18 >> 0x40" (cast_expression "(unkuint10)lVar18" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (__n <= uVar15) goto LAB_00015830;" if (parenthesized_expression "(__n <= uVar15)" ( (binary_expression "__n <= uVar15" identifier <= identifier) )) (goto_statement "goto LAB_00015830;" goto statement_identifier ;)) (expression_statement "lVar18 = lVar18 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar18 = lVar18 * (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar18 * (longdouble)DAT_0001e24c" identifier * (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) }) (else_clause "else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" else (compound_statement "{\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" { (expression_statement "lVar20 = lVar18;" (assignment_expression "lVar20 = lVar18" identifier = identifier) ;) (if_statement "if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }" if (parenthesized_expression "(lVar18 < _DAT_0001e250)" ( (binary_expression "lVar18 < _DAT_0001e250" identifier < identifier) )) (compound_statement "{\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }" { (if_statement "if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }" if (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar18)" ( (binary_expression "(longdouble)DAT_0001e248 <= lVar18" (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }" { (expression_statement "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" identifier = (cast_expression "(ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar18 - (longdouble)DAT_0001e248)" identifier (argument_list "(lVar18 - (longdouble)DAT_0001e248)" ( (binary_expression "lVar18 - (longdouble)DAT_0001e248" identifier - (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ))))) ;) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" identifier . field_identifier) = (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier = (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" ( (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" identifier . field_identifier) + number_literal) , (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" identifier = identifier) ;) }) (else_clause "else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }" else (compound_statement "{\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }" { (expression_statement "uVar1 = (ulonglong)ROUND(lVar18);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar18)" identifier = (cast_expression "(ulonglong)ROUND(lVar18)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar18)" identifier (argument_list "(lVar18)" ( identifier ))))) ;) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" identifier = identifier) ;) }))) (expression_statement "lVar20 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar20 = (longdouble)(longlong)uVar1" identifier = (cast_expression "(longdouble)(longlong)uVar1" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) (if_statement "if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "((longlong)uVar1 < 0)" ( (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar20 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "(((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" ( (binary_expression "((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar6 == 0) && (lVar18 != lVar20))" ( (binary_expression "(uVar6 == 0) && (lVar18 != lVar20)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(lVar18 != lVar20)" ( (binary_expression "lVar18 != lVar20" identifier != identifier) ))) )) && (parenthesized_expression "(lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" ( (comma_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1)" identifier = (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(longlong)" ( identifier ))) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )))) , (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar20 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) })) (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40))" identifier (argument_list "(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.1Lf"" " string_content ") , (call_expression "SUB104(lVar20,0)" identifier (argument_list "(lVar20,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x20)" ( (binary_expression "(unkuint10)lVar20 >> 0x20" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar20 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x40)" ( (binary_expression "(unkuint10)lVar20 >> 0x40" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }" if (parenthesized_expression "(uVar15 < __n)" ( (binary_expression "uVar15 < __n" identifier < identifier) )) (compound_statement "{\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }" { (expression_statement "lVar20 = lVar18 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar20 = lVar18 * (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar18 * (longdouble)DAT_0001e24c" identifier * (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) }) (else_clause "else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }" else (compound_statement "{\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }" { (labeled_statement "LAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" statement_identifier : (if_statement "if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" if (parenthesized_expression "(((param_4 & 8) == 0) || (param_3[__n - 1] != '0'))" ( (binary_expression "((param_4 & 8) == 0) || (param_3[__n - 1] != '0')" (parenthesized_expression "((param_4 & 8) == 0)" ( (binary_expression "(param_4 & 8) == 0" (parenthesized_expression "(param_4 & 8)" ( (binary_expression "param_4 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(param_3[__n - 1] != '0')" ( (binary_expression "param_3[__n - 1] != '0'" (subscript_expression "param_3[__n - 1]" identifier [ (binary_expression "__n - 1" identifier - number_literal) ]) != (char_literal "'0'" ' character ')) ))) )) (compound_statement "{\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" { (expression_statement "sVar10 = __n - (local_74 + 1);" (assignment_expression "sVar10 = __n - (local_74 + 1)" identifier = (binary_expression "__n - (local_74 + 1)" identifier - (parenthesized_expression "(local_74 + 1)" ( (binary_expression "local_74 + 1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_00015214;" goto statement_identifier ;) }))) (expression_statement "lVar18 = lVar18 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar18 = lVar18 * (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar18 * (longdouble)DAT_0001e24c" identifier * (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "lVar20 = lVar18;" (assignment_expression "lVar20 = lVar18" identifier = identifier) ;) (if_statement "if (uVar6 == 1) goto LAB_00015192;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00015192;" goto statement_identifier ;)) }))) (expression_statement "lVar18 = lVar20;" (assignment_expression "lVar18 = lVar20" identifier = identifier) ;) (if_statement "if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }" if (parenthesized_expression "(lVar20 < _DAT_0001e250)" ( (binary_expression "lVar20 < _DAT_0001e250" identifier < identifier) )) (compound_statement "{\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }" { (if_statement "if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" if (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar20)" ( (binary_expression "(longdouble)DAT_0001e248 <= lVar20" (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }" { (expression_statement "uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248)" identifier = (cast_expression "(ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar20 - (longdouble)DAT_0001e248)" identifier (argument_list "(lVar20 - (longdouble)DAT_0001e248)" ( (binary_expression "lVar20 - (longdouble)DAT_0001e248" identifier - (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ))))) ;) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" identifier . field_identifier) = (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier = (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" ( (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" identifier . field_identifier) + number_literal) , (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" identifier = identifier) ;) }) (else_clause "else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" else (compound_statement "{\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" { (expression_statement "uVar1 = (ulonglong)ROUND(lVar20);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar20)" identifier = (cast_expression "(ulonglong)ROUND(lVar20)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar20)" identifier (argument_list "(lVar20)" ( identifier ))))) ;) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" identifier = identifier) ;) }))) (expression_statement "lVar18 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar18 = (longdouble)(longlong)uVar1" identifier = (cast_expression "(longdouble)(longlong)uVar1" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) (if_statement "if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "((longlong)uVar1 < 0)" ( (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar18 = lVar18 + (longdouble)DAT_0001e244;" (assignment_expression "lVar18 = lVar18 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar18 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "(((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" ( (binary_expression "((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar6 == 0) && (lVar20 != lVar18))" ( (binary_expression "(uVar6 == 0) && (lVar20 != lVar18)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(lVar20 != lVar18)" ( (binary_expression "lVar20 != lVar18" identifier != identifier) ))) )) && (parenthesized_expression "(lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" ( (comma_expression "lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar18 = (longdouble)(longlong)(uVar1 + 1)" identifier = (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(longlong)" ( identifier ))) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )))) , (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar18 = lVar18 + (longdouble)DAT_0001e244;" (assignment_expression "lVar18 = lVar18 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar18 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) })) }))) (labeled_statement "LAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;" statement_identifier : (expression_statement "lVar18 = lVar18 / (longdouble)DAT_0001e24c;" (assignment_expression "lVar18 = lVar18 / (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar18 / (longdouble)DAT_0001e24c" identifier / (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40))" identifier (argument_list "(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") , (call_expression "SUB104(lVar18,0)" identifier (argument_list "(lVar18,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar18 >> 0x20)" ( (binary_expression "(unkuint10)lVar18 >> 0x20" (cast_expression "(unkuint10)lVar18" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar18 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar18 >> 0x40)" ( (binary_expression "(unkuint10)lVar18 >> 0x40" (cast_expression "(unkuint10)lVar18" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "sVar10 = __n;" (assignment_expression "sVar10 = __n" identifier = identifier) ;) }))) (labeled_statement "LAB_00015214:\n    pcVar16 = local_98 + -__n;" statement_identifier : (expression_statement "pcVar16 = local_98 + -__n;" (assignment_expression "pcVar16 = local_98 + -__n" identifier = (binary_expression "local_98 + -__n" identifier + (unary_expression "-__n" - identifier))) ;)) (expression_statement "memmove(pcVar16,param_3,__n);" (call_expression "memmove(pcVar16,param_3,__n)" identifier (argument_list "(pcVar16,param_3,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_7c = pcVar16 + sVar10;" (assignment_expression "local_7c = pcVar16 + sVar10" identifier = (binary_expression "pcVar16 + sVar10" identifier + identifier)) ;) }) (else_clause "else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }" else (compound_statement "{\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }" { (expression_statement "lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);" (assignment_expression "lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54)" identifier = (call_expression "FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54)" identifier (argument_list "(param_5,param_6,param_7,param_8,&local_54)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (if_statement "if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;" if (parenthesized_expression "(local_54._4_4_ != 0 || (uint)local_54 != 0)" ( (binary_expression "local_54._4_4_ != 0 || (uint)local_54 != 0" (binary_expression "local_54._4_4_ != 0" (field_expression "local_54._4_4_" identifier . field_identifier) != number_literal) || (binary_expression "(uint)local_54 != 0" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal)) )) (goto_statement "goto LAB_00014fe8;" goto statement_identifier ;)) (expression_statement "lVar23 = lVar21 * local_a4;" (assignment_expression "lVar23 = lVar21 * local_a4" identifier = (binary_expression "lVar21 * local_a4" identifier * identifier)) ;) (expression_statement "lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));" (assignment_expression "lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20))" identifier = (call_expression "FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20))" identifier (argument_list "(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20))" ( identifier , (cast_expression "(short)lVar21" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (cast_expression "(int)((ulonglong)lVar21 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar21 >> 0x20)" ( (binary_expression "(ulonglong)lVar21 >> 0x20" (cast_expression "(ulonglong)lVar21" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (lVar21 != local_a4) goto LAB_00014fe8;" if (parenthesized_expression "(lVar21 != local_a4)" ( (binary_expression "lVar21 != local_a4" identifier != identifier) )) (goto_statement "goto LAB_00014fe8;" goto statement_identifier ;)) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (if_statement "if ((param_4 & 0x10) == 0) goto LAB_0001578e;" if (parenthesized_expression "((param_4 & 0x10) == 0)" ( (binary_expression "(param_4 & 0x10) == 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001578e;" goto statement_identifier ;)) (labeled_statement "LAB_000153b5:\n    local_64 = &local_54;" statement_identifier : (expression_statement "local_64 = &local_54;" (assignment_expression "local_64 = &local_54" identifier = (pointer_expression "&local_54" & identifier)) ;)) (expression_statement "local_a4._0_4_ = 0;" (assignment_expression "local_a4._0_4_ = 0" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;" if (parenthesized_expression "((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8))" ( (binary_expression "(uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)" (call_expression "(uint)((ulonglong)lVar23 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) < (call_expression "(uint)((uint)lVar23 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)lVar23 < uVar8)" ( (binary_expression "(uint)lVar23 < uVar8" (cast_expression "(uint)lVar23" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) )) (goto_statement "goto LAB_00015796;" goto statement_identifier ;)) (while_statement "while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }" { (expression_statement "lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);" (assignment_expression "lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64)" identifier = (call_expression "FUN_0001bee0(lVar23,uVar8,0,local_64)" identifier (argument_list "(lVar23,uVar8,0,local_64)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "uVar14 = (uint)((ulonglong)lVar23 >> 0x20);" (assignment_expression "uVar14 = (uint)((ulonglong)lVar23 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar23 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar12 = (uint)lVar23;" (assignment_expression "uVar12 = (uint)lVar23" identifier = (cast_expression "(uint)lVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar15 = local_68 + (uint)local_54 * 10;" (assignment_expression "uVar15 = local_68 + (uint)local_54 * 10" identifier = (binary_expression "local_68 + (uint)local_54 * 10" identifier + (binary_expression "(uint)local_54 * 10" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal))) ;) (expression_statement "uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;" (assignment_expression "uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8" identifier = (binary_expression "(ulonglong)uVar15 / (ulonglong)uVar8" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) / (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "local_68 = (uint)uVar1;" (assignment_expression "local_68 = (uint)uVar1" identifier = (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;" (assignment_expression "uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2" identifier = (binary_expression "((int)uVar17 >> 1) + (uVar15 % uVar8) * 2" (parenthesized_expression "((int)uVar17 >> 1)" ( (binary_expression "(int)uVar17 >> 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (binary_expression "(uVar15 % uVar8) * 2" (parenthesized_expression "(uVar15 % uVar8)" ( (binary_expression "uVar15 % uVar8" identifier % identifier) )) * number_literal))) ;) (expression_statement "uVar17 = uVar17 + uVar15;" (assignment_expression "uVar17 = uVar17 + uVar15" identifier = (binary_expression "uVar17 + uVar15" identifier + identifier)) ;) (if_statement "if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }" if (parenthesized_expression "(uVar15 < uVar8)" ( (binary_expression "uVar15 < uVar8" identifier < identifier) )) (compound_statement "{\n        uVar17 = (uint)(uVar17 != 0);\n      }" { (expression_statement "uVar17 = (uint)(uVar17 != 0);" (assignment_expression "uVar17 = (uint)(uVar17 != 0)" identifier = (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }" else (compound_statement "{\n        uVar17 = (uVar8 < uVar17) + 2;\n      }" { (expression_statement "uVar17 = (uVar8 < uVar17) + 2;" (assignment_expression "uVar17 = (uVar8 < uVar17) + 2" identifier = (binary_expression "(uVar8 < uVar17) + 2" (parenthesized_expression "(uVar8 < uVar17)" ( (binary_expression "uVar8 < uVar17" identifier < identifier) )) + number_literal)) ;) }))) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" identifier . field_identifier) = (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (uVar14 < (uVar12 < uVar8)) break;" if (parenthesized_expression "(uVar14 < (uVar12 < uVar8))" ( (binary_expression "uVar14 < (uVar12 < uVar8)" identifier < (parenthesized_expression "(uVar12 < uVar8)" ( (binary_expression "uVar12 < uVar8" identifier < identifier) ))) )) (break_statement "break;" break ;)) (if_statement "if ((int)local_a4 == 8) goto LAB_00015796;" if (parenthesized_expression "((int)local_a4 == 8)" ( (binary_expression "(int)local_a4 == 8" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (goto_statement "goto LAB_00015796;" goto statement_identifier ;)) })) (if_statement "if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;" if (parenthesized_expression "(uVar14 != 0 || -uVar14 < (uint)(9 < uVar12))" ( (binary_expression "uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)" (binary_expression "uVar14 != 0" identifier != number_literal) || (binary_expression "-uVar14 < (uint)(9 < uVar12)" (unary_expression "-uVar14" - identifier) < (call_expression "(uint)(9 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(9 < uVar12)" ( (binary_expression "9 < uVar12" number_literal < identifier) ))))) )) (goto_statement "goto LAB_00015796;" goto statement_identifier ;)) (if_statement "if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (compound_statement "{\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }" { (expression_statement "bVar5 = 2 < (local_68 & 1) + uVar17;" (assignment_expression "bVar5 = 2 < (local_68 & 1) + uVar17" identifier = (binary_expression "2 < (local_68 & 1) + uVar17" number_literal < (binary_expression "(local_68 & 1) + uVar17" (parenthesized_expression "(local_68 & 1)" ( (binary_expression "local_68 & 1" identifier & number_literal) )) + identifier))) ;) }) (else_clause "else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }" else (compound_statement "{\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }" { (expression_statement "bVar5 = uVar17 != 0 && uVar6 == 0;" (assignment_expression "bVar5 = uVar17 != 0 && uVar6 == 0" identifier = (binary_expression "uVar17 != 0 && uVar6 == 0" (binary_expression "uVar17 != 0" identifier != number_literal) && (binary_expression "uVar6 == 0" identifier == number_literal))) ;) }))) (expression_statement "cVar4 = (char)uVar1;" (assignment_expression "cVar4 = (char)uVar1" identifier = (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }" { (if_statement "if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }" if (parenthesized_expression "(local_68 == 9)" ( (binary_expression "local_68 == 9" identifier == number_literal) )) (compound_statement "{\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }" { (expression_statement "lVar21 = lVar23 + 1;" (assignment_expression "lVar21 = lVar23 + 1" identifier = (binary_expression "lVar23 + 1" identifier + number_literal)) ;) (expression_statement "lVar23 = lVar23 + 1;" (assignment_expression "lVar23 = lVar23 + 1" identifier = (binary_expression "lVar23 + 1" identifier + number_literal)) ;) (if_statement "if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }" if (parenthesized_expression "((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9)" ( (binary_expression "(int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9" (binary_expression "(int)((ulonglong)lVar21 >> 0x20) != 0" (cast_expression "(int)((ulonglong)lVar21 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar21 >> 0x20)" ( (binary_expression "(ulonglong)lVar21 >> 0x20" (cast_expression "(ulonglong)lVar21" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) || (binary_expression "uVar12 != 9" identifier != number_literal)) )) (compound_statement "{\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015ae9;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015b39;" goto statement_identifier ;) })) (expression_statement "cVar4 = cVar4 + '1';" (assignment_expression "cVar4 = cVar4 + '1'" identifier = (binary_expression "cVar4 + '1'" identifier + (char_literal "'1'" ' character '))) ;) }) (else_clause "else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }" else (if_statement "if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }" if (parenthesized_expression "(local_68 == 0)" ( (binary_expression "local_68 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }" { (labeled_statement "LAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;" statement_identifier : (if_statement "if ((param_4 & 8) != 0) goto LAB_00015b3b;" if (parenthesized_expression "((param_4 & 8) != 0)" ( (binary_expression "(param_4 & 8) != 0" (parenthesized_expression "(param_4 & 8)" ( (binary_expression "param_4 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015b3b;" goto statement_identifier ;))) (expression_statement "cVar4 = '0';" (assignment_expression "cVar4 = '0'" identifier = (char_literal "'0'" ' character ')) ;) }) (else_clause "else {\n      cVar4 = cVar4 + '0';\n    }" else (compound_statement "{\n      cVar4 = cVar4 + '0';\n    }" { (expression_statement "cVar4 = cVar4 + '0';" (assignment_expression "cVar4 = cVar4 + '0'" identifier = (binary_expression "cVar4 + '0'" identifier + (char_literal "'0'" ' character '))) ;) }))))) (expression_statement "param_3[0x286] = cVar4;" (assignment_expression "param_3[0x286] = cVar4" (subscript_expression "param_3[0x286]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_7c = param_3 + (0x286 - local_74);" (assignment_expression "local_7c = param_3 + (0x286 - local_74)" identifier = (binary_expression "param_3 + (0x286 - local_74)" identifier + (parenthesized_expression "(0x286 - local_74)" ( (binary_expression "0x286 - local_74" number_literal - identifier) )))) ;) (if_statement "if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }" if (parenthesized_expression "(local_74 < 4)" ( (binary_expression "local_74 < 4" identifier < number_literal) )) (compound_statement "{\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }" { (if_statement "if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }" if (parenthesized_expression "((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0))" ( (binary_expression "(local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)" (parenthesized_expression "(local_74 != 0)" ( (binary_expression "local_74 != 0" identifier != number_literal) )) && (parenthesized_expression "(*local_7c = *local_6c, (local_74 & 2) != 0)" ( (comma_expression "*local_7c = *local_6c, (local_74 & 2) != 0" (assignment_expression "*local_7c = *local_6c" (pointer_expression "*local_7c" * identifier) = (pointer_expression "*local_6c" * identifier)) , (binary_expression "(local_74 & 2) != 0" (parenthesized_expression "(local_74 & 2)" ( (binary_expression "local_74 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }" { (expression_statement "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));" (assignment_expression "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2))" (pointer_expression "*(undefined2 *)(local_7c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_7c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + (local_74 - 2))" ( (binary_expression "local_7c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) )))) = (pointer_expression "*(undefined2 *)(local_6c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_6c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 2))" ( (binary_expression "local_6c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) ))))) ;) })) }) (else_clause "else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }" else (compound_statement "{\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }" { (expression_statement "*(undefined4 *)local_7c = *(undefined4 *)local_6c;" (assignment_expression "*(undefined4 *)local_7c = *(undefined4 *)local_6c" (pointer_expression "*(undefined4 *)local_7c" * (cast_expression "(undefined4 *)local_7c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)local_6c" * (cast_expression "(undefined4 *)local_6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));" (assignment_expression "*(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4))" (pointer_expression "*(undefined4 *)(param_3 + 0x282)" * (cast_expression "(undefined4 *)(param_3 + 0x282)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x282)" ( (binary_expression "param_3 + 0x282" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(local_6c + (local_74 - 4))" * (cast_expression "(undefined4 *)(local_6c + (local_74 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 4))" ( (binary_expression "local_6c + (local_74 - 4)" identifier + (parenthesized_expression "(local_74 - 4)" ( (binary_expression "local_74 - 4" identifier - number_literal) ))) ))))) ;) (expression_statement "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);" (assignment_expression "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" identifier = (binary_expression "(int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "uVar15 = iVar13 + local_74 & 0xfffffffc;" (assignment_expression "uVar15 = iVar13 + local_74 & 0xfffffffc" identifier = (binary_expression "iVar13 + local_74 & 0xfffffffc" (binary_expression "iVar13 + local_74" identifier + identifier) & number_literal)) ;) (if_statement "if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }" if (parenthesized_expression "(3 < uVar15)" ( (binary_expression "3 < uVar15" number_literal < identifier) )) (compound_statement "{\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);" do (compound_statement "{\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        }" { (expression_statement "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));" (assignment_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13))" (pointer_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12)" * (cast_expression "(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)(local_7c + 4) & 0xfffffffc) + uVar12)" ( (binary_expression "((uint)(local_7c + 4) & 0xfffffffc) + uVar12" (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )) + identifier) )))) = (pointer_expression "*(undefined4 *)(local_6c + (uVar12 - iVar13))" * (cast_expression "(undefined4 *)(local_6c + (uVar12 - iVar13))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (uVar12 - iVar13))" ( (binary_expression "local_6c + (uVar12 - iVar13)" identifier + (parenthesized_expression "(uVar12 - iVar13)" ( (binary_expression "uVar12 - iVar13" identifier - identifier) ))) ))))) ;) (expression_statement "uVar12 = uVar12 + 4;" (assignment_expression "uVar12 = uVar12 + 4" identifier = (binary_expression "uVar12 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 < uVar15)" ( (binary_expression "uVar12 < uVar15" identifier < identifier) )) ;) })) }))) (labeled_statement "LAB_00015b39:\n    uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_00015b3b:\n    pcVar16 = local_7c;" statement_identifier : (expression_statement "pcVar16 = local_7c;" (assignment_expression "pcVar16 = local_7c" identifier = identifier) ;)) (if_statement "if (uVar6 == 1) goto LAB_000157f4;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_000157f4;" goto statement_identifier ;)) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000157a9:\n    pcVar16 = local_7c;" statement_identifier : (expression_statement "pcVar16 = local_7c;" (assignment_expression "pcVar16 = local_7c" identifier = identifier) ;)) (if_statement "if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }" if (parenthesized_expression "((uVar6 == 0) && (0 < (int)(local_68 + uVar17)))" ( (binary_expression "(uVar6 == 0) && (0 < (int)(local_68 + uVar17))" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(0 < (int)(local_68 + uVar17))" ( (binary_expression "0 < (int)(local_68 + uVar17)" number_literal < (cast_expression "(int)(local_68 + uVar17)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_68 + uVar17)" ( (binary_expression "local_68 + uVar17" identifier + identifier) )))) ))) )) (compound_statement "{\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }" { (labeled_statement "LAB_000157bb:\n      local_5c = param_4 & 0x10;" statement_identifier : (expression_statement "local_5c = param_4 & 0x10;" (assignment_expression "local_5c = param_4 & 0x10" identifier = (binary_expression "param_4 & 0x10" identifier & number_literal)) ;)) (expression_statement "lVar23 = lVar23 + 1;" (assignment_expression "lVar23 = lVar23 + 1" identifier = (binary_expression "lVar23 + 1" identifier + number_literal)) ;) (expression_statement "pcVar16 = local_7c;" (assignment_expression "pcVar16 = local_7c" identifier = identifier) ;) (if_statement "if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;" if (parenthesized_expression "(((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8))" ( (binary_expression "((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)" (parenthesized_expression "((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23))" ( (binary_expression "(local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)" (parenthesized_expression "(local_5c == 0)" ( (binary_expression "local_5c == 0" identifier == number_literal) )) || (parenthesized_expression "((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)" ( (binary_expression "(int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23" (binary_expression "(int)((ulonglong)lVar23 >> 0x20) != 0" (cast_expression "(int)((ulonglong)lVar23 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) || (binary_expression "uVar8 != (uint)lVar23" identifier != (cast_expression "(uint)lVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) )) || (parenthesized_expression "((int)local_a4 == 8)" ( (binary_expression "(int)local_a4 == 8" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) ))) )) (goto_statement "goto LAB_000157f4;" goto statement_identifier ;)) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" identifier . field_identifier) = (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }" if (parenthesized_expression "((param_4 & 8) == 0)" ( (binary_expression "(param_4 & 8) == 0" (parenthesized_expression "(param_4 & 8)" ( (binary_expression "param_4 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }" { (expression_statement "local_7c[-1] = '0';" (assignment_expression "local_7c[-1] = '0'" (subscript_expression "local_7c[-1]" identifier [ number_literal ]) = (char_literal "'0'" ' character ')) ;) (expression_statement "local_7c = local_7c + ~local_74;" (assignment_expression "local_7c = local_7c + ~local_74" identifier = (binary_expression "local_7c + ~local_74" identifier + (unary_expression "~local_74" ~ identifier))) ;) (if_statement "if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }" if (parenthesized_expression "(local_74 < 4)" ( (binary_expression "local_74 < 4" identifier < number_literal) )) (compound_statement "{\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }" { (if_statement "if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }" if (parenthesized_expression "((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0))" ( (binary_expression "(local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)" (parenthesized_expression "(local_74 != 0)" ( (binary_expression "local_74 != 0" identifier != number_literal) )) && (parenthesized_expression "(*local_7c = *local_6c, (local_74 & 2) != 0)" ( (comma_expression "*local_7c = *local_6c, (local_74 & 2) != 0" (assignment_expression "*local_7c = *local_6c" (pointer_expression "*local_7c" * identifier) = (pointer_expression "*local_6c" * identifier)) , (binary_expression "(local_74 & 2) != 0" (parenthesized_expression "(local_74 & 2)" ( (binary_expression "local_74 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }" { (expression_statement "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));" (assignment_expression "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2))" (pointer_expression "*(undefined2 *)(local_7c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_7c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + (local_74 - 2))" ( (binary_expression "local_7c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) )))) = (pointer_expression "*(undefined2 *)(local_6c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_6c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 2))" ( (binary_expression "local_6c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) ))))) ;) })) }) (else_clause "else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }" else (compound_statement "{\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }" { (expression_statement "*(undefined4 *)local_7c = *(undefined4 *)local_6c;" (assignment_expression "*(undefined4 *)local_7c = *(undefined4 *)local_6c" (pointer_expression "*(undefined4 *)local_7c" * (cast_expression "(undefined4 *)local_7c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)local_6c" * (cast_expression "(undefined4 *)local_6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));" (assignment_expression "*(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4))" (pointer_expression "*(undefined4 *)(local_7c + (local_74 - 4))" * (cast_expression "(undefined4 *)(local_7c + (local_74 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + (local_74 - 4))" ( (binary_expression "local_7c + (local_74 - 4)" identifier + (parenthesized_expression "(local_74 - 4)" ( (binary_expression "local_74 - 4" identifier - number_literal) ))) )))) = (pointer_expression "*(undefined4 *)(local_6c + (local_74 - 4))" * (cast_expression "(undefined4 *)(local_6c + (local_74 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 4))" ( (binary_expression "local_6c + (local_74 - 4)" identifier + (parenthesized_expression "(local_74 - 4)" ( (binary_expression "local_74 - 4" identifier - number_literal) ))) ))))) ;) (expression_statement "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);" (assignment_expression "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" identifier = (binary_expression "(int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "uVar6 = iVar13 + local_74 & 0xfffffffc;" (assignment_expression "uVar6 = iVar13 + local_74 & 0xfffffffc" identifier = (binary_expression "iVar13 + local_74 & 0xfffffffc" (binary_expression "iVar13 + local_74" identifier + identifier) & number_literal)) ;) (if_statement "if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }" if (parenthesized_expression "(3 < uVar6)" ( (binary_expression "3 < uVar6" number_literal < identifier) )) (compound_statement "{\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);" do (compound_statement "{\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            }" { (expression_statement "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));" (assignment_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13))" (pointer_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15)" * (cast_expression "(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)(local_7c + 4) & 0xfffffffc) + uVar15)" ( (binary_expression "((uint)(local_7c + 4) & 0xfffffffc) + uVar15" (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )) + identifier) )))) = (pointer_expression "*(undefined4 *)(local_6c + (uVar15 - iVar13))" * (cast_expression "(undefined4 *)(local_6c + (uVar15 - iVar13))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (uVar15 - iVar13))" ( (binary_expression "local_6c + (uVar15 - iVar13)" identifier + (parenthesized_expression "(uVar15 - iVar13)" ( (binary_expression "uVar15 - iVar13" identifier - identifier) ))) ))))) ;) (expression_statement "uVar15 = uVar15 + 4;" (assignment_expression "uVar15 = uVar15 + 4" identifier = (binary_expression "uVar15 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar15 < uVar6)" ( (binary_expression "uVar15 < uVar6" identifier < identifier) )) ;) })) }))) })) (expression_statement "pcVar16 = local_7c + -1;" (assignment_expression "pcVar16 = local_7c + -1" identifier = (binary_expression "local_7c + -1" identifier + number_literal)) ;) (expression_statement "local_7c[-1] = '1';" (assignment_expression "local_7c[-1] = '1'" (subscript_expression "local_7c[-1]" identifier [ number_literal ]) = (char_literal "'1'" ' character ')) ;) }) (else_clause "else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }" else (compound_statement "{\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }" { (labeled_statement "LAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));" statement_identifier : (do_statement "do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));" do (compound_statement "{\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      }" { (expression_statement "iVar13 = (int)((ulonglong)lVar23 >> 0x20);" (assignment_expression "iVar13 = (int)((ulonglong)lVar23 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar23 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar6 = (uint)lVar23;" (assignment_expression "uVar6 = (uint)lVar23" identifier = (cast_expression "(uint)lVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar16 = pcVar16 + -1;" (assignment_expression "pcVar16 = pcVar16 + -1" identifier = (binary_expression "pcVar16 + -1" identifier + number_literal)) ;) (expression_statement "cVar4 = FUN_0001bda0(lVar23,10,0);" (assignment_expression "cVar4 = FUN_0001bda0(lVar23,10,0)" identifier = (call_expression "FUN_0001bda0(lVar23,10,0)" identifier (argument_list "(lVar23,10,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*pcVar16 = cVar4 + '0';" (assignment_expression "*pcVar16 = cVar4 + '0'" (pointer_expression "*pcVar16" * identifier) = (binary_expression "cVar4 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "lVar23 = FUN_0001bc90(lVar23,10,0);" (assignment_expression "lVar23 = FUN_0001bc90(lVar23,10,0)" identifier = (call_expression "FUN_0001bc90(lVar23,10,0)" identifier (argument_list "(lVar23,10,0)" ( identifier , number_literal , number_literal )))) ;) }) while (parenthesized_expression "(iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6))" ( (binary_expression "iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6)" (binary_expression "iVar13 != 0" identifier != number_literal) || (binary_expression "(uint)-iVar13 < (uint)(9 < uVar6)" (binary_expression "(uint)-iVar13" (parenthesized_expression "(uint)" ( identifier )) - identifier) < (call_expression "(uint)(9 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(9 < uVar6)" ( (binary_expression "9 < uVar6" number_literal < identifier) ))))) )) ;)) }))) }))) (if_statement "if ((param_4 & 4) != 0) {\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }" if (parenthesized_expression "((param_4 & 4) != 0)" ( (binary_expression "(param_4 & 4) != 0" (parenthesized_expression "(param_4 & 4)" ( (binary_expression "param_4 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }" { (expression_statement "uVar15 = (int)local_7c - (int)pcVar16;" (assignment_expression "uVar15 = (int)local_7c - (int)pcVar16" identifier = (binary_expression "(int)local_7c - (int)pcVar16" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "sVar10 = strlen(pcVar11);" (assignment_expression "sVar10 = strlen(pcVar11)" identifier = (call_expression "strlen(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (expression_statement "__memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);" (call_expression "__memcpy_chk(local_49,pcVar16,(short)uVar15,0x29)" identifier (argument_list "(local_49,pcVar16,(short)uVar15,0x29)" ( identifier , identifier , (cast_expression "(short)uVar15" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , number_literal ))) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (while_statement "while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }" { (expression_statement "bVar3 = *local_bc;" (assignment_expression "bVar3 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (if_statement "if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }" if (parenthesized_expression "(bVar3 != 0)" ( (binary_expression "bVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }" { (expression_statement "uVar6 = (uint)bVar3;" (assignment_expression "uVar6 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }" if (parenthesized_expression "(0x7e < bVar3)" ( (binary_expression "0x7e < bVar3" number_literal < identifier) )) (compound_statement "{\n          uVar6 = uVar15;\n        }" { (expression_statement "uVar6 = uVar15;" (assignment_expression "uVar6 = uVar15" identifier = identifier) ;) })) (expression_statement "local_bc = local_bc + 1;" (assignment_expression "local_bc = local_bc + 1" identifier = (binary_expression "local_bc + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar15 < uVar6) break;" if (parenthesized_expression "(uVar15 < uVar6)" ( (binary_expression "uVar15 < uVar6" identifier < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar15 = uVar15 - uVar6;" (assignment_expression "uVar15 = uVar15 - uVar6" identifier = (binary_expression "uVar15 - uVar6" identifier - identifier)) ;) (expression_statement "pcVar16 = local_7c + -uVar6;" (assignment_expression "pcVar16 = local_7c + -uVar6" identifier = (binary_expression "local_7c + -uVar6" identifier + (unary_expression "-uVar6" - identifier))) ;) (expression_statement "memcpy(pcVar16,local_49 + uVar15,uVar6);" (call_expression "memcpy(pcVar16,local_49 + uVar15,uVar6)" identifier (argument_list "(pcVar16,local_49 + uVar15,uVar6)" ( identifier , (binary_expression "local_49 + uVar15" identifier + identifier) , identifier ))) ;) (if_statement "if (uVar15 == 0) goto LAB_00015240;" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015240;" goto statement_identifier ;)) (expression_statement "local_7c = pcVar16 + -sVar10;" (assignment_expression "local_7c = pcVar16 + -sVar10" identifier = (binary_expression "pcVar16 + -sVar10" identifier + (unary_expression "-sVar10" - identifier))) ;) (expression_statement "memcpy(local_7c,pcVar11,sVar10);" (call_expression "memcpy(local_7c,pcVar11,sVar10)" identifier (argument_list "(local_7c,pcVar11,sVar10)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar16 = local_7c + -uVar15;" (assignment_expression "pcVar16 = local_7c + -uVar15" identifier = (binary_expression "local_7c + -uVar15" identifier + (unary_expression "-uVar15" - identifier))) ;) (expression_statement "memcpy(pcVar16,local_49,uVar15);" (call_expression "memcpy(pcVar16,local_49,uVar15)" identifier (argument_list "(pcVar16,local_49,uVar15)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00015240:\n  if ((param_4 & 0x80) == 0) goto LAB_0001526d;" statement_identifier : (if_statement "if ((param_4 & 0x80) == 0) goto LAB_0001526d;" if (parenthesized_expression "((param_4 & 0x80) == 0)" ( (binary_expression "(param_4 & 0x80) == 0" (parenthesized_expression "(param_4 & 0x80)" ( (binary_expression "param_4 & 0x80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001526d;" goto statement_identifier ;))) (if_statement "if ((int)local_a4 == -1) {\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }" if (parenthesized_expression "((int)local_a4 == -1)" ( (binary_expression "(int)local_a4 == -1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }" { (if_statement "if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }" if (parenthesized_expression "(param_8 == 0 && (uint)(1 < param_7) <= -param_8)" ( (binary_expression "param_8 == 0 && (uint)(1 < param_7) <= -param_8" (binary_expression "param_8 == 0" identifier == number_literal) && (binary_expression "(uint)(1 < param_7) <= -param_8" (call_expression "(uint)(1 < param_7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < param_7)" ( (binary_expression "1 < param_7" number_literal < identifier) ))) <= (unary_expression "-param_8" - identifier))) )) (compound_statement "{\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }" { (expression_statement "local_a4._0_4_ = 0;" (assignment_expression "local_a4._0_4_ = 0" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_00015255;" goto statement_identifier ;) })) (expression_statement "local_a4._0_4_ = 1;" (assignment_expression "local_a4._0_4_ = 1" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_bc = (byte *)0x1;" (assignment_expression "local_bc = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);" do (compound_statement "{\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    }" { (expression_statement "uVar1 = ZEXT48(local_bc);" (assignment_expression "uVar1 = ZEXT48(local_bc)" identifier = (call_expression "ZEXT48(local_bc)" identifier (argument_list "(local_bc)" ( identifier )))) ;) (expression_statement "local_bc = (byte *)(uVar1 * uVar8);" (assignment_expression "local_bc = (byte *)(uVar1 * uVar8)" identifier = (cast_expression "(byte *)(uVar1 * uVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 * uVar8)" ( (binary_expression "uVar1 * uVar8" identifier * identifier) )))) ;) (expression_statement "local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;" (assignment_expression "local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8" identifier = (binary_expression "(int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8" (cast_expression "(int)(uVar1 * uVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 * uVar8 >> 0x20)" ( (binary_expression "uVar1 * uVar8 >> 0x20" (binary_expression "uVar1 * uVar8" identifier * identifier) >> number_literal) ))) + (binary_expression "local_b8 * uVar8" identifier * identifier))) ;) (if_statement "if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;" if (parenthesized_expression "(param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8)" ( (binary_expression "param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8" (binary_expression "param_8 <= local_b8" identifier <= identifier) && (binary_expression "(uint)(local_bc < param_7) <= local_b8 - param_8" (call_expression "(uint)(local_bc < param_7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_bc < param_7)" ( (binary_expression "local_bc < param_7" identifier < identifier) ))) <= (binary_expression "local_b8 - param_8" identifier - identifier))) )) (break_statement "break;" break ;)) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" identifier . field_identifier) = (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) }) while (parenthesized_expression "((int)local_a4 != 8)" ( (binary_expression "(int)local_a4 != 8" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) ;) (if_statement "if ((param_4 & 0x40) != 0) goto LAB_000155da;" if (parenthesized_expression "((param_4 & 0x40) != 0)" ( (binary_expression "(param_4 & 0x40) != 0" (parenthesized_expression "(param_4 & 0x40)" ( (binary_expression "param_4 & 0x40" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000155da;" goto statement_identifier ;)) (labeled_statement "LAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" statement_identifier : (if_statement "if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" if (parenthesized_expression "((uVar7 == 0) && ((int)local_a4 == 1))" ( (binary_expression "(uVar7 == 0) && ((int)local_a4 == 1)" (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) && (parenthesized_expression "((int)local_a4 == 1)" ( (binary_expression "(int)local_a4 == 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) ))) )) (compound_statement "{\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }" { (expression_statement "*local_98 = 'k';" (assignment_expression "*local_98 = 'k'" (pointer_expression "*local_98" * identifier) = (char_literal "'k'" ' character ')) ;) (expression_statement "pcVar11 = local_98 + 1;" (assignment_expression "pcVar11 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) (if_statement "if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }" if (parenthesized_expression "((param_4 & 0x100) == 0)" ( (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }" { (labeled_statement "LAB_00015a82:\n        local_98 = local_98 + 1;" statement_identifier : (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;)) (goto_statement "goto LAB_0001526d;" goto statement_identifier ;) })) }) (else_clause "else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" else (compound_statement "{\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" { (expression_statement "*local_98 = (&UNK_0001e238)[(int)local_a4];" (assignment_expression "*local_98 = (&UNK_0001e238)[(int)local_a4]" (pointer_expression "*local_98" * identifier) = (subscript_expression "(&UNK_0001e238)[(int)local_a4]" (parenthesized_expression "(&UNK_0001e238)" ( (pointer_expression "&UNK_0001e238" & identifier) )) [ (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (if_statement "if ((param_4 & 0x100) == 0) goto LAB_00015a82;" if (parenthesized_expression "((param_4 & 0x100) == 0)" ( (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00015a82;" goto statement_identifier ;)) (expression_statement "pcVar11 = local_98 + 1;" (assignment_expression "pcVar11 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) (if_statement "if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }" { (expression_statement "local_98[1] = 'i';" (assignment_expression "local_98[1] = 'i'" (subscript_expression "local_98[1]" identifier [ number_literal ]) = (char_literal "'i'" ' character ')) ;) (expression_statement "pcVar11 = local_98 + 2;" (assignment_expression "pcVar11 = local_98 + 2" identifier = (binary_expression "local_98 + 2" identifier + number_literal)) ;) })) })))) }) (else_clause "else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }" else (compound_statement "{\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }" { (labeled_statement "LAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;" statement_identifier : (if_statement "if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;" if (parenthesized_expression "((int)local_a4 == 0 && (param_4 & 0x100) == 0)" ( (binary_expression "(int)local_a4 == 0 && (param_4 & 0x100) == 0" (binary_expression "(int)local_a4 == 0" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) && (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) == number_literal)) )) (goto_statement "goto LAB_0001526d;" goto statement_identifier ;))) (if_statement "if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }" if (parenthesized_expression "((param_4 & 0x40) != 0)" ( (binary_expression "(param_4 & 0x40) != 0" (parenthesized_expression "(param_4 & 0x40)" ( (binary_expression "param_4 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }" { (labeled_statement "LAB_000155da:\n      local_98 = param_3 + 0x288;" statement_identifier : (expression_statement "local_98 = param_3 + 0x288;" (assignment_expression "local_98 = param_3 + 0x288" identifier = (binary_expression "param_3 + 0x288" identifier + number_literal)) ;)) (expression_statement "param_3[0x287] = ' ';" (assignment_expression "param_3[0x287] = ' '" (subscript_expression "param_3[0x287]" identifier [ number_literal ]) = (char_literal "' '" ' character ')) ;) })) (if_statement "if ((int)local_a4 != 0) goto LAB_000155fb;" if (parenthesized_expression "((int)local_a4 != 0)" ( (binary_expression "(int)local_a4 != 0" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_000155fb;" goto statement_identifier ;)) (expression_statement "pcVar11 = local_98;" (assignment_expression "pcVar11 = local_98" identifier = identifier) ;) (if_statement "if ((param_4 & 0x100) == 0) goto LAB_0001526d;" if (parenthesized_expression "((param_4 & 0x100) == 0)" ( (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001526d;" goto statement_identifier ;)) }))) (expression_statement "local_98 = pcVar11 + 1;" (assignment_expression "local_98 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar11 = 'B';" (assignment_expression "*pcVar11 = 'B'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'B'" ' character ')) ;) (labeled_statement "LAB_0001526d:\n  *local_98 = '\0';" statement_identifier : (expression_statement "*local_98 = '\0';" (assignment_expression "*local_98 = '\0'" (pointer_expression "*local_98" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar16;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return pcVar16;\n  }" { (return_statement "return pcVar16;" return identifier ;) })) comment (expression_statement "FUN_0001c140();" (call_expression "FUN_0001c140()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* 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  ulonglong uVar1;\n  ulonglong uVar2;\n  int iVar3;\n  byte bVar4;\n  uintmax_t uVar5;\n  char cVar6;\n  bool bVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  lconv *plVar11;\n  size_t sVar12;\n  char *pcVar13;\n  size_t __n;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint uVar19;\n  int in_GS_OFFSET;\n  longdouble lVar20;\n  longdouble lVar21;\n  longdouble lVar22;\n  longlong lVar23;\n  undefined8 uVar24;\n  longlong lVar25;\n  byte *local_bc;\n  uint local_b8;\n  int local_a4;\n  char *local_98;\n  undefined1 local_94 [8];\n  undefined2 uStack_8c;\n  char *local_7c;\n  uint local_74;\n  char *local_6c;\n  uint local_68;\n  undefined8 *local_64;\n  uint local_5c;\n  undefined8 local_54;\n  char buf_1 [41];\n  \n  _local_94 = CONCAT64(CONCAT24(uStack_8c,from_block_size._4_4_),(uint)from_block_size);\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar8 = opts & 3;\n  uVar9 = opts & 0x20;\n  uVar10 = (-(uint)(uVar9 == 0) & 0xffffffe8) + 0x400;\n  plVar11 = localeconv();\n  local_6c = plVar11->decimal_point;\n  local_74 = strlen(local_6c);\n  if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }\n  local_bc = (byte *)plVar11->grouping;\n  pcVar18 = plVar11->thousands_sep;\n  sVar12 = strlen(pcVar18);\n  pcVar13 = "";\n  if (sVar12 < 0x11) {\n    pcVar13 = pcVar18;\n  }\n  local_98 = buf + 0x287;\n  local_7c = local_98;\n  if (from_block_size._4_4_ < to_block_size._4_4_ ||\n      from_block_size._4_4_ - to_block_size._4_4_ <\n      (uint)((uint)from_block_size < (uint)to_block_size)) {\n    if (from_block_size != 0) {\n      uVar24 = __udivmoddi4(to_block_size,from_block_size,&local_54);\n      uVar17 = (uint)((ulonglong)uVar24 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar25 = __udivmoddi4(n,uVar24,&local_54);\n        lVar23 = (local_54 & 0xffffffff) * 10;\n        local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54);\n        uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar14 = (uint)local_54 * 2;\n        if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)) {\n          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);\n        }\n        else {\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }\n        if ((opts & 0x10U) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4 = -1;\nLAB_00015796:\n        if (uVar8 != 1) goto LAB_000157a9;\n        uVar8 = (uint)lVar25 & 1;\n        pcVar18 = local_98;\n        lVar23 = lVar25;\n        if (5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar20 = (longdouble)(longlong)local_94;\n    if ((longlong)from_block_size < 0) {\n      lVar20 = lVar20 + (longdouble)DAT_0001e244;\n    }\n    if ((longlong)to_block_size < 0) {\n      lVar20 = lVar20 / ((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244);\n      if ((longlong)n < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar20 = (longdouble)(longlong)n * lVar20;\n      if ((opts & 0x10U) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar22 = lVar20;\n      if ((uVar8 != 1) && (lVar20 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar20) {\n          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }\n        lVar22 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                    (short)((unkuint10)lVar22 >> 0x40));\n      __n = strlen(buf);\n      local_a4 = -1;\n      sVar12 = __n;\n    }\n    else {\n      lVar20 = lVar20 / (longdouble)(longlong)to_block_size;\n      if (-1 < (longlong)n) goto LAB_00015026;\nLAB_00015298:\n      lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20;\n      if ((opts & 0x10U) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4 = 0;\n      lVar22 = (longdouble)(int)uVar10;\n      do {\n        lVar21 = lVar22;\n        local_a4 = local_a4 + 1;\n        lVar22 = lVar21 * (longdouble)(int)uVar10;\n        if (lVar20 < lVar22) break;\n      } while (local_a4 != 8);\n      lVar20 = lVar20 / lVar21;\n      uVar17 = local_74 + 2 + (uint)(uVar9 == 0);\n      if (uVar8 == 1) {\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(buf);\n        if (__n <= uVar17) goto LAB_00015830;\n        lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar22 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));\n        __n = strlen(buf);\n        if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }\n        lVar20 = lVar22;\n        if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar20 = lVar20 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(buf);\n      sVar12 = __n;\n    }\nLAB_00015214:\n    pcVar18 = local_98 + -__n;\n    memmove(pcVar18,buf,__n);\n    local_7c = pcVar18 + sVar12;\n  }\n  else {\n    lVar23 = __udivmoddi4(from_block_size,to_block_size,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar25 = n * lVar23;\n    uVar5 = __udivdi3(lVar25,(short)lVar23,(int)((ulonglong)lVar23 >> 0x20));\n    if (n != uVar5) goto LAB_00014fe8;\n    uVar19 = 0;\n    local_68 = 0;\n    if ((opts & 0x10U) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4 = 0;\n    if ((uint)((ulonglong)lVar25 >> 0x20) < (uint)((uint)lVar25 < uVar10)) goto LAB_00015796;\n    while( true ) {\n      lVar25 = __udivmoddi4(lVar25,uVar10,0,local_64);\n      uVar16 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar14 = (uint)lVar25;\n      uVar17 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar17 / (ulonglong)uVar10;\n      local_68 = (uint)uVar1;\n      uVar17 = ((int)uVar19 >> 1) + (uVar17 % uVar10) * 2;\n      uVar19 = uVar19 + uVar17;\n      if (uVar17 < uVar10) {\n        uVar19 = (uint)(uVar19 != 0);\n      }\n      else {\n        uVar19 = (uVar10 < uVar19) + 2;\n      }\n      local_a4 = local_a4 + 1;\n      if (uVar16 < (uVar14 < uVar10)) break;\n      if (local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar16 != 0 || -uVar16 < (uint)(9 < uVar14)) goto LAB_00015796;\n    if (uVar8 == 1) {\n      bVar7 = 2 < (local_68 & 1) + uVar19;\n    }\n    else {\n      bVar7 = uVar19 != 0 && uVar8 == 0;\n    }\n    cVar6 = (char)uVar1;\n    if (bVar7) {\n      if (local_68 == 9) {\n        lVar23 = lVar25 + 1;\n        lVar25 = lVar25 + 1;\n        if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar6 = cVar6 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((opts & 8U) != 0) goto LAB_00015b3b;\n      cVar6 = '0';\n    }\n    else {\n      cVar6 = cVar6 + '0';\n    }\n    buf[0x286] = cVar6;\n    local_7c = buf + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar17 = iVar15 + local_74 & 0xfffffffc;\n      if (3 < uVar17) {\n        uVar14 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);\n      }\n    }\nLAB_00015b39:\n    uVar19 = 0;\nLAB_00015b3b:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if (uVar8 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if ((uVar8 == 0) && (0 < (int)(local_68 + uVar19))) {\nLAB_000157bb:\n      local_5c = opts & 0x10;\n      pcVar18 = local_7c;\n      lVar23 = lVar25 + 1;\n      if (((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||\n         (lVar23 = lVar25 + 1, local_a4 == 8)) goto LAB_000157f4;\n      local_a4 = local_a4 + 1;\n      if ((opts & 8U) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }\n      }\n      pcVar18 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));\n    }\n  }\n  if ((opts & 4U) != 0) {\n    uVar17 = (int)local_7c - (int)pcVar18;\n    sVar12 = strlen(pcVar13);\n    __memcpy_chk(buf_1,pcVar18,(short)uVar17,0x29);\n    uVar8 = 0xffffffff;\n    while( true ) {\n      bVar4 = *local_bc;\n      if (bVar4 != 0) {\n        uVar8 = (uint)bVar4;\n        if (0x7e < bVar4) {\n          uVar8 = uVar17;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar17 < uVar8) break;\n      uVar17 = uVar17 - uVar8;\n      pcVar18 = local_7c + -uVar8;\n      memcpy(pcVar18,buf_1 + uVar17,uVar8);\n      if (uVar17 == 0) goto LAB_00015240;\n      local_7c = pcVar18 + -sVar12;\n      memcpy(local_7c,pcVar13,sVar12);\n    }\n    pcVar18 = local_7c + -uVar17;\n    memcpy(pcVar18,buf_1,uVar17);\n  }\nLAB_00015240:\n  if ((opts & 0x80U) == 0) goto LAB_0001526d;\n  if (local_a4 == -1) {\n    if (to_block_size._4_4_ == 0 && (uint)(1 < (uint)to_block_size) <= -to_block_size._4_4_) {\n      local_a4 = 0;\n      goto LAB_00015255;\n    }\n    local_a4 = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar10);\n      local_b8 = (int)(uVar1 * uVar10 >> 0x20) + local_b8 * uVar10;\n      if (to_block_size._4_4_ <= local_b8 &&\n          (uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_) break;\n      local_a4 = local_a4 + 1;\n    } while (local_a4 != 8);\n    if ((opts & 0x40U) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar9 == 0) && (local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar13 = local_98 + 1;\n      if ((opts & 0x100U) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = ""[local_a4];\n      if ((opts & 0x100U) == 0) goto LAB_00015a82;\n      pcVar13 = local_98 + 1;\n      if (uVar9 != 0) {\n        local_98[1] = 'i';\n        pcVar13 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if (local_a4 == 0 && (opts & 0x100U) == 0) goto LAB_0001526d;\n    if ((opts & 0x40U) != 0) {\nLAB_000155da:\n      local_98 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    if (local_a4 != 0) goto LAB_000155fb;\n    pcVar13 = local_98;\n    if ((opts & 0x100U) == 0) goto LAB_0001526d;\n  }\n  local_98 = pcVar13 + 1;\n  *pcVar13 = 'B';\nLAB_0001526d:\n  *local_98 = '\0';\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar18;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment 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  ulonglong uVar1;\n  ulonglong uVar2;\n  int iVar3;\n  byte bVar4;\n  uintmax_t uVar5;\n  char cVar6;\n  bool bVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  lconv *plVar11;\n  size_t sVar12;\n  char *pcVar13;\n  size_t __n;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint uVar19;\n  int in_GS_OFFSET;\n  longdouble lVar20;\n  longdouble lVar21;\n  longdouble lVar22;\n  longlong lVar23;\n  undefined8 uVar24;\n  longlong lVar25;\n  byte *local_bc;\n  uint local_b8;\n  int local_a4;\n  char *local_98;\n  undefined1 local_94 [8];\n  undefined2 uStack_8c;\n  char *local_7c;\n  uint local_74;\n  char *local_6c;\n  uint local_68;\n  undefined8 *local_64;\n  uint local_5c;\n  undefined8 local_54;\n  char buf_1 [41];\n  \n  _local_94 = CONCAT64(CONCAT24(uStack_8c,from_block_size._4_4_),(uint)from_block_size);\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar8 = opts & 3;\n  uVar9 = opts & 0x20;\n  uVar10 = (-(uint)(uVar9 == 0) & 0xffffffe8) + 0x400;\n  plVar11 = localeconv();\n  local_6c = plVar11->decimal_point;\n  local_74 = strlen(local_6c);\n  if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }\n  local_bc = (byte *)plVar11->grouping;\n  pcVar18 = plVar11->thousands_sep;\n  sVar12 = strlen(pcVar18);\n  pcVar13 = "";\n  if (sVar12 < 0x11) {\n    pcVar13 = pcVar18;\n  }\n  local_98 = buf + 0x287;\n  local_7c = local_98;\n  if (from_block_size._4_4_ < to_block_size._4_4_ ||\n      from_block_size._4_4_ - to_block_size._4_4_ <\n      (uint)((uint)from_block_size < (uint)to_block_size)) {\n    if (from_block_size != 0) {\n      uVar24 = __udivmoddi4(to_block_size,from_block_size,&local_54);\n      uVar17 = (uint)((ulonglong)uVar24 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar25 = __udivmoddi4(n,uVar24,&local_54);\n        lVar23 = (local_54 & 0xffffffff) * 10;\n        local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54);\n        uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar14 = (uint)local_54 * 2;\n        if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)) {\n          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);\n        }\n        else {\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }\n        if ((opts & 0x10U) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4 = -1;\nLAB_00015796:\n        if (uVar8 != 1) goto LAB_000157a9;\n        uVar8 = (uint)lVar25 & 1;\n        pcVar18 = local_98;\n        lVar23 = lVar25;\n        if (5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar20 = (longdouble)(longlong)local_94;\n    if ((longlong)from_block_size < 0) {\n      lVar20 = lVar20 + (longdouble)DAT_0001e244;\n    }\n    if ((longlong)to_block_size < 0) {\n      lVar20 = lVar20 / ((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244);\n      if ((longlong)n < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar20 = (longdouble)(longlong)n * lVar20;\n      if ((opts & 0x10U) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar22 = lVar20;\n      if ((uVar8 != 1) && (lVar20 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar20) {\n          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }\n        lVar22 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                    (short)((unkuint10)lVar22 >> 0x40));\n      __n = strlen(buf);\n      local_a4 = -1;\n      sVar12 = __n;\n    }\n    else {\n      lVar20 = lVar20 / (longdouble)(longlong)to_block_size;\n      if (-1 < (longlong)n) goto LAB_00015026;\nLAB_00015298:\n      lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20;\n      if ((opts & 0x10U) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4 = 0;\n      lVar22 = (longdouble)(int)uVar10;\n      do {\n        lVar21 = lVar22;\n        local_a4 = local_a4 + 1;\n        lVar22 = lVar21 * (longdouble)(int)uVar10;\n        if (lVar20 < lVar22) break;\n      } while (local_a4 != 8);\n      lVar20 = lVar20 / lVar21;\n      uVar17 = local_74 + 2 + (uint)(uVar9 == 0);\n      if (uVar8 == 1) {\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(buf);\n        if (__n <= uVar17) goto LAB_00015830;\n        lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar22 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));\n        __n = strlen(buf);\n        if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }\n        lVar20 = lVar22;\n        if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar20 = lVar20 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(buf);\n      sVar12 = __n;\n    }\nLAB_00015214:\n    pcVar18 = local_98 + -__n;\n    memmove(pcVar18,buf,__n);\n    local_7c = pcVar18 + sVar12;\n  }\n  else {\n    lVar23 = __udivmoddi4(from_block_size,to_block_size,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar25 = n * lVar23;\n    uVar5 = __udivdi3(lVar25,(short)lVar23,(int)((ulonglong)lVar23 >> 0x20));\n    if (n != uVar5) goto LAB_00014fe8;\n    uVar19 = 0;\n    local_68 = 0;\n    if ((opts & 0x10U) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4 = 0;\n    if ((uint)((ulonglong)lVar25 >> 0x20) < (uint)((uint)lVar25 < uVar10)) goto LAB_00015796;\n    while( true ) {\n      lVar25 = __udivmoddi4(lVar25,uVar10,0,local_64);\n      uVar16 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar14 = (uint)lVar25;\n      uVar17 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar17 / (ulonglong)uVar10;\n      local_68 = (uint)uVar1;\n      uVar17 = ((int)uVar19 >> 1) + (uVar17 % uVar10) * 2;\n      uVar19 = uVar19 + uVar17;\n      if (uVar17 < uVar10) {\n        uVar19 = (uint)(uVar19 != 0);\n      }\n      else {\n        uVar19 = (uVar10 < uVar19) + 2;\n      }\n      local_a4 = local_a4 + 1;\n      if (uVar16 < (uVar14 < uVar10)) break;\n      if (local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar16 != 0 || -uVar16 < (uint)(9 < uVar14)) goto LAB_00015796;\n    if (uVar8 == 1) {\n      bVar7 = 2 < (local_68 & 1) + uVar19;\n    }\n    else {\n      bVar7 = uVar19 != 0 && uVar8 == 0;\n    }\n    cVar6 = (char)uVar1;\n    if (bVar7) {\n      if (local_68 == 9) {\n        lVar23 = lVar25 + 1;\n        lVar25 = lVar25 + 1;\n        if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar6 = cVar6 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((opts & 8U) != 0) goto LAB_00015b3b;\n      cVar6 = '0';\n    }\n    else {\n      cVar6 = cVar6 + '0';\n    }\n    buf[0x286] = cVar6;\n    local_7c = buf + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar17 = iVar15 + local_74 & 0xfffffffc;\n      if (3 < uVar17) {\n        uVar14 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);\n      }\n    }\nLAB_00015b39:\n    uVar19 = 0;\nLAB_00015b3b:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if (uVar8 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if ((uVar8 == 0) && (0 < (int)(local_68 + uVar19))) {\nLAB_000157bb:\n      local_5c = opts & 0x10;\n      pcVar18 = local_7c;\n      lVar23 = lVar25 + 1;\n      if (((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||\n         (lVar23 = lVar25 + 1, local_a4 == 8)) goto LAB_000157f4;\n      local_a4 = local_a4 + 1;\n      if ((opts & 8U) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }\n      }\n      pcVar18 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));\n    }\n  }\n  if ((opts & 4U) != 0) {\n    uVar17 = (int)local_7c - (int)pcVar18;\n    sVar12 = strlen(pcVar13);\n    __memcpy_chk(buf_1,pcVar18,(short)uVar17,0x29);\n    uVar8 = 0xffffffff;\n    while( true ) {\n      bVar4 = *local_bc;\n      if (bVar4 != 0) {\n        uVar8 = (uint)bVar4;\n        if (0x7e < bVar4) {\n          uVar8 = uVar17;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar17 < uVar8) break;\n      uVar17 = uVar17 - uVar8;\n      pcVar18 = local_7c + -uVar8;\n      memcpy(pcVar18,buf_1 + uVar17,uVar8);\n      if (uVar17 == 0) goto LAB_00015240;\n      local_7c = pcVar18 + -sVar12;\n      memcpy(local_7c,pcVar13,sVar12);\n    }\n    pcVar18 = local_7c + -uVar17;\n    memcpy(pcVar18,buf_1,uVar17);\n  }\nLAB_00015240:\n  if ((opts & 0x80U) == 0) goto LAB_0001526d;\n  if (local_a4 == -1) {\n    if (to_block_size._4_4_ == 0 && (uint)(1 < (uint)to_block_size) <= -to_block_size._4_4_) {\n      local_a4 = 0;\n      goto LAB_00015255;\n    }\n    local_a4 = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar10);\n      local_b8 = (int)(uVar1 * uVar10 >> 0x20) + local_b8 * uVar10;\n      if (to_block_size._4_4_ <= local_b8 &&\n          (uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_) break;\n      local_a4 = local_a4 + 1;\n    } while (local_a4 != 8);\n    if ((opts & 0x40U) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar9 == 0) && (local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar13 = local_98 + 1;\n      if ((opts & 0x100U) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = ""[local_a4];\n      if ((opts & 0x100U) == 0) goto LAB_00015a82;\n      pcVar13 = local_98 + 1;\n      if (uVar9 != 0) {\n        local_98[1] = 'i';\n        pcVar13 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if (local_a4 == 0 && (opts & 0x100U) == 0) goto LAB_0001526d;\n    if ((opts & 0x40U) != 0) {\nLAB_000155da:\n      local_98 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    if (local_a4 != 0) goto LAB_000155fb;\n    pcVar13 = local_98;\n    if ((opts & 0x100U) == 0) goto LAB_0001526d;\n  }\n  local_98 = pcVar13 + 1;\n  *pcVar13 = 'B';\nLAB_0001526d:\n  *local_98 = '\0';\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar18;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\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  ulonglong uVar1;\n  ulonglong uVar2;\n  int iVar3;\n  byte bVar4;\n  uintmax_t uVar5;\n  char cVar6;\n  bool bVar7;\n  uint uVar8;\n  uint uVar9;\n  uint uVar10;\n  lconv *plVar11;\n  size_t sVar12;\n  char *pcVar13;\n  size_t __n;\n  uint uVar14;\n  int iVar15;\n  uint uVar16;\n  uint uVar17;\n  char *pcVar18;\n  uint uVar19;\n  int in_GS_OFFSET;\n  longdouble lVar20;\n  longdouble lVar21;\n  longdouble lVar22;\n  longlong lVar23;\n  undefined8 uVar24;\n  longlong lVar25;\n  byte *local_bc;\n  uint local_b8;\n  int local_a4;\n  char *local_98;\n  undefined1 local_94 [8];\n  undefined2 uStack_8c;\n  char *local_7c;\n  uint local_74;\n  char *local_6c;\n  uint local_68;\n  undefined8 *local_64;\n  uint local_5c;\n  undefined8 local_54;\n  char buf_1 [41];\n  \n  _local_94 = CONCAT64(CONCAT24(uStack_8c,from_block_size._4_4_),(uint)from_block_size);\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar8 = opts & 3;\n  uVar9 = opts & 0x20;\n  uVar10 = (-(uint)(uVar9 == 0) & 0xffffffe8) + 0x400;\n  plVar11 = localeconv();\n  local_6c = plVar11->decimal_point;\n  local_74 = strlen(local_6c);\n  if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }\n  local_bc = (byte *)plVar11->grouping;\n  pcVar18 = plVar11->thousands_sep;\n  sVar12 = strlen(pcVar18);\n  pcVar13 = "";\n  if (sVar12 < 0x11) {\n    pcVar13 = pcVar18;\n  }\n  local_98 = buf + 0x287;\n  local_7c = local_98;\n  if (from_block_size._4_4_ < to_block_size._4_4_ ||\n      from_block_size._4_4_ - to_block_size._4_4_ <\n      (uint)((uint)from_block_size < (uint)to_block_size)) {\n    if (from_block_size != 0) {\n      uVar24 = __udivmoddi4(to_block_size,from_block_size,&local_54);\n      uVar17 = (uint)((ulonglong)uVar24 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar25 = __udivmoddi4(n,uVar24,&local_54);\n        lVar23 = (local_54 & 0xffffffff) * 10;\n        local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54);\n        uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar14 = (uint)local_54 * 2;\n        if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)) {\n          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);\n        }\n        else {\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }\n        if ((opts & 0x10U) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4 = -1;\nLAB_00015796:\n        if (uVar8 != 1) goto LAB_000157a9;\n        uVar8 = (uint)lVar25 & 1;\n        pcVar18 = local_98;\n        lVar23 = lVar25;\n        if (5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar20 = (longdouble)(longlong)local_94;\n    if ((longlong)from_block_size < 0) {\n      lVar20 = lVar20 + (longdouble)DAT_0001e244;\n    }\n    if ((longlong)to_block_size < 0) {\n      lVar20 = lVar20 / ((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244);\n      if ((longlong)n < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar20 = (longdouble)(longlong)n * lVar20;\n      if ((opts & 0x10U) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar22 = lVar20;\n      if ((uVar8 != 1) && (lVar20 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar20) {\n          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }\n        lVar22 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                    (short)((unkuint10)lVar22 >> 0x40));\n      __n = strlen(buf);\n      local_a4 = -1;\n      sVar12 = __n;\n    }\n    else {\n      lVar20 = lVar20 / (longdouble)(longlong)to_block_size;\n      if (-1 < (longlong)n) goto LAB_00015026;\nLAB_00015298:\n      lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20;\n      if ((opts & 0x10U) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4 = 0;\n      lVar22 = (longdouble)(int)uVar10;\n      do {\n        lVar21 = lVar22;\n        local_a4 = local_a4 + 1;\n        lVar22 = lVar21 * (longdouble)(int)uVar10;\n        if (lVar20 < lVar22) break;\n      } while (local_a4 != 8);\n      lVar20 = lVar20 / lVar21;\n      uVar17 = local_74 + 2 + (uint)(uVar9 == 0);\n      if (uVar8 == 1) {\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(buf);\n        if (__n <= uVar17) goto LAB_00015830;\n        lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar22 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));\n        __n = strlen(buf);\n        if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }\n        lVar20 = lVar22;\n        if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar20 = lVar20 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(buf);\n      sVar12 = __n;\n    }\nLAB_00015214:\n    pcVar18 = local_98 + -__n;\n    memmove(pcVar18,buf,__n);\n    local_7c = pcVar18 + sVar12;\n  }\n  else {\n    lVar23 = __udivmoddi4(from_block_size,to_block_size,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar25 = n * lVar23;\n    uVar5 = __udivdi3(lVar25,(short)lVar23,(int)((ulonglong)lVar23 >> 0x20));\n    if (n != uVar5) goto LAB_00014fe8;\n    uVar19 = 0;\n    local_68 = 0;\n    if ((opts & 0x10U) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4 = 0;\n    if ((uint)((ulonglong)lVar25 >> 0x20) < (uint)((uint)lVar25 < uVar10)) goto LAB_00015796;\n    while( true ) {\n      lVar25 = __udivmoddi4(lVar25,uVar10,0,local_64);\n      uVar16 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar14 = (uint)lVar25;\n      uVar17 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar17 / (ulonglong)uVar10;\n      local_68 = (uint)uVar1;\n      uVar17 = ((int)uVar19 >> 1) + (uVar17 % uVar10) * 2;\n      uVar19 = uVar19 + uVar17;\n      if (uVar17 < uVar10) {\n        uVar19 = (uint)(uVar19 != 0);\n      }\n      else {\n        uVar19 = (uVar10 < uVar19) + 2;\n      }\n      local_a4 = local_a4 + 1;\n      if (uVar16 < (uVar14 < uVar10)) break;\n      if (local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar16 != 0 || -uVar16 < (uint)(9 < uVar14)) goto LAB_00015796;\n    if (uVar8 == 1) {\n      bVar7 = 2 < (local_68 & 1) + uVar19;\n    }\n    else {\n      bVar7 = uVar19 != 0 && uVar8 == 0;\n    }\n    cVar6 = (char)uVar1;\n    if (bVar7) {\n      if (local_68 == 9) {\n        lVar23 = lVar25 + 1;\n        lVar25 = lVar25 + 1;\n        if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar6 = cVar6 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((opts & 8U) != 0) goto LAB_00015b3b;\n      cVar6 = '0';\n    }\n    else {\n      cVar6 = cVar6 + '0';\n    }\n    buf[0x286] = cVar6;\n    local_7c = buf + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar17 = iVar15 + local_74 & 0xfffffffc;\n      if (3 < uVar17) {\n        uVar14 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);\n      }\n    }\nLAB_00015b39:\n    uVar19 = 0;\nLAB_00015b3b:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if (uVar8 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if ((uVar8 == 0) && (0 < (int)(local_68 + uVar19))) {\nLAB_000157bb:\n      local_5c = opts & 0x10;\n      pcVar18 = local_7c;\n      lVar23 = lVar25 + 1;\n      if (((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||\n         (lVar23 = lVar25 + 1, local_a4 == 8)) goto LAB_000157f4;\n      local_a4 = local_a4 + 1;\n      if ((opts & 8U) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }\n      }\n      pcVar18 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));\n    }\n  }\n  if ((opts & 4U) != 0) {\n    uVar17 = (int)local_7c - (int)pcVar18;\n    sVar12 = strlen(pcVar13);\n    __memcpy_chk(buf_1,pcVar18,(short)uVar17,0x29);\n    uVar8 = 0xffffffff;\n    while( true ) {\n      bVar4 = *local_bc;\n      if (bVar4 != 0) {\n        uVar8 = (uint)bVar4;\n        if (0x7e < bVar4) {\n          uVar8 = uVar17;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar17 < uVar8) break;\n      uVar17 = uVar17 - uVar8;\n      pcVar18 = local_7c + -uVar8;\n      memcpy(pcVar18,buf_1 + uVar17,uVar8);\n      if (uVar17 == 0) goto LAB_00015240;\n      local_7c = pcVar18 + -sVar12;\n      memcpy(local_7c,pcVar13,sVar12);\n    }\n    pcVar18 = local_7c + -uVar17;\n    memcpy(pcVar18,buf_1,uVar17);\n  }\nLAB_00015240:\n  if ((opts & 0x80U) == 0) goto LAB_0001526d;\n  if (local_a4 == -1) {\n    if (to_block_size._4_4_ == 0 && (uint)(1 < (uint)to_block_size) <= -to_block_size._4_4_) {\n      local_a4 = 0;\n      goto LAB_00015255;\n    }\n    local_a4 = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar10);\n      local_b8 = (int)(uVar1 * uVar10 >> 0x20) + local_b8 * uVar10;\n      if (to_block_size._4_4_ <= local_b8 &&\n          (uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_) break;\n      local_a4 = local_a4 + 1;\n    } while (local_a4 != 8);\n    if ((opts & 0x40U) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar9 == 0) && (local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar13 = local_98 + 1;\n      if ((opts & 0x100U) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = ""[local_a4];\n      if ((opts & 0x100U) == 0) goto LAB_00015a82;\n      pcVar13 = local_98 + 1;\n      if (uVar9 != 0) {\n        local_98[1] = 'i';\n        pcVar13 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if (local_a4 == 0 && (opts & 0x100U) == 0) goto LAB_0001526d;\n    if ((opts & 0x40U) != 0) {\nLAB_000155da:\n      local_98 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    if (local_a4 != 0) goto LAB_000155fb;\n    pcVar13 = local_98;\n    if ((opts & 0x100U) == 0) goto LAB_0001526d;\n  }\n  local_98 = pcVar13 + 1;\n  *pcVar13 = 'B';\nLAB_0001526d:\n  *local_98 = '\0';\n  if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar18;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "ulonglong uVar1;" type_identifier identifier ;) (declaration "ulonglong uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "uintmax_t uVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "lconv *plVar11;" type_identifier (pointer_declarator "*plVar11" * identifier) ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "uint uVar19;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longdouble lVar20;" type_identifier identifier ;) (declaration "longdouble lVar21;" type_identifier identifier ;) (declaration "longdouble lVar22;" type_identifier identifier ;) (declaration "longlong lVar23;" type_identifier identifier ;) (declaration "undefined8 uVar24;" type_identifier identifier ;) (declaration "longlong lVar25;" type_identifier identifier ;) (declaration "byte *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "char *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined1 local_94 [8];" type_identifier (array_declarator "local_94 [8]" identifier [ number_literal ]) ;) (declaration "undefined2 uStack_8c;" type_identifier identifier ;) (declaration "char *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "char *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "undefined8 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined8 local_54;" type_identifier identifier ;) (declaration "char buf_1 [41];" primitive_type (array_declarator "buf_1 [41]" identifier [ number_literal ]) ;) (expression_statement "_local_94 = CONCAT64(CONCAT24(uStack_8c,from_block_size._4_4_),(uint)from_block_size);" (assignment_expression "_local_94 = CONCAT64(CONCAT24(uStack_8c,from_block_size._4_4_),(uint)from_block_size)" identifier = (call_expression "CONCAT64(CONCAT24(uStack_8c,from_block_size._4_4_),(uint)from_block_size)" identifier (argument_list "(CONCAT24(uStack_8c,from_block_size._4_4_),(uint)from_block_size)" ( (call_expression "CONCAT24(uStack_8c,from_block_size._4_4_)" identifier (argument_list "(uStack_8c,from_block_size._4_4_)" ( identifier , (field_expression "from_block_size._4_4_" identifier . field_identifier) ))) , (cast_expression "(uint)from_block_size" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "iVar3 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar3 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar8 = opts & 3;" (assignment_expression "uVar8 = opts & 3" identifier = (binary_expression "opts & 3" identifier & number_literal)) ;) (expression_statement "uVar9 = opts & 0x20;" (assignment_expression "uVar9 = opts & 0x20" identifier = (binary_expression "opts & 0x20" identifier & number_literal)) ;) (expression_statement "uVar10 = (-(uint)(uVar9 == 0) & 0xffffffe8) + 0x400;" (assignment_expression "uVar10 = (-(uint)(uVar9 == 0) & 0xffffffe8) + 0x400" identifier = (binary_expression "(-(uint)(uVar9 == 0) & 0xffffffe8) + 0x400" (parenthesized_expression "(-(uint)(uVar9 == 0) & 0xffffffe8)" ( (binary_expression "-(uint)(uVar9 == 0) & 0xffffffe8" (unary_expression "-(uint)(uVar9 == 0)" - (call_expression "(uint)(uVar9 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) (expression_statement "plVar11 = localeconv();" (assignment_expression "plVar11 = localeconv()" identifier = (call_expression "localeconv()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_6c = plVar11->decimal_point;" (assignment_expression "local_6c = plVar11->decimal_point" identifier = (field_expression "plVar11->decimal_point" identifier -> field_identifier)) ;) (expression_statement "local_74 = strlen(local_6c);" (assignment_expression "local_74 = strlen(local_6c)" identifier = (call_expression "strlen(local_6c)" identifier (argument_list "(local_6c)" ( identifier )))) ;) (if_statement "if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }" if (parenthesized_expression "(0xf < local_74 - 1)" ( (binary_expression "0xf < local_74 - 1" number_literal < (binary_expression "local_74 - 1" identifier - number_literal)) )) (compound_statement "{\n    local_74 = 1;\n    local_6c = ".";\n  }" { (expression_statement "local_74 = 1;" (assignment_expression "local_74 = 1" identifier = number_literal) ;) (expression_statement "local_6c = ".";" (assignment_expression "local_6c = "."" identifier = (string_literal ""."" " string_content ")) ;) })) (expression_statement "local_bc = (byte *)plVar11->grouping;" (assignment_expression "local_bc = (byte *)plVar11->grouping" identifier = (cast_expression "(byte *)plVar11->grouping" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar11->grouping" identifier -> field_identifier))) ;) (expression_statement "pcVar18 = plVar11->thousands_sep;" (assignment_expression "pcVar18 = plVar11->thousands_sep" identifier = (field_expression "plVar11->thousands_sep" identifier -> field_identifier)) ;) (expression_statement "sVar12 = strlen(pcVar18);" (assignment_expression "sVar12 = strlen(pcVar18)" identifier = (call_expression "strlen(pcVar18)" identifier (argument_list "(pcVar18)" ( identifier )))) ;) (expression_statement "pcVar13 = "";" (assignment_expression "pcVar13 = """ identifier = (string_literal """" " ")) ;) (if_statement "if (sVar12 < 0x11) {\n    pcVar13 = pcVar18;\n  }" if (parenthesized_expression "(sVar12 < 0x11)" ( (binary_expression "sVar12 < 0x11" identifier < number_literal) )) (compound_statement "{\n    pcVar13 = pcVar18;\n  }" { (expression_statement "pcVar13 = pcVar18;" (assignment_expression "pcVar13 = pcVar18" identifier = identifier) ;) })) (expression_statement "local_98 = buf + 0x287;" (assignment_expression "local_98 = buf + 0x287" identifier = (binary_expression "buf + 0x287" identifier + number_literal)) ;) (expression_statement "local_7c = local_98;" (assignment_expression "local_7c = local_98" identifier = identifier) ;) (if_statement "if (from_block_size._4_4_ < to_block_size._4_4_ ||\n      from_block_size._4_4_ - to_block_size._4_4_ <\n      (uint)((uint)from_block_size < (uint)to_block_size)) {\n    if (from_block_size != 0) {\n      uVar24 = __udivmoddi4(to_block_size,from_block_size,&local_54);\n      uVar17 = (uint)((ulonglong)uVar24 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar25 = __udivmoddi4(n,uVar24,&local_54);\n        lVar23 = (local_54 & 0xffffffff) * 10;\n        local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54);\n        uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar14 = (uint)local_54 * 2;\n        if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)) {\n          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);\n        }\n        else {\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }\n        if ((opts & 0x10U) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4 = -1;\nLAB_00015796:\n        if (uVar8 != 1) goto LAB_000157a9;\n        uVar8 = (uint)lVar25 & 1;\n        pcVar18 = local_98;\n        lVar23 = lVar25;\n        if (5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar20 = (longdouble)(longlong)local_94;\n    if ((longlong)from_block_size < 0) {\n      lVar20 = lVar20 + (longdouble)DAT_0001e244;\n    }\n    if ((longlong)to_block_size < 0) {\n      lVar20 = lVar20 / ((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244);\n      if ((longlong)n < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar20 = (longdouble)(longlong)n * lVar20;\n      if ((opts & 0x10U) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar22 = lVar20;\n      if ((uVar8 != 1) && (lVar20 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar20) {\n          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }\n        lVar22 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                    (short)((unkuint10)lVar22 >> 0x40));\n      __n = strlen(buf);\n      local_a4 = -1;\n      sVar12 = __n;\n    }\n    else {\n      lVar20 = lVar20 / (longdouble)(longlong)to_block_size;\n      if (-1 < (longlong)n) goto LAB_00015026;\nLAB_00015298:\n      lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20;\n      if ((opts & 0x10U) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4 = 0;\n      lVar22 = (longdouble)(int)uVar10;\n      do {\n        lVar21 = lVar22;\n        local_a4 = local_a4 + 1;\n        lVar22 = lVar21 * (longdouble)(int)uVar10;\n        if (lVar20 < lVar22) break;\n      } while (local_a4 != 8);\n      lVar20 = lVar20 / lVar21;\n      uVar17 = local_74 + 2 + (uint)(uVar9 == 0);\n      if (uVar8 == 1) {\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(buf);\n        if (__n <= uVar17) goto LAB_00015830;\n        lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar22 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));\n        __n = strlen(buf);\n        if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }\n        lVar20 = lVar22;\n        if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar20 = lVar20 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(buf);\n      sVar12 = __n;\n    }\nLAB_00015214:\n    pcVar18 = local_98 + -__n;\n    memmove(pcVar18,buf,__n);\n    local_7c = pcVar18 + sVar12;\n  }\n  else {\n    lVar23 = __udivmoddi4(from_block_size,to_block_size,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar25 = n * lVar23;\n    uVar5 = __udivdi3(lVar25,(short)lVar23,(int)((ulonglong)lVar23 >> 0x20));\n    if (n != uVar5) goto LAB_00014fe8;\n    uVar19 = 0;\n    local_68 = 0;\n    if ((opts & 0x10U) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4 = 0;\n    if ((uint)((ulonglong)lVar25 >> 0x20) < (uint)((uint)lVar25 < uVar10)) goto LAB_00015796;\n    while( true ) {\n      lVar25 = __udivmoddi4(lVar25,uVar10,0,local_64);\n      uVar16 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar14 = (uint)lVar25;\n      uVar17 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar17 / (ulonglong)uVar10;\n      local_68 = (uint)uVar1;\n      uVar17 = ((int)uVar19 >> 1) + (uVar17 % uVar10) * 2;\n      uVar19 = uVar19 + uVar17;\n      if (uVar17 < uVar10) {\n        uVar19 = (uint)(uVar19 != 0);\n      }\n      else {\n        uVar19 = (uVar10 < uVar19) + 2;\n      }\n      local_a4 = local_a4 + 1;\n      if (uVar16 < (uVar14 < uVar10)) break;\n      if (local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar16 != 0 || -uVar16 < (uint)(9 < uVar14)) goto LAB_00015796;\n    if (uVar8 == 1) {\n      bVar7 = 2 < (local_68 & 1) + uVar19;\n    }\n    else {\n      bVar7 = uVar19 != 0 && uVar8 == 0;\n    }\n    cVar6 = (char)uVar1;\n    if (bVar7) {\n      if (local_68 == 9) {\n        lVar23 = lVar25 + 1;\n        lVar25 = lVar25 + 1;\n        if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar6 = cVar6 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((opts & 8U) != 0) goto LAB_00015b3b;\n      cVar6 = '0';\n    }\n    else {\n      cVar6 = cVar6 + '0';\n    }\n    buf[0x286] = cVar6;\n    local_7c = buf + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar17 = iVar15 + local_74 & 0xfffffffc;\n      if (3 < uVar17) {\n        uVar14 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);\n      }\n    }\nLAB_00015b39:\n    uVar19 = 0;\nLAB_00015b3b:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if (uVar8 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if ((uVar8 == 0) && (0 < (int)(local_68 + uVar19))) {\nLAB_000157bb:\n      local_5c = opts & 0x10;\n      pcVar18 = local_7c;\n      lVar23 = lVar25 + 1;\n      if (((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||\n         (lVar23 = lVar25 + 1, local_a4 == 8)) goto LAB_000157f4;\n      local_a4 = local_a4 + 1;\n      if ((opts & 8U) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }\n      }\n      pcVar18 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));\n    }\n  }" if (parenthesized_expression "(from_block_size._4_4_ < to_block_size._4_4_ ||\n      from_block_size._4_4_ - to_block_size._4_4_ <\n      (uint)((uint)from_block_size < (uint)to_block_size))" ( (binary_expression "from_block_size._4_4_ < to_block_size._4_4_ ||\n      from_block_size._4_4_ - to_block_size._4_4_ <\n      (uint)((uint)from_block_size < (uint)to_block_size)" (binary_expression "from_block_size._4_4_ < to_block_size._4_4_" (field_expression "from_block_size._4_4_" identifier . field_identifier) < (field_expression "to_block_size._4_4_" identifier . field_identifier)) || (binary_expression "from_block_size._4_4_ - to_block_size._4_4_ <\n      (uint)((uint)from_block_size < (uint)to_block_size)" (binary_expression "from_block_size._4_4_ - to_block_size._4_4_" (field_expression "from_block_size._4_4_" identifier . field_identifier) - (field_expression "to_block_size._4_4_" identifier . field_identifier)) < (call_expression "(uint)((uint)from_block_size < (uint)to_block_size)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)from_block_size < (uint)to_block_size)" ( (binary_expression "(uint)from_block_size < (uint)to_block_size" (cast_expression "(uint)from_block_size" ( (type_descriptor "uint" type_identifier) ) identifier) < (cast_expression "(uint)to_block_size" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n    if (from_block_size != 0) {\n      uVar24 = __udivmoddi4(to_block_size,from_block_size,&local_54);\n      uVar17 = (uint)((ulonglong)uVar24 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar25 = __udivmoddi4(n,uVar24,&local_54);\n        lVar23 = (local_54 & 0xffffffff) * 10;\n        local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54);\n        uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar14 = (uint)local_54 * 2;\n        if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)) {\n          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);\n        }\n        else {\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }\n        if ((opts & 0x10U) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4 = -1;\nLAB_00015796:\n        if (uVar8 != 1) goto LAB_000157a9;\n        uVar8 = (uint)lVar25 & 1;\n        pcVar18 = local_98;\n        lVar23 = lVar25;\n        if (5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar20 = (longdouble)(longlong)local_94;\n    if ((longlong)from_block_size < 0) {\n      lVar20 = lVar20 + (longdouble)DAT_0001e244;\n    }\n    if ((longlong)to_block_size < 0) {\n      lVar20 = lVar20 / ((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244);\n      if ((longlong)n < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar20 = (longdouble)(longlong)n * lVar20;\n      if ((opts & 0x10U) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar22 = lVar20;\n      if ((uVar8 != 1) && (lVar20 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar20) {\n          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }\n        lVar22 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                    (short)((unkuint10)lVar22 >> 0x40));\n      __n = strlen(buf);\n      local_a4 = -1;\n      sVar12 = __n;\n    }\n    else {\n      lVar20 = lVar20 / (longdouble)(longlong)to_block_size;\n      if (-1 < (longlong)n) goto LAB_00015026;\nLAB_00015298:\n      lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20;\n      if ((opts & 0x10U) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4 = 0;\n      lVar22 = (longdouble)(int)uVar10;\n      do {\n        lVar21 = lVar22;\n        local_a4 = local_a4 + 1;\n        lVar22 = lVar21 * (longdouble)(int)uVar10;\n        if (lVar20 < lVar22) break;\n      } while (local_a4 != 8);\n      lVar20 = lVar20 / lVar21;\n      uVar17 = local_74 + 2 + (uint)(uVar9 == 0);\n      if (uVar8 == 1) {\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(buf);\n        if (__n <= uVar17) goto LAB_00015830;\n        lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar22 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));\n        __n = strlen(buf);\n        if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }\n        lVar20 = lVar22;\n        if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar20 = lVar20 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(buf);\n      sVar12 = __n;\n    }\nLAB_00015214:\n    pcVar18 = local_98 + -__n;\n    memmove(pcVar18,buf,__n);\n    local_7c = pcVar18 + sVar12;\n  }" { (if_statement "if (from_block_size != 0) {\n      uVar24 = __udivmoddi4(to_block_size,from_block_size,&local_54);\n      uVar17 = (uint)((ulonglong)uVar24 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar25 = __udivmoddi4(n,uVar24,&local_54);\n        lVar23 = (local_54 & 0xffffffff) * 10;\n        local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54);\n        uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar14 = (uint)local_54 * 2;\n        if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)) {\n          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);\n        }\n        else {\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }\n        if ((opts & 0x10U) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4 = -1;\nLAB_00015796:\n        if (uVar8 != 1) goto LAB_000157a9;\n        uVar8 = (uint)lVar25 & 1;\n        pcVar18 = local_98;\n        lVar23 = lVar25;\n        if (5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }" if (parenthesized_expression "(from_block_size != 0)" ( (binary_expression "from_block_size != 0" identifier != number_literal) )) (compound_statement "{\n      uVar24 = __udivmoddi4(to_block_size,from_block_size,&local_54);\n      uVar17 = (uint)((ulonglong)uVar24 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar25 = __udivmoddi4(n,uVar24,&local_54);\n        lVar23 = (local_54 & 0xffffffff) * 10;\n        local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54);\n        uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar14 = (uint)local_54 * 2;\n        if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)) {\n          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);\n        }\n        else {\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }\n        if ((opts & 0x10U) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4 = -1;\nLAB_00015796:\n        if (uVar8 != 1) goto LAB_000157a9;\n        uVar8 = (uint)lVar25 & 1;\n        pcVar18 = local_98;\n        lVar23 = lVar25;\n        if (5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }" { (expression_statement "uVar24 = __udivmoddi4(to_block_size,from_block_size,&local_54);" (assignment_expression "uVar24 = __udivmoddi4(to_block_size,from_block_size,&local_54)" identifier = (call_expression "__udivmoddi4(to_block_size,from_block_size,&local_54)" identifier (argument_list "(to_block_size,from_block_size,&local_54)" ( identifier , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (expression_statement "uVar17 = (uint)((ulonglong)uVar24 >> 0x20);" (assignment_expression "uVar17 = (uint)((ulonglong)uVar24 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar24 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar24 >> 0x20)" ( (binary_expression "(ulonglong)uVar24 >> 0x20" (cast_expression "(ulonglong)uVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar25 = __udivmoddi4(n,uVar24,&local_54);\n        lVar23 = (local_54 & 0xffffffff) * 10;\n        local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54);\n        uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar14 = (uint)local_54 * 2;\n        if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)) {\n          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);\n        }\n        else {\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }\n        if ((opts & 0x10U) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4 = -1;\nLAB_00015796:\n        if (uVar8 != 1) goto LAB_000157a9;\n        uVar8 = (uint)lVar25 & 1;\n        pcVar18 = local_98;\n        lVar23 = lVar25;\n        if (5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }" if (parenthesized_expression "(local_54._4_4_ == 0 && (uint)local_54 == 0)" ( (binary_expression "local_54._4_4_ == 0 && (uint)local_54 == 0" (binary_expression "local_54._4_4_ == 0" (field_expression "local_54._4_4_" identifier . field_identifier) == number_literal) && (binary_expression "(uint)local_54 == 0" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal)) )) (compound_statement "{\n        lVar25 = __udivmoddi4(n,uVar24,&local_54);\n        lVar23 = (local_54 & 0xffffffff) * 10;\n        local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54);\n        uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar14 = (uint)local_54 * 2;\n        if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)) {\n          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);\n        }\n        else {\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }\n        if ((opts & 0x10U) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4 = -1;\nLAB_00015796:\n        if (uVar8 != 1) goto LAB_000157a9;\n        uVar8 = (uint)lVar25 & 1;\n        pcVar18 = local_98;\n        lVar23 = lVar25;\n        if (5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }" { (expression_statement "lVar25 = __udivmoddi4(n,uVar24,&local_54);" (assignment_expression "lVar25 = __udivmoddi4(n,uVar24,&local_54)" identifier = (call_expression "__udivmoddi4(n,uVar24,&local_54)" identifier (argument_list "(n,uVar24,&local_54)" ( identifier , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (expression_statement "lVar23 = (local_54 & 0xffffffff) * 10;" (assignment_expression "lVar23 = (local_54 & 0xffffffff) * 10" identifier = (binary_expression "(local_54 & 0xffffffff) * 10" (parenthesized_expression "(local_54 & 0xffffffff)" ( (binary_expression "local_54 & 0xffffffff" identifier & number_literal) )) * number_literal)) ;) (expression_statement "local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54);" (assignment_expression "local_68 = __udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54)" identifier = (call_expression "__udivmoddi4((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54)" identifier (argument_list "((int)lVar23,(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10,\n                                uVar24,&local_54)" ( (cast_expression "(int)lVar23" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "(int)((ulonglong)lVar23 >> 0x20) + local_54._4_4_ * 10" (cast_expression "(int)((ulonglong)lVar23 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "local_54._4_4_ * 10" (field_expression "local_54._4_4_" identifier . field_identifier) * number_literal)) , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (expression_statement "uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;" (assignment_expression "uVar16 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f" identifier = (binary_expression "local_54._4_4_ << 1 | (uint)local_54 >> 0x1f" (binary_expression "local_54._4_4_ << 1" (field_expression "local_54._4_4_" identifier . field_identifier) << number_literal) | (binary_expression "(uint)local_54 >> 0x1f" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal))) ;) (expression_statement "uVar14 = (uint)local_54 * 2;" (assignment_expression "uVar14 = (uint)local_54 * 2" identifier = (binary_expression "(uint)local_54 * 2" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ;) (if_statement "if (uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)) {\n          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);\n        }\n        else {\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }" if (parenthesized_expression "(uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24))" ( (binary_expression "uVar16 < uVar17 || uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)" (binary_expression "uVar16 < uVar17" identifier < identifier) || (binary_expression "uVar16 - uVar17 < (uint)(uVar14 < (uint)uVar24)" (binary_expression "uVar16 - uVar17" identifier - identifier) < (call_expression "(uint)(uVar14 < (uint)uVar24)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 < (uint)uVar24)" ( (binary_expression "uVar14 < (uint)uVar24" identifier < (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n          uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);\n        }" { (expression_statement "uVar19 = (uint)(uVar14 != 0 || uVar16 != 0);" (assignment_expression "uVar19 = (uint)(uVar14 != 0 || uVar16 != 0)" identifier = (call_expression "(uint)(uVar14 != 0 || uVar16 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar14 != 0 || uVar16 != 0)" ( (binary_expression "uVar14 != 0 || uVar16 != 0" (binary_expression "uVar14 != 0" identifier != number_literal) || (binary_expression "uVar16 != 0" identifier != number_literal)) )))) ;) }) (else_clause "else {\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }" else (compound_statement "{\n          uVar19 = 3;\n          if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }\n        }" { (expression_statement "uVar19 = 3;" (assignment_expression "uVar19 = 3" identifier = number_literal) ;) (if_statement "if (uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16) {\n            uVar19 = 2;\n          }" if (parenthesized_expression "(uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16)" ( (binary_expression "uVar16 <= uVar17 && (uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16" (binary_expression "uVar16 <= uVar17" identifier <= identifier) && (binary_expression "(uint)((uint)uVar24 < uVar14) <= uVar17 - uVar16" (call_expression "(uint)((uint)uVar24 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar24 < uVar14)" ( (binary_expression "(uint)uVar24 < uVar14" (cast_expression "(uint)uVar24" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))) <= (binary_expression "uVar17 - uVar16" identifier - identifier))) )) (compound_statement "{\n            uVar19 = 2;\n          }" { (expression_statement "uVar19 = 2;" (assignment_expression "uVar19 = 2" identifier = number_literal) ;) })) }))) (if_statement "if ((opts & 0x10U) != 0) goto LAB_000153b5;" if (parenthesized_expression "((opts & 0x10U) != 0)" ( (binary_expression "(opts & 0x10U) != 0" (parenthesized_expression "(opts & 0x10U)" ( (binary_expression "opts & 0x10U" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000153b5;" goto statement_identifier ;)) (labeled_statement "LAB_0001578e:\n        local_a4 = -1;" statement_identifier : (expression_statement "local_a4 = -1;" (assignment_expression "local_a4 = -1" identifier = number_literal) ;)) (labeled_statement "LAB_00015796:\n        if (uVar8 != 1) goto LAB_000157a9;" statement_identifier : (if_statement "if (uVar8 != 1) goto LAB_000157a9;" if (parenthesized_expression "(uVar8 != 1)" ( (binary_expression "uVar8 != 1" identifier != number_literal) )) (goto_statement "goto LAB_000157a9;" goto statement_identifier ;))) (expression_statement "uVar8 = (uint)lVar25 & 1;" (assignment_expression "uVar8 = (uint)lVar25 & 1" identifier = (binary_expression "(uint)lVar25 & 1" (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "pcVar18 = local_98;" (assignment_expression "pcVar18 = local_98" identifier = identifier) ;) (expression_statement "lVar23 = lVar25;" (assignment_expression "lVar23 = lVar25" identifier = identifier) ;) (if_statement "if (5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)) goto LAB_000157bb;" if (parenthesized_expression "(5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68))" ( (binary_expression "5 < (int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)" number_literal < (cast_expression "(int)((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68)" ( (binary_expression "(uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)) + local_68" (parenthesized_expression "(uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19))" ( (binary_expression "uVar8 + uVar19 != 0 || CARRY4(uVar8,uVar19)" (binary_expression "uVar8 + uVar19 != 0" (binary_expression "uVar8 + uVar19" identifier + identifier) != number_literal) || (call_expression "CARRY4(uVar8,uVar19)" identifier (argument_list "(uVar8,uVar19)" ( identifier , identifier )))) )) + identifier) )))) )) (goto_statement "goto LAB_000157bb;" goto statement_identifier ;)) (goto_statement "goto LAB_000157f4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00014fe8:\n    lVar20 = (longdouble)(longlong)local_94;" statement_identifier : (expression_statement "lVar20 = (longdouble)(longlong)local_94;" (assignment_expression "lVar20 = (longdouble)(longlong)local_94" identifier = (cast_expression "(longdouble)(longlong)local_94" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)local_94" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;)) (if_statement "if ((longlong)from_block_size < 0) {\n      lVar20 = lVar20 + (longdouble)DAT_0001e244;\n    }" if (parenthesized_expression "((longlong)from_block_size < 0)" ( (binary_expression "(longlong)from_block_size < 0" (cast_expression "(longlong)from_block_size" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n      lVar20 = lVar20 + (longdouble)DAT_0001e244;\n    }" { (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar20 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if ((longlong)to_block_size < 0) {\n      lVar20 = lVar20 / ((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244);\n      if ((longlong)n < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar20 = (longdouble)(longlong)n * lVar20;\n      if ((opts & 0x10U) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar22 = lVar20;\n      if ((uVar8 != 1) && (lVar20 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar20) {\n          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }\n        lVar22 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                    (short)((unkuint10)lVar22 >> 0x40));\n      __n = strlen(buf);\n      local_a4 = -1;\n      sVar12 = __n;\n    }\n    else {\n      lVar20 = lVar20 / (longdouble)(longlong)to_block_size;\n      if (-1 < (longlong)n) goto LAB_00015026;\nLAB_00015298:\n      lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20;\n      if ((opts & 0x10U) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4 = 0;\n      lVar22 = (longdouble)(int)uVar10;\n      do {\n        lVar21 = lVar22;\n        local_a4 = local_a4 + 1;\n        lVar22 = lVar21 * (longdouble)(int)uVar10;\n        if (lVar20 < lVar22) break;\n      } while (local_a4 != 8);\n      lVar20 = lVar20 / lVar21;\n      uVar17 = local_74 + 2 + (uint)(uVar9 == 0);\n      if (uVar8 == 1) {\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(buf);\n        if (__n <= uVar17) goto LAB_00015830;\n        lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar22 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));\n        __n = strlen(buf);\n        if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }\n        lVar20 = lVar22;\n        if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar20 = lVar20 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(buf);\n      sVar12 = __n;\n    }" if (parenthesized_expression "((longlong)to_block_size < 0)" ( (binary_expression "(longlong)to_block_size < 0" (cast_expression "(longlong)to_block_size" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n      lVar20 = lVar20 / ((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244);\n      if ((longlong)n < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar20 = (longdouble)(longlong)n * lVar20;\n      if ((opts & 0x10U) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar22 = lVar20;\n      if ((uVar8 != 1) && (lVar20 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar20) {\n          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }\n        lVar22 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                    (short)((unkuint10)lVar22 >> 0x40));\n      __n = strlen(buf);\n      local_a4 = -1;\n      sVar12 = __n;\n    }" { (expression_statement "lVar20 = lVar20 / ((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244);" (assignment_expression "lVar20 = lVar20 / ((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244)" identifier = (binary_expression "lVar20 / ((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244)" identifier / (parenthesized_expression "((longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244)" ( (binary_expression "(longdouble)(longlong)to_block_size + (longdouble)DAT_0001e244" (cast_expression "(longdouble)(longlong)to_block_size" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)to_block_size" ( (type_descriptor "longlong" type_identifier) ) identifier)) + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )))) ;) (if_statement "if ((longlong)n < 0) goto LAB_00015298;" if (parenthesized_expression "((longlong)n < 0)" ( (binary_expression "(longlong)n < 0" (cast_expression "(longlong)n" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (goto_statement "goto LAB_00015298;" goto statement_identifier ;)) (labeled_statement "LAB_00015026:\n      lVar20 = (longdouble)(longlong)n * lVar20;" statement_identifier : (expression_statement "lVar20 = (longdouble)(longlong)n * lVar20;" (assignment_expression "lVar20 = (longdouble)(longlong)n * lVar20" identifier = (binary_expression "(longdouble)(longlong)n * lVar20" (cast_expression "(longdouble)(longlong)n" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)n" ( (type_descriptor "longlong" type_identifier) ) identifier)) * identifier)) ;)) (if_statement "if ((opts & 0x10U) != 0) goto LAB_00015036;" if (parenthesized_expression "((opts & 0x10U) != 0)" ( (binary_expression "(opts & 0x10U) != 0" (parenthesized_expression "(opts & 0x10U)" ( (binary_expression "opts & 0x10U" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015036;" goto statement_identifier ;)) (labeled_statement "LAB_000151c8:\n      lVar22 = lVar20;" statement_identifier : (expression_statement "lVar22 = lVar20;" (assignment_expression "lVar22 = lVar20" identifier = identifier) ;)) (if_statement "if ((uVar8 != 1) && (lVar20 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar20) {\n          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }\n        lVar22 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n      }" if (parenthesized_expression "((uVar8 != 1) && (lVar20 < _DAT_0001e250))" ( (binary_expression "(uVar8 != 1) && (lVar20 < _DAT_0001e250)" (parenthesized_expression "(uVar8 != 1)" ( (binary_expression "uVar8 != 1" identifier != number_literal) )) && (parenthesized_expression "(lVar20 < _DAT_0001e250)" ( (binary_expression "lVar20 < _DAT_0001e250" identifier < identifier) ))) )) (compound_statement "{\n        if ((longdouble)DAT_0001e248 <= lVar20) {\n          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }\n        lVar22 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }\n      }" { (if_statement "if ((longdouble)DAT_0001e248 <= lVar20) {\n          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }" if (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar20)" ( (binary_expression "(longdouble)DAT_0001e248 <= lVar20" (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n          uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }" { (expression_statement "uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248)" identifier = (cast_expression "(ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar20 - (longdouble)DAT_0001e248)" identifier (argument_list "(lVar20 - (longdouble)DAT_0001e248)" ( (binary_expression "lVar20 - (longdouble)DAT_0001e248" identifier - (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ))))) ;) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" identifier . field_identifier) = (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier = (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" ( (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" identifier . field_identifier) + number_literal) , (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" identifier = identifier) ;) }) (else_clause "else {\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }" else (compound_statement "{\n          uVar1 = (ulonglong)ROUND(lVar20);\n          local_54 = uVar1;\n        }" { (expression_statement "uVar1 = (ulonglong)ROUND(lVar20);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar20)" identifier = (cast_expression "(ulonglong)ROUND(lVar20)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar20)" identifier (argument_list "(lVar20)" ( identifier ))))) ;) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" identifier = identifier) ;) }))) (expression_statement "lVar22 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar22 = (longdouble)(longlong)uVar1" identifier = (cast_expression "(longdouble)(longlong)uVar1" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) (if_statement "if ((longlong)uVar1 < 0) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }" if (parenthesized_expression "((longlong)uVar1 < 0)" ( (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }" { (expression_statement "lVar22 = lVar22 + (longdouble)DAT_0001e244;" (assignment_expression "lVar22 = lVar22 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar22 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }" if (parenthesized_expression "(((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" ( (binary_expression "((uVar8 == 0) && (lVar20 != lVar22)) &&\n           (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar8 == 0) && (lVar20 != lVar22))" ( (binary_expression "(uVar8 == 0) && (lVar20 != lVar22)" (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "(lVar20 != lVar22)" ( (binary_expression "lVar20 != lVar22" identifier != identifier) ))) )) && (parenthesized_expression "(lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" ( (comma_expression "lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar22 = (longdouble)(longlong)(uVar1 + 1)" identifier = (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(longlong)" ( identifier ))) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )))) , (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n          lVar22 = lVar22 + (longdouble)DAT_0001e244;\n        }" { (expression_statement "lVar22 = lVar22 + (longdouble)DAT_0001e244;" (assignment_expression "lVar22 = lVar22 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar22 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) })) (expression_statement "__sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                    (short)((unkuint10)lVar22 >> 0x40));" (call_expression "__sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                    (short)((unkuint10)lVar22 >> 0x40))" identifier (argument_list "(buf,1,0xffffffff,"%.0Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                    (short)((unkuint10)lVar22 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") , (call_expression "SUB104(lVar22,0)" identifier (argument_list "(lVar22,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar22 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar22 >> 0x20)" ( (binary_expression "(unkuint10)lVar22 >> 0x20" (cast_expression "(unkuint10)lVar22" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar22 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar22 >> 0x40)" ( (binary_expression "(unkuint10)lVar22 >> 0x40" (cast_expression "(unkuint10)lVar22" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(buf);" (assignment_expression "__n = strlen(buf)" identifier = (call_expression "strlen(buf)" identifier (argument_list "(buf)" ( identifier )))) ;) (expression_statement "local_a4 = -1;" (assignment_expression "local_a4 = -1" identifier = number_literal) ;) (expression_statement "sVar12 = __n;" (assignment_expression "sVar12 = __n" identifier = identifier) ;) }) (else_clause "else {\n      lVar20 = lVar20 / (longdouble)(longlong)to_block_size;\n      if (-1 < (longlong)n) goto LAB_00015026;\nLAB_00015298:\n      lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20;\n      if ((opts & 0x10U) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4 = 0;\n      lVar22 = (longdouble)(int)uVar10;\n      do {\n        lVar21 = lVar22;\n        local_a4 = local_a4 + 1;\n        lVar22 = lVar21 * (longdouble)(int)uVar10;\n        if (lVar20 < lVar22) break;\n      } while (local_a4 != 8);\n      lVar20 = lVar20 / lVar21;\n      uVar17 = local_74 + 2 + (uint)(uVar9 == 0);\n      if (uVar8 == 1) {\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(buf);\n        if (__n <= uVar17) goto LAB_00015830;\n        lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar22 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));\n        __n = strlen(buf);\n        if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }\n        lVar20 = lVar22;\n        if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar20 = lVar20 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(buf);\n      sVar12 = __n;\n    }" else (compound_statement "{\n      lVar20 = lVar20 / (longdouble)(longlong)to_block_size;\n      if (-1 < (longlong)n) goto LAB_00015026;\nLAB_00015298:\n      lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20;\n      if ((opts & 0x10U) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4 = 0;\n      lVar22 = (longdouble)(int)uVar10;\n      do {\n        lVar21 = lVar22;\n        local_a4 = local_a4 + 1;\n        lVar22 = lVar21 * (longdouble)(int)uVar10;\n        if (lVar20 < lVar22) break;\n      } while (local_a4 != 8);\n      lVar20 = lVar20 / lVar21;\n      uVar17 = local_74 + 2 + (uint)(uVar9 == 0);\n      if (uVar8 == 1) {\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(buf);\n        if (__n <= uVar17) goto LAB_00015830;\n        lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar22 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));\n        __n = strlen(buf);\n        if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }\n        lVar20 = lVar22;\n        if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar20 = lVar20 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(buf);\n      sVar12 = __n;\n    }" { (expression_statement "lVar20 = lVar20 / (longdouble)(longlong)to_block_size;" (assignment_expression "lVar20 = lVar20 / (longdouble)(longlong)to_block_size" identifier = (binary_expression "lVar20 / (longdouble)(longlong)to_block_size" identifier / (cast_expression "(longdouble)(longlong)to_block_size" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)to_block_size" ( (type_descriptor "longlong" type_identifier) ) identifier)))) ;) (if_statement "if (-1 < (longlong)n) goto LAB_00015026;" if (parenthesized_expression "(-1 < (longlong)n)" ( (binary_expression "-1 < (longlong)n" number_literal < (cast_expression "(longlong)n" ( (type_descriptor "longlong" type_identifier) ) identifier)) )) (goto_statement "goto LAB_00015026;" goto statement_identifier ;)) (labeled_statement "LAB_00015298:\n      lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20;" statement_identifier : (expression_statement "lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20;" (assignment_expression "lVar20 = ((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20" identifier = (binary_expression "((longdouble)(longlong)n + (longdouble)DAT_0001e244) * lVar20" (parenthesized_expression "((longdouble)(longlong)n + (longdouble)DAT_0001e244)" ( (binary_expression "(longdouble)(longlong)n + (longdouble)DAT_0001e244" (cast_expression "(longdouble)(longlong)n" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)n" ( (type_descriptor "longlong" type_identifier) ) identifier)) + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )) * identifier)) ;)) (if_statement "if ((opts & 0x10U) == 0) goto LAB_000151c8;" if (parenthesized_expression "((opts & 0x10U) == 0)" ( (binary_expression "(opts & 0x10U) == 0" (parenthesized_expression "(opts & 0x10U)" ( (binary_expression "opts & 0x10U" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000151c8;" goto statement_identifier ;)) (labeled_statement "LAB_00015036:\n      local_a4 = 0;" statement_identifier : (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;)) (expression_statement "lVar22 = (longdouble)(int)uVar10;" (assignment_expression "lVar22 = (longdouble)(int)uVar10" identifier = (cast_expression "(longdouble)(int)uVar10" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n        lVar21 = lVar22;\n        local_a4 = local_a4 + 1;\n        lVar22 = lVar21 * (longdouble)(int)uVar10;\n        if (lVar20 < lVar22) break;\n      } while (local_a4 != 8);" do (compound_statement "{\n        lVar21 = lVar22;\n        local_a4 = local_a4 + 1;\n        lVar22 = lVar21 * (longdouble)(int)uVar10;\n        if (lVar20 < lVar22) break;\n      }" { (expression_statement "lVar21 = lVar22;" (assignment_expression "lVar21 = lVar22" identifier = identifier) ;) (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) (expression_statement "lVar22 = lVar21 * (longdouble)(int)uVar10;" (assignment_expression "lVar22 = lVar21 * (longdouble)(int)uVar10" identifier = (binary_expression "lVar21 * (longdouble)(int)uVar10" identifier * (cast_expression "(longdouble)(int)uVar10" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (lVar20 < lVar22) break;" if (parenthesized_expression "(lVar20 < lVar22)" ( (binary_expression "lVar20 < lVar22" identifier < identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(local_a4 != 8)" ( (binary_expression "local_a4 != 8" identifier != number_literal) )) ;) (expression_statement "lVar20 = lVar20 / lVar21;" (assignment_expression "lVar20 = lVar20 / lVar21" identifier = (binary_expression "lVar20 / lVar21" identifier / identifier)) ;) (expression_statement "uVar17 = local_74 + 2 + (uint)(uVar9 == 0);" (assignment_expression "uVar17 = local_74 + 2 + (uint)(uVar9 == 0)" identifier = (binary_expression "local_74 + 2 + (uint)(uVar9 == 0)" (binary_expression "local_74 + 2" identifier + number_literal) + (call_expression "(uint)(uVar9 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) ))))) ;) (if_statement "if (uVar8 == 1) {\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(buf);\n        if (__n <= uVar17) goto LAB_00015830;\n        lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar22 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));\n        __n = strlen(buf);\n        if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }\n        lVar20 = lVar22;\n        if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" if (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) (compound_statement "{\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(buf);\n        if (__n <= uVar17) goto LAB_00015830;\n        lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n      }" { (expression_statement "__sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40));" (call_expression "__sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40))" identifier (argument_list "(buf,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                      (short)((unkuint10)lVar20 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.1Lf"" " string_content ") , (call_expression "SUB104(lVar20,0)" identifier (argument_list "(lVar20,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x20)" ( (binary_expression "(unkuint10)lVar20 >> 0x20" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar20 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x40)" ( (binary_expression "(unkuint10)lVar20 >> 0x40" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(buf);" (assignment_expression "__n = strlen(buf)" identifier = (call_expression "strlen(buf)" identifier (argument_list "(buf)" ( identifier )))) ;) (if_statement "if (__n <= uVar17) goto LAB_00015830;" if (parenthesized_expression "(__n <= uVar17)" ( (binary_expression "__n <= uVar17" identifier <= identifier) )) (goto_statement "goto LAB_00015830;" goto statement_identifier ;)) (expression_statement "lVar20 = lVar20 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar20 = lVar20 * (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar20 * (longdouble)DAT_0001e24c" identifier * (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) }) (else_clause "else {\n        lVar22 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));\n        __n = strlen(buf);\n        if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }\n        lVar20 = lVar22;\n        if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" else (compound_statement "{\n        lVar22 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));\n        __n = strlen(buf);\n        if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }\n        lVar20 = lVar22;\n        if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" { (expression_statement "lVar22 = lVar20;" (assignment_expression "lVar22 = lVar20" identifier = identifier) ;) (if_statement "if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }" if (parenthesized_expression "(lVar20 < _DAT_0001e250)" ( (binary_expression "lVar20 < _DAT_0001e250" identifier < identifier) )) (compound_statement "{\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar22 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }\n        }" { (if_statement "if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" if (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar20)" ( (binary_expression "(longdouble)DAT_0001e248 <= lVar20" (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }" { (expression_statement "uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248)" identifier = (cast_expression "(ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar20 - (longdouble)DAT_0001e248)" identifier (argument_list "(lVar20 - (longdouble)DAT_0001e248)" ( (binary_expression "lVar20 - (longdouble)DAT_0001e248" identifier - (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ))))) ;) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" identifier . field_identifier) = (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier = (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" ( (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" identifier . field_identifier) + number_literal) , (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" identifier = identifier) ;) }) (else_clause "else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" else (compound_statement "{\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" { (expression_statement "uVar1 = (ulonglong)ROUND(lVar20);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar20)" identifier = (cast_expression "(ulonglong)ROUND(lVar20)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar20)" identifier (argument_list "(lVar20)" ( identifier ))))) ;) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" identifier = identifier) ;) }))) (expression_statement "lVar22 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar22 = (longdouble)(longlong)uVar1" identifier = (cast_expression "(longdouble)(longlong)uVar1" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) (if_statement "if ((longlong)uVar1 < 0) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "((longlong)uVar1 < 0)" ( (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar22 = lVar22 + (longdouble)DAT_0001e244;" (assignment_expression "lVar22 = lVar22 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar22 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if (((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "(((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" ( (binary_expression "((uVar8 == 0) && (lVar20 != lVar22)) &&\n             (lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar8 == 0) && (lVar20 != lVar22))" ( (binary_expression "(uVar8 == 0) && (lVar20 != lVar22)" (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "(lVar20 != lVar22)" ( (binary_expression "lVar20 != lVar22" identifier != identifier) ))) )) && (parenthesized_expression "(lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" ( (comma_expression "lVar22 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar22 = (longdouble)(longlong)(uVar1 + 1)" identifier = (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(longlong)" ( identifier ))) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )))) , (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n            lVar22 = lVar22 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar22 = lVar22 + (longdouble)DAT_0001e244;" (assignment_expression "lVar22 = lVar22 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar22 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) })) (expression_statement "__sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40));" (call_expression "__sprintf_chk(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40))" identifier (argument_list "(buf,1,0xffffffff,"%.1Lf",SUB104(lVar22,0),(int)((unkuint10)lVar22 >> 0x20),\n                      (short)((unkuint10)lVar22 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.1Lf"" " string_content ") , (call_expression "SUB104(lVar22,0)" identifier (argument_list "(lVar22,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar22 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar22 >> 0x20)" ( (binary_expression "(unkuint10)lVar22 >> 0x20" (cast_expression "(unkuint10)lVar22" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar22 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar22 >> 0x40)" ( (binary_expression "(unkuint10)lVar22 >> 0x40" (cast_expression "(unkuint10)lVar22" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(buf);" (assignment_expression "__n = strlen(buf)" identifier = (call_expression "strlen(buf)" identifier (argument_list "(buf)" ( identifier )))) ;) (if_statement "if (uVar17 < __n) {\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }" if (parenthesized_expression "(uVar17 < __n)" ( (binary_expression "uVar17 < __n" identifier < identifier) )) (compound_statement "{\n          lVar22 = lVar20 * (longdouble)DAT_0001e24c;\n        }" { (expression_statement "lVar22 = lVar20 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar22 = lVar20 * (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar20 * (longdouble)DAT_0001e24c" identifier * (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) }) (else_clause "else {\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }" else (compound_statement "{\nLAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar20 = lVar20 * (longdouble)DAT_0001e24c;\n          lVar22 = lVar20;\n          if (uVar8 == 1) goto LAB_00015192;\n        }" { (labeled_statement "LAB_00015830:\n          if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" statement_identifier : (if_statement "if (((opts & 8U) == 0) || (buf[__n - 1] != '0')) {\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" if (parenthesized_expression "(((opts & 8U) == 0) || (buf[__n - 1] != '0'))" ( (binary_expression "((opts & 8U) == 0) || (buf[__n - 1] != '0')" (parenthesized_expression "((opts & 8U) == 0)" ( (binary_expression "(opts & 8U) == 0" (parenthesized_expression "(opts & 8U)" ( (binary_expression "opts & 8U" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(buf[__n - 1] != '0')" ( (binary_expression "buf[__n - 1] != '0'" (subscript_expression "buf[__n - 1]" identifier [ (binary_expression "__n - 1" identifier - number_literal) ]) != (char_literal "'0'" ' character ')) ))) )) (compound_statement "{\n            sVar12 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" { (expression_statement "sVar12 = __n - (local_74 + 1);" (assignment_expression "sVar12 = __n - (local_74 + 1)" identifier = (binary_expression "__n - (local_74 + 1)" identifier - (parenthesized_expression "(local_74 + 1)" ( (binary_expression "local_74 + 1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_00015214;" goto statement_identifier ;) }))) (expression_statement "lVar20 = lVar20 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar20 = lVar20 * (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar20 * (longdouble)DAT_0001e24c" identifier * (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "lVar22 = lVar20;" (assignment_expression "lVar22 = lVar20" identifier = identifier) ;) (if_statement "if (uVar8 == 1) goto LAB_00015192;" if (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00015192;" goto statement_identifier ;)) }))) (expression_statement "lVar20 = lVar22;" (assignment_expression "lVar20 = lVar22" identifier = identifier) ;) (if_statement "if (lVar22 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }" if (parenthesized_expression "(lVar22 < _DAT_0001e250)" ( (binary_expression "lVar22 < _DAT_0001e250" identifier < identifier) )) (compound_statement "{\n          if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }" { (if_statement "if ((longdouble)DAT_0001e248 <= lVar22) {\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }" if (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar22)" ( (binary_expression "(longdouble)DAT_0001e248 <= lVar22" (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n            uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }" { (expression_statement "uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248)" identifier = (cast_expression "(ulonglong)ROUND(lVar22 - (longdouble)DAT_0001e248)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar22 - (longdouble)DAT_0001e248)" identifier (argument_list "(lVar22 - (longdouble)DAT_0001e248)" ( (binary_expression "lVar22 - (longdouble)DAT_0001e248" identifier - (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ))))) ;) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" identifier . field_identifier) = (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier = (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" ( (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" identifier . field_identifier) + number_literal) , (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" identifier = identifier) ;) }) (else_clause "else {\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }" else (compound_statement "{\n            uVar1 = (ulonglong)ROUND(lVar22);\n            local_54 = uVar1;\n          }" { (expression_statement "uVar1 = (ulonglong)ROUND(lVar22);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar22)" identifier = (cast_expression "(ulonglong)ROUND(lVar22)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar22)" identifier (argument_list "(lVar22)" ( identifier ))))) ;) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" identifier = identifier) ;) }))) (expression_statement "lVar20 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar20 = (longdouble)(longlong)uVar1" identifier = (cast_expression "(longdouble)(longlong)uVar1" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) (if_statement "if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "((longlong)uVar1 < 0)" ( (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar20 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if (((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "(((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" ( (binary_expression "((uVar8 == 0) && (lVar22 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar8 == 0) && (lVar22 != lVar20))" ( (binary_expression "(uVar8 == 0) && (lVar22 != lVar20)" (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "(lVar22 != lVar20)" ( (binary_expression "lVar22 != lVar20" identifier != identifier) ))) )) && (parenthesized_expression "(lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" ( (comma_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1)" identifier = (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(longlong)" ( identifier ))) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )))) , (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar20 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) })) }))) (labeled_statement "LAB_00015192:\n      lVar20 = lVar20 / (longdouble)DAT_0001e24c;" statement_identifier : (expression_statement "lVar20 = lVar20 / (longdouble)DAT_0001e24c;" (assignment_expression "lVar20 = lVar20 / (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar20 / (longdouble)DAT_0001e24c" identifier / (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) (expression_statement "__sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));" (call_expression "__sprintf_chk(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40))" identifier (argument_list "(buf,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") , (call_expression "SUB104(lVar20,0)" identifier (argument_list "(lVar20,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x20)" ( (binary_expression "(unkuint10)lVar20 >> 0x20" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar20 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x40)" ( (binary_expression "(unkuint10)lVar20 >> 0x40" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(buf);" (assignment_expression "__n = strlen(buf)" identifier = (call_expression "strlen(buf)" identifier (argument_list "(buf)" ( identifier )))) ;) (expression_statement "sVar12 = __n;" (assignment_expression "sVar12 = __n" identifier = identifier) ;) }))) (labeled_statement "LAB_00015214:\n    pcVar18 = local_98 + -__n;" statement_identifier : (expression_statement "pcVar18 = local_98 + -__n;" (assignment_expression "pcVar18 = local_98 + -__n" identifier = (binary_expression "local_98 + -__n" identifier + (unary_expression "-__n" - identifier))) ;)) (expression_statement "memmove(pcVar18,buf,__n);" (call_expression "memmove(pcVar18,buf,__n)" identifier (argument_list "(pcVar18,buf,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_7c = pcVar18 + sVar12;" (assignment_expression "local_7c = pcVar18 + sVar12" identifier = (binary_expression "pcVar18 + sVar12" identifier + identifier)) ;) }) (else_clause "else {\n    lVar23 = __udivmoddi4(from_block_size,to_block_size,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar25 = n * lVar23;\n    uVar5 = __udivdi3(lVar25,(short)lVar23,(int)((ulonglong)lVar23 >> 0x20));\n    if (n != uVar5) goto LAB_00014fe8;\n    uVar19 = 0;\n    local_68 = 0;\n    if ((opts & 0x10U) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4 = 0;\n    if ((uint)((ulonglong)lVar25 >> 0x20) < (uint)((uint)lVar25 < uVar10)) goto LAB_00015796;\n    while( true ) {\n      lVar25 = __udivmoddi4(lVar25,uVar10,0,local_64);\n      uVar16 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar14 = (uint)lVar25;\n      uVar17 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar17 / (ulonglong)uVar10;\n      local_68 = (uint)uVar1;\n      uVar17 = ((int)uVar19 >> 1) + (uVar17 % uVar10) * 2;\n      uVar19 = uVar19 + uVar17;\n      if (uVar17 < uVar10) {\n        uVar19 = (uint)(uVar19 != 0);\n      }\n      else {\n        uVar19 = (uVar10 < uVar19) + 2;\n      }\n      local_a4 = local_a4 + 1;\n      if (uVar16 < (uVar14 < uVar10)) break;\n      if (local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar16 != 0 || -uVar16 < (uint)(9 < uVar14)) goto LAB_00015796;\n    if (uVar8 == 1) {\n      bVar7 = 2 < (local_68 & 1) + uVar19;\n    }\n    else {\n      bVar7 = uVar19 != 0 && uVar8 == 0;\n    }\n    cVar6 = (char)uVar1;\n    if (bVar7) {\n      if (local_68 == 9) {\n        lVar23 = lVar25 + 1;\n        lVar25 = lVar25 + 1;\n        if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar6 = cVar6 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((opts & 8U) != 0) goto LAB_00015b3b;\n      cVar6 = '0';\n    }\n    else {\n      cVar6 = cVar6 + '0';\n    }\n    buf[0x286] = cVar6;\n    local_7c = buf + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar17 = iVar15 + local_74 & 0xfffffffc;\n      if (3 < uVar17) {\n        uVar14 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);\n      }\n    }\nLAB_00015b39:\n    uVar19 = 0;\nLAB_00015b3b:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if (uVar8 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if ((uVar8 == 0) && (0 < (int)(local_68 + uVar19))) {\nLAB_000157bb:\n      local_5c = opts & 0x10;\n      pcVar18 = local_7c;\n      lVar23 = lVar25 + 1;\n      if (((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||\n         (lVar23 = lVar25 + 1, local_a4 == 8)) goto LAB_000157f4;\n      local_a4 = local_a4 + 1;\n      if ((opts & 8U) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }\n      }\n      pcVar18 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));\n    }\n  }" else (compound_statement "{\n    lVar23 = __udivmoddi4(from_block_size,to_block_size,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar25 = n * lVar23;\n    uVar5 = __udivdi3(lVar25,(short)lVar23,(int)((ulonglong)lVar23 >> 0x20));\n    if (n != uVar5) goto LAB_00014fe8;\n    uVar19 = 0;\n    local_68 = 0;\n    if ((opts & 0x10U) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4 = 0;\n    if ((uint)((ulonglong)lVar25 >> 0x20) < (uint)((uint)lVar25 < uVar10)) goto LAB_00015796;\n    while( true ) {\n      lVar25 = __udivmoddi4(lVar25,uVar10,0,local_64);\n      uVar16 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar14 = (uint)lVar25;\n      uVar17 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar17 / (ulonglong)uVar10;\n      local_68 = (uint)uVar1;\n      uVar17 = ((int)uVar19 >> 1) + (uVar17 % uVar10) * 2;\n      uVar19 = uVar19 + uVar17;\n      if (uVar17 < uVar10) {\n        uVar19 = (uint)(uVar19 != 0);\n      }\n      else {\n        uVar19 = (uVar10 < uVar19) + 2;\n      }\n      local_a4 = local_a4 + 1;\n      if (uVar16 < (uVar14 < uVar10)) break;\n      if (local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar16 != 0 || -uVar16 < (uint)(9 < uVar14)) goto LAB_00015796;\n    if (uVar8 == 1) {\n      bVar7 = 2 < (local_68 & 1) + uVar19;\n    }\n    else {\n      bVar7 = uVar19 != 0 && uVar8 == 0;\n    }\n    cVar6 = (char)uVar1;\n    if (bVar7) {\n      if (local_68 == 9) {\n        lVar23 = lVar25 + 1;\n        lVar25 = lVar25 + 1;\n        if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar6 = cVar6 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((opts & 8U) != 0) goto LAB_00015b3b;\n      cVar6 = '0';\n    }\n    else {\n      cVar6 = cVar6 + '0';\n    }\n    buf[0x286] = cVar6;\n    local_7c = buf + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar17 = iVar15 + local_74 & 0xfffffffc;\n      if (3 < uVar17) {\n        uVar14 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);\n      }\n    }\nLAB_00015b39:\n    uVar19 = 0;\nLAB_00015b3b:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if (uVar8 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar18 = local_7c;\n    lVar23 = lVar25;\n    if ((uVar8 == 0) && (0 < (int)(local_68 + uVar19))) {\nLAB_000157bb:\n      local_5c = opts & 0x10;\n      pcVar18 = local_7c;\n      lVar23 = lVar25 + 1;\n      if (((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||\n         (lVar23 = lVar25 + 1, local_a4 == 8)) goto LAB_000157f4;\n      local_a4 = local_a4 + 1;\n      if ((opts & 8U) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }\n      }\n      pcVar18 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));\n    }\n  }" { (expression_statement "lVar23 = __udivmoddi4(from_block_size,to_block_size,&local_54);" (assignment_expression "lVar23 = __udivmoddi4(from_block_size,to_block_size,&local_54)" identifier = (call_expression "__udivmoddi4(from_block_size,to_block_size,&local_54)" identifier (argument_list "(from_block_size,to_block_size,&local_54)" ( identifier , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (if_statement "if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;" if (parenthesized_expression "(local_54._4_4_ != 0 || (uint)local_54 != 0)" ( (binary_expression "local_54._4_4_ != 0 || (uint)local_54 != 0" (binary_expression "local_54._4_4_ != 0" (field_expression "local_54._4_4_" identifier . field_identifier) != number_literal) || (binary_expression "(uint)local_54 != 0" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal)) )) (goto_statement "goto LAB_00014fe8;" goto statement_identifier ;)) (expression_statement "lVar25 = n * lVar23;" (assignment_expression "lVar25 = n * lVar23" identifier = (binary_expression "n * lVar23" identifier * identifier)) ;) (expression_statement "uVar5 = __udivdi3(lVar25,(short)lVar23,(int)((ulonglong)lVar23 >> 0x20));" (assignment_expression "uVar5 = __udivdi3(lVar25,(short)lVar23,(int)((ulonglong)lVar23 >> 0x20))" identifier = (call_expression "__udivdi3(lVar25,(short)lVar23,(int)((ulonglong)lVar23 >> 0x20))" identifier (argument_list "(lVar25,(short)lVar23,(int)((ulonglong)lVar23 >> 0x20))" ( identifier , (cast_expression "(short)lVar23" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (cast_expression "(int)((ulonglong)lVar23 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (n != uVar5) goto LAB_00014fe8;" if (parenthesized_expression "(n != uVar5)" ( (binary_expression "n != uVar5" identifier != identifier) )) (goto_statement "goto LAB_00014fe8;" goto statement_identifier ;)) (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (if_statement "if ((opts & 0x10U) == 0) goto LAB_0001578e;" if (parenthesized_expression "((opts & 0x10U) == 0)" ( (binary_expression "(opts & 0x10U) == 0" (parenthesized_expression "(opts & 0x10U)" ( (binary_expression "opts & 0x10U" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001578e;" goto statement_identifier ;)) (labeled_statement "LAB_000153b5:\n    local_64 = &local_54;" statement_identifier : (expression_statement "local_64 = &local_54;" (assignment_expression "local_64 = &local_54" identifier = (pointer_expression "&local_54" & identifier)) ;)) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (if_statement "if ((uint)((ulonglong)lVar25 >> 0x20) < (uint)((uint)lVar25 < uVar10)) goto LAB_00015796;" if (parenthesized_expression "((uint)((ulonglong)lVar25 >> 0x20) < (uint)((uint)lVar25 < uVar10))" ( (binary_expression "(uint)((ulonglong)lVar25 >> 0x20) < (uint)((uint)lVar25 < uVar10)" (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) < (call_expression "(uint)((uint)lVar25 < uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)lVar25 < uVar10)" ( (binary_expression "(uint)lVar25 < uVar10" (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) )) (goto_statement "goto LAB_00015796;" goto statement_identifier ;)) (while_statement "while( true ) {\n      lVar25 = __udivmoddi4(lVar25,uVar10,0,local_64);\n      uVar16 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar14 = (uint)lVar25;\n      uVar17 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar17 / (ulonglong)uVar10;\n      local_68 = (uint)uVar1;\n      uVar17 = ((int)uVar19 >> 1) + (uVar17 % uVar10) * 2;\n      uVar19 = uVar19 + uVar17;\n      if (uVar17 < uVar10) {\n        uVar19 = (uint)(uVar19 != 0);\n      }\n      else {\n        uVar19 = (uVar10 < uVar19) + 2;\n      }\n      local_a4 = local_a4 + 1;\n      if (uVar16 < (uVar14 < uVar10)) break;\n      if (local_a4 == 8) goto LAB_00015796;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      lVar25 = __udivmoddi4(lVar25,uVar10,0,local_64);\n      uVar16 = (uint)((ulonglong)lVar25 >> 0x20);\n      uVar14 = (uint)lVar25;\n      uVar17 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar17 / (ulonglong)uVar10;\n      local_68 = (uint)uVar1;\n      uVar17 = ((int)uVar19 >> 1) + (uVar17 % uVar10) * 2;\n      uVar19 = uVar19 + uVar17;\n      if (uVar17 < uVar10) {\n        uVar19 = (uint)(uVar19 != 0);\n      }\n      else {\n        uVar19 = (uVar10 < uVar19) + 2;\n      }\n      local_a4 = local_a4 + 1;\n      if (uVar16 < (uVar14 < uVar10)) break;\n      if (local_a4 == 8) goto LAB_00015796;\n    }" { (expression_statement "lVar25 = __udivmoddi4(lVar25,uVar10,0,local_64);" (assignment_expression "lVar25 = __udivmoddi4(lVar25,uVar10,0,local_64)" identifier = (call_expression "__udivmoddi4(lVar25,uVar10,0,local_64)" identifier (argument_list "(lVar25,uVar10,0,local_64)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "uVar16 = (uint)((ulonglong)lVar25 >> 0x20);" (assignment_expression "uVar16 = (uint)((ulonglong)lVar25 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar25 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar25 >> 0x20)" ( (binary_expression "(ulonglong)lVar25 >> 0x20" (cast_expression "(ulonglong)lVar25" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar14 = (uint)lVar25;" (assignment_expression "uVar14 = (uint)lVar25" identifier = (cast_expression "(uint)lVar25" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar17 = local_68 + (uint)local_54 * 10;" (assignment_expression "uVar17 = local_68 + (uint)local_54 * 10" identifier = (binary_expression "local_68 + (uint)local_54 * 10" identifier + (binary_expression "(uint)local_54 * 10" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal))) ;) (expression_statement "uVar1 = (ulonglong)uVar17 / (ulonglong)uVar10;" (assignment_expression "uVar1 = (ulonglong)uVar17 / (ulonglong)uVar10" identifier = (binary_expression "(ulonglong)uVar17 / (ulonglong)uVar10" (cast_expression "(ulonglong)uVar17" ( (type_descriptor "ulonglong" type_identifier) ) identifier) / (cast_expression "(ulonglong)uVar10" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "local_68 = (uint)uVar1;" (assignment_expression "local_68 = (uint)uVar1" identifier = (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar17 = ((int)uVar19 >> 1) + (uVar17 % uVar10) * 2;" (assignment_expression "uVar17 = ((int)uVar19 >> 1) + (uVar17 % uVar10) * 2" identifier = (binary_expression "((int)uVar19 >> 1) + (uVar17 % uVar10) * 2" (parenthesized_expression "((int)uVar19 >> 1)" ( (binary_expression "(int)uVar19 >> 1" (cast_expression "(int)uVar19" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (binary_expression "(uVar17 % uVar10) * 2" (parenthesized_expression "(uVar17 % uVar10)" ( (binary_expression "uVar17 % uVar10" identifier % identifier) )) * number_literal))) ;) (expression_statement "uVar19 = uVar19 + uVar17;" (assignment_expression "uVar19 = uVar19 + uVar17" identifier = (binary_expression "uVar19 + uVar17" identifier + identifier)) ;) (if_statement "if (uVar17 < uVar10) {\n        uVar19 = (uint)(uVar19 != 0);\n      }\n      else {\n        uVar19 = (uVar10 < uVar19) + 2;\n      }" if (parenthesized_expression "(uVar17 < uVar10)" ( (binary_expression "uVar17 < uVar10" identifier < identifier) )) (compound_statement "{\n        uVar19 = (uint)(uVar19 != 0);\n      }" { (expression_statement "uVar19 = (uint)(uVar19 != 0);" (assignment_expression "uVar19 = (uint)(uVar19 != 0)" identifier = (call_expression "(uint)(uVar19 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar19 != 0)" ( (binary_expression "uVar19 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n        uVar19 = (uVar10 < uVar19) + 2;\n      }" else (compound_statement "{\n        uVar19 = (uVar10 < uVar19) + 2;\n      }" { (expression_statement "uVar19 = (uVar10 < uVar19) + 2;" (assignment_expression "uVar19 = (uVar10 < uVar19) + 2" identifier = (binary_expression "(uVar10 < uVar19) + 2" (parenthesized_expression "(uVar10 < uVar19)" ( (binary_expression "uVar10 < uVar19" identifier < identifier) )) + number_literal)) ;) }))) (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) (if_statement "if (uVar16 < (uVar14 < uVar10)) break;" if (parenthesized_expression "(uVar16 < (uVar14 < uVar10))" ( (binary_expression "uVar16 < (uVar14 < uVar10)" identifier < (parenthesized_expression "(uVar14 < uVar10)" ( (binary_expression "uVar14 < uVar10" identifier < identifier) ))) )) (break_statement "break;" break ;)) (if_statement "if (local_a4 == 8) goto LAB_00015796;" if (parenthesized_expression "(local_a4 == 8)" ( (binary_expression "local_a4 == 8" identifier == number_literal) )) (goto_statement "goto LAB_00015796;" goto statement_identifier ;)) })) (if_statement "if (uVar16 != 0 || -uVar16 < (uint)(9 < uVar14)) goto LAB_00015796;" if (parenthesized_expression "(uVar16 != 0 || -uVar16 < (uint)(9 < uVar14))" ( (binary_expression "uVar16 != 0 || -uVar16 < (uint)(9 < uVar14)" (binary_expression "uVar16 != 0" identifier != number_literal) || (binary_expression "-uVar16 < (uint)(9 < uVar14)" (unary_expression "-uVar16" - identifier) < (call_expression "(uint)(9 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(9 < uVar14)" ( (binary_expression "9 < uVar14" number_literal < identifier) ))))) )) (goto_statement "goto LAB_00015796;" goto statement_identifier ;)) (if_statement "if (uVar8 == 1) {\n      bVar7 = 2 < (local_68 & 1) + uVar19;\n    }\n    else {\n      bVar7 = uVar19 != 0 && uVar8 == 0;\n    }" if (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) (compound_statement "{\n      bVar7 = 2 < (local_68 & 1) + uVar19;\n    }" { (expression_statement "bVar7 = 2 < (local_68 & 1) + uVar19;" (assignment_expression "bVar7 = 2 < (local_68 & 1) + uVar19" identifier = (binary_expression "2 < (local_68 & 1) + uVar19" number_literal < (binary_expression "(local_68 & 1) + uVar19" (parenthesized_expression "(local_68 & 1)" ( (binary_expression "local_68 & 1" identifier & number_literal) )) + identifier))) ;) }) (else_clause "else {\n      bVar7 = uVar19 != 0 && uVar8 == 0;\n    }" else (compound_statement "{\n      bVar7 = uVar19 != 0 && uVar8 == 0;\n    }" { (expression_statement "bVar7 = uVar19 != 0 && uVar8 == 0;" (assignment_expression "bVar7 = uVar19 != 0 && uVar8 == 0" identifier = (binary_expression "uVar19 != 0 && uVar8 == 0" (binary_expression "uVar19 != 0" identifier != number_literal) && (binary_expression "uVar8 == 0" identifier == number_literal))) ;) }))) (expression_statement "cVar6 = (char)uVar1;" (assignment_expression "cVar6 = (char)uVar1" identifier = (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (bVar7) {\n      if (local_68 == 9) {\n        lVar23 = lVar25 + 1;\n        lVar25 = lVar25 + 1;\n        if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar6 = cVar6 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((opts & 8U) != 0) goto LAB_00015b3b;\n      cVar6 = '0';\n    }\n    else {\n      cVar6 = cVar6 + '0';\n    }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n      if (local_68 == 9) {\n        lVar23 = lVar25 + 1;\n        lVar25 = lVar25 + 1;\n        if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar6 = cVar6 + '1';\n    }" { (if_statement "if (local_68 == 9) {\n        lVar23 = lVar25 + 1;\n        lVar25 = lVar25 + 1;\n        if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }" if (parenthesized_expression "(local_68 == 9)" ( (binary_expression "local_68 == 9" identifier == number_literal) )) (compound_statement "{\n        lVar23 = lVar25 + 1;\n        lVar25 = lVar25 + 1;\n        if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }" { (expression_statement "lVar23 = lVar25 + 1;" (assignment_expression "lVar23 = lVar25 + 1" identifier = (binary_expression "lVar25 + 1" identifier + number_literal)) ;) (expression_statement "lVar25 = lVar25 + 1;" (assignment_expression "lVar25 = lVar25 + 1" identifier = (binary_expression "lVar25 + 1" identifier + number_literal)) ;) (if_statement "if ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9) {\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }" if (parenthesized_expression "((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9)" ( (binary_expression "(int)((ulonglong)lVar23 >> 0x20) != 0 || uVar14 != 9" (binary_expression "(int)((ulonglong)lVar23 >> 0x20) != 0" (cast_expression "(int)((ulonglong)lVar23 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) || (binary_expression "uVar14 != 9" identifier != number_literal)) )) (compound_statement "{\n          uVar19 = 0;\n          goto LAB_00015ae9;\n        }" { (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015ae9;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015b39;" goto statement_identifier ;) })) (expression_statement "cVar6 = cVar6 + '1';" (assignment_expression "cVar6 = cVar6 + '1'" identifier = (binary_expression "cVar6 + '1'" identifier + (char_literal "'1'" ' character '))) ;) }) (else_clause "else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((opts & 8U) != 0) goto LAB_00015b3b;\n      cVar6 = '0';\n    }\n    else {\n      cVar6 = cVar6 + '0';\n    }" else (if_statement "if (local_68 == 0) {\nLAB_00015ae9:\n      if ((opts & 8U) != 0) goto LAB_00015b3b;\n      cVar6 = '0';\n    }\n    else {\n      cVar6 = cVar6 + '0';\n    }" if (parenthesized_expression "(local_68 == 0)" ( (binary_expression "local_68 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00015ae9:\n      if ((opts & 8U) != 0) goto LAB_00015b3b;\n      cVar6 = '0';\n    }" { (labeled_statement "LAB_00015ae9:\n      if ((opts & 8U) != 0) goto LAB_00015b3b;" statement_identifier : (if_statement "if ((opts & 8U) != 0) goto LAB_00015b3b;" if (parenthesized_expression "((opts & 8U) != 0)" ( (binary_expression "(opts & 8U) != 0" (parenthesized_expression "(opts & 8U)" ( (binary_expression "opts & 8U" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015b3b;" goto statement_identifier ;))) (expression_statement "cVar6 = '0';" (assignment_expression "cVar6 = '0'" identifier = (char_literal "'0'" ' character ')) ;) }) (else_clause "else {\n      cVar6 = cVar6 + '0';\n    }" else (compound_statement "{\n      cVar6 = cVar6 + '0';\n    }" { (expression_statement "cVar6 = cVar6 + '0';" (assignment_expression "cVar6 = cVar6 + '0'" identifier = (binary_expression "cVar6 + '0'" identifier + (char_literal "'0'" ' character '))) ;) }))))) (expression_statement "buf[0x286] = cVar6;" (assignment_expression "buf[0x286] = cVar6" (subscript_expression "buf[0x286]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_7c = buf + (0x286 - local_74);" (assignment_expression "local_7c = buf + (0x286 - local_74)" identifier = (binary_expression "buf + (0x286 - local_74)" identifier + (parenthesized_expression "(0x286 - local_74)" ( (binary_expression "0x286 - local_74" number_literal - identifier) )))) ;) (if_statement "if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar17 = iVar15 + local_74 & 0xfffffffc;\n      if (3 < uVar17) {\n        uVar14 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);\n      }\n    }" if (parenthesized_expression "(local_74 < 4)" ( (binary_expression "local_74 < 4" identifier < number_literal) )) (compound_statement "{\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }" { (if_statement "if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }" if (parenthesized_expression "((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0))" ( (binary_expression "(local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)" (parenthesized_expression "(local_74 != 0)" ( (binary_expression "local_74 != 0" identifier != number_literal) )) && (parenthesized_expression "(*local_7c = *local_6c, (local_74 & 2) != 0)" ( (comma_expression "*local_7c = *local_6c, (local_74 & 2) != 0" (assignment_expression "*local_7c = *local_6c" (pointer_expression "*local_7c" * identifier) = (pointer_expression "*local_6c" * identifier)) , (binary_expression "(local_74 & 2) != 0" (parenthesized_expression "(local_74 & 2)" ( (binary_expression "local_74 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }" { (expression_statement "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));" (assignment_expression "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2))" (pointer_expression "*(undefined2 *)(local_7c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_7c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + (local_74 - 2))" ( (binary_expression "local_7c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) )))) = (pointer_expression "*(undefined2 *)(local_6c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_6c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 2))" ( (binary_expression "local_6c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) ))))) ;) })) }) (else_clause "else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar17 = iVar15 + local_74 & 0xfffffffc;\n      if (3 < uVar17) {\n        uVar14 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);\n      }\n    }" else (compound_statement "{\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar17 = iVar15 + local_74 & 0xfffffffc;\n      if (3 < uVar17) {\n        uVar14 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);\n      }\n    }" { (expression_statement "*(undefined4 *)local_7c = *(undefined4 *)local_6c;" (assignment_expression "*(undefined4 *)local_7c = *(undefined4 *)local_6c" (pointer_expression "*(undefined4 *)local_7c" * (cast_expression "(undefined4 *)local_7c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)local_6c" * (cast_expression "(undefined4 *)local_6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));" (assignment_expression "*(undefined4 *)(buf + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4))" (pointer_expression "*(undefined4 *)(buf + 0x282)" * (cast_expression "(undefined4 *)(buf + 0x282)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(buf + 0x282)" ( (binary_expression "buf + 0x282" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(local_6c + (local_74 - 4))" * (cast_expression "(undefined4 *)(local_6c + (local_74 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 4))" ( (binary_expression "local_6c + (local_74 - 4)" identifier + (parenthesized_expression "(local_74 - 4)" ( (binary_expression "local_74 - 4" identifier - number_literal) ))) ))))) ;) (expression_statement "iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);" (assignment_expression "iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" identifier = (binary_expression "(int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "uVar17 = iVar15 + local_74 & 0xfffffffc;" (assignment_expression "uVar17 = iVar15 + local_74 & 0xfffffffc" identifier = (binary_expression "iVar15 + local_74 & 0xfffffffc" (binary_expression "iVar15 + local_74" identifier + identifier) & number_literal)) ;) (if_statement "if (3 < uVar17) {\n        uVar14 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);\n      }" if (parenthesized_expression "(3 < uVar17)" ( (binary_expression "3 < uVar17" number_literal < identifier) )) (compound_statement "{\n        uVar14 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);\n      }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        } while (uVar14 < uVar17);" do (compound_statement "{\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));\n          uVar14 = uVar14 + 4;\n        }" { (expression_statement "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15));" (assignment_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14) =\n               *(undefined4 *)(local_6c + (uVar14 - iVar15))" (pointer_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14)" * (cast_expression "(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)(local_7c + 4) & 0xfffffffc) + uVar14)" ( (binary_expression "((uint)(local_7c + 4) & 0xfffffffc) + uVar14" (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )) + identifier) )))) = (pointer_expression "*(undefined4 *)(local_6c + (uVar14 - iVar15))" * (cast_expression "(undefined4 *)(local_6c + (uVar14 - iVar15))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (uVar14 - iVar15))" ( (binary_expression "local_6c + (uVar14 - iVar15)" identifier + (parenthesized_expression "(uVar14 - iVar15)" ( (binary_expression "uVar14 - iVar15" identifier - identifier) ))) ))))) ;) (expression_statement "uVar14 = uVar14 + 4;" (assignment_expression "uVar14 = uVar14 + 4" identifier = (binary_expression "uVar14 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar14 < uVar17)" ( (binary_expression "uVar14 < uVar17" identifier < identifier) )) ;) })) }))) (labeled_statement "LAB_00015b39:\n    uVar19 = 0;" statement_identifier : (expression_statement "uVar19 = 0;" (assignment_expression "uVar19 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_00015b3b:\n    pcVar18 = local_7c;" statement_identifier : (expression_statement "pcVar18 = local_7c;" (assignment_expression "pcVar18 = local_7c" identifier = identifier) ;)) (expression_statement "lVar23 = lVar25;" (assignment_expression "lVar23 = lVar25" identifier = identifier) ;) (if_statement "if (uVar8 == 1) goto LAB_000157f4;" if (parenthesized_expression "(uVar8 == 1)" ( (binary_expression "uVar8 == 1" identifier == number_literal) )) (goto_statement "goto LAB_000157f4;" goto statement_identifier ;)) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000157a9:\n    pcVar18 = local_7c;" statement_identifier : (expression_statement "pcVar18 = local_7c;" (assignment_expression "pcVar18 = local_7c" identifier = identifier) ;)) (expression_statement "lVar23 = lVar25;" (assignment_expression "lVar23 = lVar25" identifier = identifier) ;) (if_statement "if ((uVar8 == 0) && (0 < (int)(local_68 + uVar19))) {\nLAB_000157bb:\n      local_5c = opts & 0x10;\n      pcVar18 = local_7c;\n      lVar23 = lVar25 + 1;\n      if (((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||\n         (lVar23 = lVar25 + 1, local_a4 == 8)) goto LAB_000157f4;\n      local_a4 = local_a4 + 1;\n      if ((opts & 8U) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }\n      }\n      pcVar18 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));\n    }" if (parenthesized_expression "((uVar8 == 0) && (0 < (int)(local_68 + uVar19)))" ( (binary_expression "(uVar8 == 0) && (0 < (int)(local_68 + uVar19))" (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "(0 < (int)(local_68 + uVar19))" ( (binary_expression "0 < (int)(local_68 + uVar19)" number_literal < (cast_expression "(int)(local_68 + uVar19)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_68 + uVar19)" ( (binary_expression "local_68 + uVar19" identifier + identifier) )))) ))) )) (compound_statement "{\nLAB_000157bb:\n      local_5c = opts & 0x10;\n      pcVar18 = local_7c;\n      lVar23 = lVar25 + 1;\n      if (((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||\n         (lVar23 = lVar25 + 1, local_a4 == 8)) goto LAB_000157f4;\n      local_a4 = local_a4 + 1;\n      if ((opts & 8U) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }\n      }\n      pcVar18 = local_7c + -1;\n      local_7c[-1] = '1';\n    }" { (labeled_statement "LAB_000157bb:\n      local_5c = opts & 0x10;" statement_identifier : (expression_statement "local_5c = opts & 0x10;" (assignment_expression "local_5c = opts & 0x10" identifier = (binary_expression "opts & 0x10" identifier & number_literal)) ;)) (expression_statement "pcVar18 = local_7c;" (assignment_expression "pcVar18 = local_7c" identifier = identifier) ;) (expression_statement "lVar23 = lVar25 + 1;" (assignment_expression "lVar23 = lVar25 + 1" identifier = (binary_expression "lVar25 + 1" identifier + number_literal)) ;) (if_statement "if (((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||\n         (lVar23 = lVar25 + 1, local_a4 == 8)) goto LAB_000157f4;" if (parenthesized_expression "(((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||\n         (lVar23 = lVar25 + 1, local_a4 == 8))" ( (binary_expression "((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))) ||\n         (lVar23 = lVar25 + 1, local_a4 == 8)" (parenthesized_expression "((local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1)))" ( (binary_expression "(local_5c == 0) ||\n          (lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))" (parenthesized_expression "(local_5c == 0)" ( (binary_expression "local_5c == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1))" ( (comma_expression "lVar23 = lVar25 + 1,\n          (int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1)" (assignment_expression "lVar23 = lVar25 + 1" identifier = (binary_expression "lVar25 + 1" identifier + number_literal)) , (binary_expression "(int)((ulonglong)(lVar25 + 1) >> 0x20) != 0 || uVar10 != (uint)(lVar25 + 1)" (binary_expression "(int)((ulonglong)(lVar25 + 1) >> 0x20) != 0" (cast_expression "(int)((ulonglong)(lVar25 + 1) >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)(lVar25 + 1) >> 0x20)" ( (binary_expression "(ulonglong)(lVar25 + 1) >> 0x20" (call_expression "(ulonglong)(lVar25 + 1)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(lVar25 + 1)" ( (binary_expression "lVar25 + 1" identifier + number_literal) ))) >> number_literal) ))) != number_literal) || (binary_expression "uVar10 != (uint)(lVar25 + 1)" identifier != (call_expression "(uint)(lVar25 + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(lVar25 + 1)" ( (binary_expression "lVar25 + 1" identifier + number_literal) )))))) ))) )) || (parenthesized_expression "(lVar23 = lVar25 + 1, local_a4 == 8)" ( (comma_expression "lVar23 = lVar25 + 1, local_a4 == 8" (assignment_expression "lVar23 = lVar25 + 1" identifier = (binary_expression "lVar25 + 1" identifier + number_literal)) , (binary_expression "local_a4 == 8" identifier == number_literal)) ))) )) (goto_statement "goto LAB_000157f4;" goto statement_identifier ;)) (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) (if_statement "if ((opts & 8U) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }\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        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }\n      }" { (expression_statement "local_7c[-1] = '0';" (assignment_expression "local_7c[-1] = '0'" (subscript_expression "local_7c[-1]" identifier [ number_literal ]) = (char_literal "'0'" ' character ')) ;) (expression_statement "local_7c = local_7c + ~local_74;" (assignment_expression "local_7c = local_7c + ~local_74" identifier = (binary_expression "local_7c + ~local_74" identifier + (unary_expression "~local_74" ~ identifier))) ;) (if_statement "if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }" if (parenthesized_expression "(local_74 < 4)" ( (binary_expression "local_74 < 4" identifier < number_literal) )) (compound_statement "{\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }" { (if_statement "if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }" if (parenthesized_expression "((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0))" ( (binary_expression "(local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)" (parenthesized_expression "(local_74 != 0)" ( (binary_expression "local_74 != 0" identifier != number_literal) )) && (parenthesized_expression "(*local_7c = *local_6c, (local_74 & 2) != 0)" ( (comma_expression "*local_7c = *local_6c, (local_74 & 2) != 0" (assignment_expression "*local_7c = *local_6c" (pointer_expression "*local_7c" * identifier) = (pointer_expression "*local_6c" * identifier)) , (binary_expression "(local_74 & 2) != 0" (parenthesized_expression "(local_74 & 2)" ( (binary_expression "local_74 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }" { (expression_statement "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));" (assignment_expression "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2))" (pointer_expression "*(undefined2 *)(local_7c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_7c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + (local_74 - 2))" ( (binary_expression "local_7c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) )))) = (pointer_expression "*(undefined2 *)(local_6c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_6c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 2))" ( (binary_expression "local_6c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) ))))) ;) })) }) (else_clause "else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }" else (compound_statement "{\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar8 = iVar15 + local_74 & 0xfffffffc;\n          if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }\n        }" { (expression_statement "*(undefined4 *)local_7c = *(undefined4 *)local_6c;" (assignment_expression "*(undefined4 *)local_7c = *(undefined4 *)local_6c" (pointer_expression "*(undefined4 *)local_7c" * (cast_expression "(undefined4 *)local_7c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)local_6c" * (cast_expression "(undefined4 *)local_6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));" (assignment_expression "*(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4))" (pointer_expression "*(undefined4 *)(local_7c + (local_74 - 4))" * (cast_expression "(undefined4 *)(local_7c + (local_74 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + (local_74 - 4))" ( (binary_expression "local_7c + (local_74 - 4)" identifier + (parenthesized_expression "(local_74 - 4)" ( (binary_expression "local_74 - 4" identifier - number_literal) ))) )))) = (pointer_expression "*(undefined4 *)(local_6c + (local_74 - 4))" * (cast_expression "(undefined4 *)(local_6c + (local_74 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 4))" ( (binary_expression "local_6c + (local_74 - 4)" identifier + (parenthesized_expression "(local_74 - 4)" ( (binary_expression "local_74 - 4" identifier - number_literal) ))) ))))) ;) (expression_statement "iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);" (assignment_expression "iVar15 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" identifier = (binary_expression "(int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "uVar8 = iVar15 + local_74 & 0xfffffffc;" (assignment_expression "uVar8 = iVar15 + local_74 & 0xfffffffc" identifier = (binary_expression "iVar15 + local_74 & 0xfffffffc" (binary_expression "iVar15 + local_74" identifier + identifier) & number_literal)) ;) (if_statement "if (3 < uVar8) {\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }" if (parenthesized_expression "(3 < uVar8)" ( (binary_expression "3 < uVar8" number_literal < identifier) )) (compound_statement "{\n            uVar17 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);\n          }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            } while (uVar17 < uVar8);" do (compound_statement "{\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));\n              uVar17 = uVar17 + 4;\n            }" { (expression_statement "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15));" (assignment_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17) =\n                   *(undefined4 *)(local_6c + (uVar17 - iVar15))" (pointer_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17)" * (cast_expression "(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar17)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)(local_7c + 4) & 0xfffffffc) + uVar17)" ( (binary_expression "((uint)(local_7c + 4) & 0xfffffffc) + uVar17" (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )) + identifier) )))) = (pointer_expression "*(undefined4 *)(local_6c + (uVar17 - iVar15))" * (cast_expression "(undefined4 *)(local_6c + (uVar17 - iVar15))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (uVar17 - iVar15))" ( (binary_expression "local_6c + (uVar17 - iVar15)" identifier + (parenthesized_expression "(uVar17 - iVar15)" ( (binary_expression "uVar17 - iVar15" identifier - identifier) ))) ))))) ;) (expression_statement "uVar17 = uVar17 + 4;" (assignment_expression "uVar17 = uVar17 + 4" identifier = (binary_expression "uVar17 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar17 < uVar8)" ( (binary_expression "uVar17 < uVar8" identifier < identifier) )) ;) })) }))) })) (expression_statement "pcVar18 = local_7c + -1;" (assignment_expression "pcVar18 = local_7c + -1" identifier = (binary_expression "local_7c + -1" identifier + number_literal)) ;) (expression_statement "local_7c[-1] = '1';" (assignment_expression "local_7c[-1] = '1'" (subscript_expression "local_7c[-1]" identifier [ number_literal ]) = (char_literal "'1'" ' character ')) ;) }) (else_clause "else {\nLAB_000157f4:\n      do {\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));\n    }" else (compound_statement "{\nLAB_000157f4:\n      do {\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));\n    }" { (labeled_statement "LAB_000157f4:\n      do {\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));" statement_identifier : (do_statement "do {\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      } while (iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8));" do (compound_statement "{\n        iVar15 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar8 = (uint)lVar23;\n        pcVar18 = pcVar18 + -1;\n        cVar6 = __umoddi3(lVar23,10,0);\n        *pcVar18 = cVar6 + '0';\n        lVar23 = __udivdi3(lVar23,10,0);\n      }" { (expression_statement "iVar15 = (int)((ulonglong)lVar23 >> 0x20);" (assignment_expression "iVar15 = (int)((ulonglong)lVar23 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar23 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar8 = (uint)lVar23;" (assignment_expression "uVar8 = (uint)lVar23" identifier = (cast_expression "(uint)lVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar18 = pcVar18 + -1;" (assignment_expression "pcVar18 = pcVar18 + -1" identifier = (binary_expression "pcVar18 + -1" identifier + number_literal)) ;) (expression_statement "cVar6 = __umoddi3(lVar23,10,0);" (assignment_expression "cVar6 = __umoddi3(lVar23,10,0)" identifier = (call_expression "__umoddi3(lVar23,10,0)" identifier (argument_list "(lVar23,10,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*pcVar18 = cVar6 + '0';" (assignment_expression "*pcVar18 = cVar6 + '0'" (pointer_expression "*pcVar18" * identifier) = (binary_expression "cVar6 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "lVar23 = __udivdi3(lVar23,10,0);" (assignment_expression "lVar23 = __udivdi3(lVar23,10,0)" identifier = (call_expression "__udivdi3(lVar23,10,0)" identifier (argument_list "(lVar23,10,0)" ( identifier , number_literal , number_literal )))) ;) }) while (parenthesized_expression "(iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8))" ( (binary_expression "iVar15 != 0 || (uint)-iVar15 < (uint)(9 < uVar8)" (binary_expression "iVar15 != 0" identifier != number_literal) || (binary_expression "(uint)-iVar15 < (uint)(9 < uVar8)" (binary_expression "(uint)-iVar15" (parenthesized_expression "(uint)" ( identifier )) - identifier) < (call_expression "(uint)(9 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(9 < uVar8)" ( (binary_expression "9 < uVar8" number_literal < identifier) ))))) )) ;)) }))) }))) (if_statement "if ((opts & 4U) != 0) {\n    uVar17 = (int)local_7c - (int)pcVar18;\n    sVar12 = strlen(pcVar13);\n    __memcpy_chk(buf_1,pcVar18,(short)uVar17,0x29);\n    uVar8 = 0xffffffff;\n    while( true ) {\n      bVar4 = *local_bc;\n      if (bVar4 != 0) {\n        uVar8 = (uint)bVar4;\n        if (0x7e < bVar4) {\n          uVar8 = uVar17;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar17 < uVar8) break;\n      uVar17 = uVar17 - uVar8;\n      pcVar18 = local_7c + -uVar8;\n      memcpy(pcVar18,buf_1 + uVar17,uVar8);\n      if (uVar17 == 0) goto LAB_00015240;\n      local_7c = pcVar18 + -sVar12;\n      memcpy(local_7c,pcVar13,sVar12);\n    }\n    pcVar18 = local_7c + -uVar17;\n    memcpy(pcVar18,buf_1,uVar17);\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    uVar17 = (int)local_7c - (int)pcVar18;\n    sVar12 = strlen(pcVar13);\n    __memcpy_chk(buf_1,pcVar18,(short)uVar17,0x29);\n    uVar8 = 0xffffffff;\n    while( true ) {\n      bVar4 = *local_bc;\n      if (bVar4 != 0) {\n        uVar8 = (uint)bVar4;\n        if (0x7e < bVar4) {\n          uVar8 = uVar17;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar17 < uVar8) break;\n      uVar17 = uVar17 - uVar8;\n      pcVar18 = local_7c + -uVar8;\n      memcpy(pcVar18,buf_1 + uVar17,uVar8);\n      if (uVar17 == 0) goto LAB_00015240;\n      local_7c = pcVar18 + -sVar12;\n      memcpy(local_7c,pcVar13,sVar12);\n    }\n    pcVar18 = local_7c + -uVar17;\n    memcpy(pcVar18,buf_1,uVar17);\n  }" { (expression_statement "uVar17 = (int)local_7c - (int)pcVar18;" (assignment_expression "uVar17 = (int)local_7c - (int)pcVar18" identifier = (binary_expression "(int)local_7c - (int)pcVar18" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar18" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "sVar12 = strlen(pcVar13);" (assignment_expression "sVar12 = strlen(pcVar13)" identifier = (call_expression "strlen(pcVar13)" identifier (argument_list "(pcVar13)" ( identifier )))) ;) (expression_statement "__memcpy_chk(buf_1,pcVar18,(short)uVar17,0x29);" (call_expression "__memcpy_chk(buf_1,pcVar18,(short)uVar17,0x29)" identifier (argument_list "(buf_1,pcVar18,(short)uVar17,0x29)" ( identifier , identifier , (cast_expression "(short)uVar17" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , number_literal ))) ;) (expression_statement "uVar8 = 0xffffffff;" (assignment_expression "uVar8 = 0xffffffff" identifier = number_literal) ;) (while_statement "while( true ) {\n      bVar4 = *local_bc;\n      if (bVar4 != 0) {\n        uVar8 = (uint)bVar4;\n        if (0x7e < bVar4) {\n          uVar8 = uVar17;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar17 < uVar8) break;\n      uVar17 = uVar17 - uVar8;\n      pcVar18 = local_7c + -uVar8;\n      memcpy(pcVar18,buf_1 + uVar17,uVar8);\n      if (uVar17 == 0) goto LAB_00015240;\n      local_7c = pcVar18 + -sVar12;\n      memcpy(local_7c,pcVar13,sVar12);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      bVar4 = *local_bc;\n      if (bVar4 != 0) {\n        uVar8 = (uint)bVar4;\n        if (0x7e < bVar4) {\n          uVar8 = uVar17;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar17 < uVar8) break;\n      uVar17 = uVar17 - uVar8;\n      pcVar18 = local_7c + -uVar8;\n      memcpy(pcVar18,buf_1 + uVar17,uVar8);\n      if (uVar17 == 0) goto LAB_00015240;\n      local_7c = pcVar18 + -sVar12;\n      memcpy(local_7c,pcVar13,sVar12);\n    }" { (expression_statement "bVar4 = *local_bc;" (assignment_expression "bVar4 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (if_statement "if (bVar4 != 0) {\n        uVar8 = (uint)bVar4;\n        if (0x7e < bVar4) {\n          uVar8 = uVar17;\n        }\n        local_bc = local_bc + 1;\n      }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar8 = (uint)bVar4;\n        if (0x7e < bVar4) {\n          uVar8 = uVar17;\n        }\n        local_bc = local_bc + 1;\n      }" { (expression_statement "uVar8 = (uint)bVar4;" (assignment_expression "uVar8 = (uint)bVar4" identifier = (cast_expression "(uint)bVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (0x7e < bVar4) {\n          uVar8 = uVar17;\n        }" if (parenthesized_expression "(0x7e < bVar4)" ( (binary_expression "0x7e < bVar4" number_literal < identifier) )) (compound_statement "{\n          uVar8 = uVar17;\n        }" { (expression_statement "uVar8 = uVar17;" (assignment_expression "uVar8 = uVar17" identifier = identifier) ;) })) (expression_statement "local_bc = local_bc + 1;" (assignment_expression "local_bc = local_bc + 1" identifier = (binary_expression "local_bc + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar17 < uVar8) break;" if (parenthesized_expression "(uVar17 < uVar8)" ( (binary_expression "uVar17 < uVar8" identifier < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar17 = uVar17 - uVar8;" (assignment_expression "uVar17 = uVar17 - uVar8" identifier = (binary_expression "uVar17 - uVar8" identifier - identifier)) ;) (expression_statement "pcVar18 = local_7c + -uVar8;" (assignment_expression "pcVar18 = local_7c + -uVar8" identifier = (binary_expression "local_7c + -uVar8" identifier + (unary_expression "-uVar8" - identifier))) ;) (expression_statement "memcpy(pcVar18,buf_1 + uVar17,uVar8);" (call_expression "memcpy(pcVar18,buf_1 + uVar17,uVar8)" identifier (argument_list "(pcVar18,buf_1 + uVar17,uVar8)" ( identifier , (binary_expression "buf_1 + uVar17" identifier + identifier) , identifier ))) ;) (if_statement "if (uVar17 == 0) goto LAB_00015240;" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015240;" goto statement_identifier ;)) (expression_statement "local_7c = pcVar18 + -sVar12;" (assignment_expression "local_7c = pcVar18 + -sVar12" identifier = (binary_expression "pcVar18 + -sVar12" identifier + (unary_expression "-sVar12" - identifier))) ;) (expression_statement "memcpy(local_7c,pcVar13,sVar12);" (call_expression "memcpy(local_7c,pcVar13,sVar12)" identifier (argument_list "(local_7c,pcVar13,sVar12)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar18 = local_7c + -uVar17;" (assignment_expression "pcVar18 = local_7c + -uVar17" identifier = (binary_expression "local_7c + -uVar17" identifier + (unary_expression "-uVar17" - identifier))) ;) (expression_statement "memcpy(pcVar18,buf_1,uVar17);" (call_expression "memcpy(pcVar18,buf_1,uVar17)" identifier (argument_list "(pcVar18,buf_1,uVar17)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00015240:\n  if ((opts & 0x80U) == 0) goto LAB_0001526d;" statement_identifier : (if_statement "if ((opts & 0x80U) == 0) goto LAB_0001526d;" 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_0001526d;" goto statement_identifier ;))) (if_statement "if (local_a4 == -1) {\n    if (to_block_size._4_4_ == 0 && (uint)(1 < (uint)to_block_size) <= -to_block_size._4_4_) {\n      local_a4 = 0;\n      goto LAB_00015255;\n    }\n    local_a4 = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar10);\n      local_b8 = (int)(uVar1 * uVar10 >> 0x20) + local_b8 * uVar10;\n      if (to_block_size._4_4_ <= local_b8 &&\n          (uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_) break;\n      local_a4 = local_a4 + 1;\n    } while (local_a4 != 8);\n    if ((opts & 0x40U) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar9 == 0) && (local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar13 = local_98 + 1;\n      if ((opts & 0x100U) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = ""[local_a4];\n      if ((opts & 0x100U) == 0) goto LAB_00015a82;\n      pcVar13 = local_98 + 1;\n      if (uVar9 != 0) {\n        local_98[1] = 'i';\n        pcVar13 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if (local_a4 == 0 && (opts & 0x100U) == 0) goto LAB_0001526d;\n    if ((opts & 0x40U) != 0) {\nLAB_000155da:\n      local_98 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    if (local_a4 != 0) goto LAB_000155fb;\n    pcVar13 = local_98;\n    if ((opts & 0x100U) == 0) goto LAB_0001526d;\n  }" if (parenthesized_expression "(local_a4 == -1)" ( (binary_expression "local_a4 == -1" identifier == number_literal) )) (compound_statement "{\n    if (to_block_size._4_4_ == 0 && (uint)(1 < (uint)to_block_size) <= -to_block_size._4_4_) {\n      local_a4 = 0;\n      goto LAB_00015255;\n    }\n    local_a4 = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar10);\n      local_b8 = (int)(uVar1 * uVar10 >> 0x20) + local_b8 * uVar10;\n      if (to_block_size._4_4_ <= local_b8 &&\n          (uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_) break;\n      local_a4 = local_a4 + 1;\n    } while (local_a4 != 8);\n    if ((opts & 0x40U) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar9 == 0) && (local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar13 = local_98 + 1;\n      if ((opts & 0x100U) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = ""[local_a4];\n      if ((opts & 0x100U) == 0) goto LAB_00015a82;\n      pcVar13 = local_98 + 1;\n      if (uVar9 != 0) {\n        local_98[1] = 'i';\n        pcVar13 = local_98 + 2;\n      }\n    }\n  }" { (if_statement "if (to_block_size._4_4_ == 0 && (uint)(1 < (uint)to_block_size) <= -to_block_size._4_4_) {\n      local_a4 = 0;\n      goto LAB_00015255;\n    }" if (parenthesized_expression "(to_block_size._4_4_ == 0 && (uint)(1 < (uint)to_block_size) <= -to_block_size._4_4_)" ( (binary_expression "to_block_size._4_4_ == 0 && (uint)(1 < (uint)to_block_size) <= -to_block_size._4_4_" (binary_expression "to_block_size._4_4_ == 0" (field_expression "to_block_size._4_4_" identifier . field_identifier) == number_literal) && (binary_expression "(uint)(1 < (uint)to_block_size) <= -to_block_size._4_4_" (call_expression "(uint)(1 < (uint)to_block_size)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < (uint)to_block_size)" ( (binary_expression "1 < (uint)to_block_size" number_literal < (cast_expression "(uint)to_block_size" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (unary_expression "-to_block_size._4_4_" - (field_expression "to_block_size._4_4_" identifier . field_identifier)))) )) (compound_statement "{\n      local_a4 = 0;\n      goto LAB_00015255;\n    }" { (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015255;" goto statement_identifier ;) })) (expression_statement "local_a4 = 1;" (assignment_expression "local_a4 = 1" identifier = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_bc = (byte *)0x1;" (assignment_expression "local_bc = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar10);\n      local_b8 = (int)(uVar1 * uVar10 >> 0x20) + local_b8 * uVar10;\n      if (to_block_size._4_4_ <= local_b8 &&\n          (uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_) break;\n      local_a4 = local_a4 + 1;\n    } while (local_a4 != 8);" do (compound_statement "{\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar10);\n      local_b8 = (int)(uVar1 * uVar10 >> 0x20) + local_b8 * uVar10;\n      if (to_block_size._4_4_ <= local_b8 &&\n          (uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_) break;\n      local_a4 = local_a4 + 1;\n    }" { (expression_statement "uVar1 = ZEXT48(local_bc);" (assignment_expression "uVar1 = ZEXT48(local_bc)" identifier = (call_expression "ZEXT48(local_bc)" identifier (argument_list "(local_bc)" ( identifier )))) ;) (expression_statement "local_bc = (byte *)(uVar1 * uVar10);" (assignment_expression "local_bc = (byte *)(uVar1 * uVar10)" identifier = (cast_expression "(byte *)(uVar1 * uVar10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 * uVar10)" ( (binary_expression "uVar1 * uVar10" identifier * identifier) )))) ;) (expression_statement "local_b8 = (int)(uVar1 * uVar10 >> 0x20) + local_b8 * uVar10;" (assignment_expression "local_b8 = (int)(uVar1 * uVar10 >> 0x20) + local_b8 * uVar10" identifier = (binary_expression "(int)(uVar1 * uVar10 >> 0x20) + local_b8 * uVar10" (cast_expression "(int)(uVar1 * uVar10 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 * uVar10 >> 0x20)" ( (binary_expression "uVar1 * uVar10 >> 0x20" (binary_expression "uVar1 * uVar10" identifier * identifier) >> number_literal) ))) + (binary_expression "local_b8 * uVar10" identifier * identifier))) ;) (if_statement "if (to_block_size._4_4_ <= local_b8 &&\n          (uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_) break;" if (parenthesized_expression "(to_block_size._4_4_ <= local_b8 &&\n          (uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_)" ( (binary_expression "to_block_size._4_4_ <= local_b8 &&\n          (uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_" (binary_expression "to_block_size._4_4_ <= local_b8" (field_expression "to_block_size._4_4_" identifier . field_identifier) <= identifier) && (binary_expression "(uint)(local_bc < (uint)to_block_size) <= local_b8 - to_block_size._4_4_" (call_expression "(uint)(local_bc < (uint)to_block_size)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_bc < (uint)to_block_size)" ( (binary_expression "local_bc < (uint)to_block_size" identifier < (cast_expression "(uint)to_block_size" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) <= (binary_expression "local_b8 - to_block_size._4_4_" identifier - (field_expression "to_block_size._4_4_" identifier . field_identifier)))) )) (break_statement "break;" break ;)) (expression_statement "local_a4 = local_a4 + 1;" (assignment_expression "local_a4 = local_a4 + 1" identifier = (binary_expression "local_a4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_a4 != 8)" ( (binary_expression "local_a4 != 8" identifier != number_literal) )) ;) (if_statement "if ((opts & 0x40U) != 0) goto LAB_000155da;" 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_000155da;" goto statement_identifier ;)) (labeled_statement "LAB_000155fb:\n    if ((uVar9 == 0) && (local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar13 = local_98 + 1;\n      if ((opts & 0x100U) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = ""[local_a4];\n      if ((opts & 0x100U) == 0) goto LAB_00015a82;\n      pcVar13 = local_98 + 1;\n      if (uVar9 != 0) {\n        local_98[1] = 'i';\n        pcVar13 = local_98 + 2;\n      }\n    }" statement_identifier : (if_statement "if ((uVar9 == 0) && (local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar13 = local_98 + 1;\n      if ((opts & 0x100U) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = ""[local_a4];\n      if ((opts & 0x100U) == 0) goto LAB_00015a82;\n      pcVar13 = local_98 + 1;\n      if (uVar9 != 0) {\n        local_98[1] = 'i';\n        pcVar13 = local_98 + 2;\n      }\n    }" if (parenthesized_expression "((uVar9 == 0) && (local_a4 == 1))" ( (binary_expression "(uVar9 == 0) && (local_a4 == 1)" (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) && (parenthesized_expression "(local_a4 == 1)" ( (binary_expression "local_a4 == 1" identifier == number_literal) ))) )) (compound_statement "{\n      *local_98 = 'k';\n      pcVar13 = local_98 + 1;\n      if ((opts & 0x100U) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }" { (expression_statement "*local_98 = 'k';" (assignment_expression "*local_98 = 'k'" (pointer_expression "*local_98" * identifier) = (char_literal "'k'" ' character ')) ;) (expression_statement "pcVar13 = local_98 + 1;" (assignment_expression "pcVar13 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) (if_statement "if ((opts & 0x100U) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }" if (parenthesized_expression "((opts & 0x100U) == 0)" ( (binary_expression "(opts & 0x100U) == 0" (parenthesized_expression "(opts & 0x100U)" ( (binary_expression "opts & 0x100U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }" { (labeled_statement "LAB_00015a82:\n        local_98 = local_98 + 1;" statement_identifier : (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;)) (goto_statement "goto LAB_0001526d;" goto statement_identifier ;) })) }) (else_clause "else {\n      *local_98 = ""[local_a4];\n      if ((opts & 0x100U) == 0) goto LAB_00015a82;\n      pcVar13 = local_98 + 1;\n      if (uVar9 != 0) {\n        local_98[1] = 'i';\n        pcVar13 = local_98 + 2;\n      }\n    }" else (compound_statement "{\n      *local_98 = ""[local_a4];\n      if ((opts & 0x100U) == 0) goto LAB_00015a82;\n      pcVar13 = local_98 + 1;\n      if (uVar9 != 0) {\n        local_98[1] = 'i';\n        pcVar13 = local_98 + 2;\n      }\n    }" { (expression_statement "*local_98 = ""[local_a4];" (assignment_expression "*local_98 = ""[local_a4]" (pointer_expression "*local_98" * identifier) = (subscript_expression """[local_a4]" (string_literal """" " ") [ identifier ])) ;) (if_statement "if ((opts & 0x100U) == 0) goto LAB_00015a82;" 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_00015a82;" goto statement_identifier ;)) (expression_statement "pcVar13 = local_98 + 1;" (assignment_expression "pcVar13 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) (if_statement "if (uVar9 != 0) {\n        local_98[1] = 'i';\n        pcVar13 = local_98 + 2;\n      }" if (parenthesized_expression "(uVar9 != 0)" ( (binary_expression "uVar9 != 0" identifier != number_literal) )) (compound_statement "{\n        local_98[1] = 'i';\n        pcVar13 = local_98 + 2;\n      }" { (expression_statement "local_98[1] = 'i';" (assignment_expression "local_98[1] = 'i'" (subscript_expression "local_98[1]" identifier [ number_literal ]) = (char_literal "'i'" ' character ')) ;) (expression_statement "pcVar13 = local_98 + 2;" (assignment_expression "pcVar13 = local_98 + 2" identifier = (binary_expression "local_98 + 2" identifier + number_literal)) ;) })) })))) }) (else_clause "else {\nLAB_00015255:\n    if (local_a4 == 0 && (opts & 0x100U) == 0) goto LAB_0001526d;\n    if ((opts & 0x40U) != 0) {\nLAB_000155da:\n      local_98 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    if (local_a4 != 0) goto LAB_000155fb;\n    pcVar13 = local_98;\n    if ((opts & 0x100U) == 0) goto LAB_0001526d;\n  }" else (compound_statement "{\nLAB_00015255:\n    if (local_a4 == 0 && (opts & 0x100U) == 0) goto LAB_0001526d;\n    if ((opts & 0x40U) != 0) {\nLAB_000155da:\n      local_98 = buf + 0x288;\n      buf[0x287] = ' ';\n    }\n    if (local_a4 != 0) goto LAB_000155fb;\n    pcVar13 = local_98;\n    if ((opts & 0x100U) == 0) goto LAB_0001526d;\n  }" { (labeled_statement "LAB_00015255:\n    if (local_a4 == 0 && (opts & 0x100U) == 0) goto LAB_0001526d;" statement_identifier : (if_statement "if (local_a4 == 0 && (opts & 0x100U) == 0) goto LAB_0001526d;" if (parenthesized_expression "(local_a4 == 0 && (opts & 0x100U) == 0)" ( (binary_expression "local_a4 == 0 && (opts & 0x100U) == 0" (binary_expression "local_a4 == 0" identifier == number_literal) && (binary_expression "(opts & 0x100U) == 0" (parenthesized_expression "(opts & 0x100U)" ( (binary_expression "opts & 0x100U" identifier & number_literal) )) == number_literal)) )) (goto_statement "goto LAB_0001526d;" goto statement_identifier ;))) (if_statement "if ((opts & 0x40U) != 0) {\nLAB_000155da:\n      local_98 = 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_000155da:\n      local_98 = buf + 0x288;\n      buf[0x287] = ' ';\n    }" { (labeled_statement "LAB_000155da:\n      local_98 = buf + 0x288;" statement_identifier : (expression_statement "local_98 = buf + 0x288;" (assignment_expression "local_98 = 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 ')) ;) })) (if_statement "if (local_a4 != 0) goto LAB_000155fb;" if (parenthesized_expression "(local_a4 != 0)" ( (binary_expression "local_a4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000155fb;" goto statement_identifier ;)) (expression_statement "pcVar13 = local_98;" (assignment_expression "pcVar13 = local_98" identifier = identifier) ;) (if_statement "if ((opts & 0x100U) == 0) goto LAB_0001526d;" 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_0001526d;" goto statement_identifier ;)) }))) (expression_statement "local_98 = pcVar13 + 1;" (assignment_expression "local_98 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar13 = 'B';" (assignment_expression "*pcVar13 = 'B'" (pointer_expression "*pcVar13" * identifier) = (char_literal "'B'" ' character ')) ;) (labeled_statement "LAB_0001526d:\n  *local_98 = '\0';" statement_identifier : (expression_statement "*local_98 = '\0';" (assignment_expression "*local_98 = '\0'" (pointer_expression "*local_98" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (if_statement "if (iVar3 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar18;\n  }" if (parenthesized_expression "(iVar3 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar3 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return pcVar18;\n  }" { (return_statement "return pcVar18;" return identifier ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "char * FUN_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  bool bVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  lconv *plVar9;\n  size_t sVar10;\n  char *pcVar11;\n  size_t __n;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  longdouble lVar18;\n  longdouble lVar19;\n  longdouble lVar20;\n  longlong lVar21;\n  undefined8 uVar22;\n  longlong lVar23;\n  byte *local_bc;\n  uint local_b8;\n  undefined8 local_a4;\n  char *local_98;\n  undefined1 local_94 [8];\n  undefined2 uStack_8c;\n  char *local_7c;\n  uint local_74;\n  char *local_6c;\n  uint local_68;\n  undefined8 *local_64;\n  uint local_5c;\n  undefined8 local_54;\n  undefined1 local_49 [41];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x14e59;\n  local_a4 = CONCAT44(param_2,param_1);\n  _local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar6 = param_4 & 3;\n  uVar7 = param_4 & 0x20;\n  uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;\n  plVar9 = localeconv();\n  local_6c = plVar9->decimal_point;\n  local_74 = strlen(local_6c);\n  if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }\n  local_bc = (byte *)plVar9->grouping;\n  pcVar16 = plVar9->thousands_sep;\n  sVar10 = strlen(pcVar16);\n  pcVar11 = "";\n  if (sVar10 < 0x11) {\n    pcVar11 = pcVar16;\n  }\n  local_98 = param_3 + 0x287;\n  local_7c = local_98;\n  if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }\n  else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }\n  if ((param_4 & 4) != 0) {\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }\nLAB_00015240:\n  if ((param_4 & 0x80) == 0) goto LAB_0001526d;\n  if ((int)local_a4 == -1) {\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }\n  local_98 = pcVar11 + 1;\n  *pcVar11 = 'B';\nLAB_0001526d:\n  *local_98 = '\0';\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar16;\n  }\n                    \n  FUN_0001c140();\n}\n\n" (function_definition "char * FUN_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  bool bVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  lconv *plVar9;\n  size_t sVar10;\n  char *pcVar11;\n  size_t __n;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  longdouble lVar18;\n  longdouble lVar19;\n  longdouble lVar20;\n  longlong lVar21;\n  undefined8 uVar22;\n  longlong lVar23;\n  byte *local_bc;\n  uint local_b8;\n  undefined8 local_a4;\n  char *local_98;\n  undefined1 local_94 [8];\n  undefined2 uStack_8c;\n  char *local_7c;\n  uint local_74;\n  char *local_6c;\n  uint local_68;\n  undefined8 *local_64;\n  uint local_5c;\n  undefined8 local_54;\n  undefined1 local_49 [41];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x14e59;\n  local_a4 = CONCAT44(param_2,param_1);\n  _local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar6 = param_4 & 3;\n  uVar7 = param_4 & 0x20;\n  uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;\n  plVar9 = localeconv();\n  local_6c = plVar9->decimal_point;\n  local_74 = strlen(local_6c);\n  if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }\n  local_bc = (byte *)plVar9->grouping;\n  pcVar16 = plVar9->thousands_sep;\n  sVar10 = strlen(pcVar16);\n  pcVar11 = "";\n  if (sVar10 < 0x11) {\n    pcVar11 = pcVar16;\n  }\n  local_98 = param_3 + 0x287;\n  local_7c = local_98;\n  if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }\n  else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }\n  if ((param_4 & 4) != 0) {\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }\nLAB_00015240:\n  if ((param_4 & 0x80) == 0) goto LAB_0001526d;\n  if ((int)local_a4 == -1) {\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }\n  local_98 = pcVar11 + 1;\n  *pcVar11 = 'B';\nLAB_0001526d:\n  *local_98 = '\0';\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar16;\n  }\n                    \n  FUN_0001c140();\n}" primitive_type (pointer_declarator "* FUN_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)" * (function_declarator "FUN_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)" identifier (parameter_list "(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "uint param_6" type_identifier identifier) , (parameter_declaration "uint param_7" type_identifier identifier) , (parameter_declaration "uint param_8" type_identifier identifier) )))) (compound_statement "{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  bool bVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  lconv *plVar9;\n  size_t sVar10;\n  char *pcVar11;\n  size_t __n;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  longdouble lVar18;\n  longdouble lVar19;\n  longdouble lVar20;\n  longlong lVar21;\n  undefined8 uVar22;\n  longlong lVar23;\n  byte *local_bc;\n  uint local_b8;\n  undefined8 local_a4;\n  char *local_98;\n  undefined1 local_94 [8];\n  undefined2 uStack_8c;\n  char *local_7c;\n  uint local_74;\n  char *local_6c;\n  uint local_68;\n  undefined8 *local_64;\n  uint local_5c;\n  undefined8 local_54;\n  undefined1 local_49 [41];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x14e59;\n  local_a4 = CONCAT44(param_2,param_1);\n  _local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar6 = param_4 & 3;\n  uVar7 = param_4 & 0x20;\n  uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;\n  plVar9 = localeconv();\n  local_6c = plVar9->decimal_point;\n  local_74 = strlen(local_6c);\n  if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }\n  local_bc = (byte *)plVar9->grouping;\n  pcVar16 = plVar9->thousands_sep;\n  sVar10 = strlen(pcVar16);\n  pcVar11 = "";\n  if (sVar10 < 0x11) {\n    pcVar11 = pcVar16;\n  }\n  local_98 = param_3 + 0x287;\n  local_7c = local_98;\n  if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }\n  else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }\n  if ((param_4 & 4) != 0) {\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }\nLAB_00015240:\n  if ((param_4 & 0x80) == 0) goto LAB_0001526d;\n  if ((int)local_a4 == -1) {\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }\n  local_98 = pcVar11 + 1;\n  *pcVar11 = 'B';\nLAB_0001526d:\n  *local_98 = '\0';\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar16;\n  }\n                    \n  FUN_0001c140();\n}" { (declaration "ulonglong uVar1;" type_identifier identifier ;) (declaration "ulonglong uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "lconv *plVar9;" type_identifier (pointer_declarator "*plVar9" * identifier) ;) (declaration "size_t sVar10;" primitive_type identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "size_t __n;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "longdouble lVar18;" type_identifier identifier ;) (declaration "longdouble lVar19;" type_identifier identifier ;) (declaration "longdouble lVar20;" type_identifier identifier ;) (declaration "longlong lVar21;" type_identifier identifier ;) (declaration "undefined8 uVar22;" type_identifier identifier ;) (declaration "longlong lVar23;" type_identifier identifier ;) (declaration "byte *local_bc;" type_identifier (pointer_declarator "*local_bc" * identifier) ;) (declaration "uint local_b8;" type_identifier identifier ;) (declaration "undefined8 local_a4;" type_identifier identifier ;) (declaration "char *local_98;" primitive_type (pointer_declarator "*local_98" * identifier) ;) (declaration "undefined1 local_94 [8];" type_identifier (array_declarator "local_94 [8]" identifier [ number_literal ]) ;) (declaration "undefined2 uStack_8c;" type_identifier identifier ;) (declaration "char *local_7c;" primitive_type (pointer_declarator "*local_7c" * identifier) ;) (declaration "uint local_74;" type_identifier identifier ;) (declaration "char *local_6c;" primitive_type (pointer_declarator "*local_6c" * identifier) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "undefined8 *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "undefined8 local_54;" type_identifier identifier ;) (declaration "undefined1 local_49 [41];" type_identifier (array_declarator "local_49 [41]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x14e59;" (assignment_expression "uStack_14 = 0x14e59" identifier = number_literal) ;) (expression_statement "local_a4 = CONCAT44(param_2,param_1);" (assignment_expression "local_a4 = CONCAT44(param_2,param_1)" identifier = (call_expression "CONCAT44(param_2,param_1)" identifier (argument_list "(param_2,param_1)" ( identifier , identifier )))) ;) (expression_statement "_local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);" (assignment_expression "_local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5)" identifier = (call_expression "CONCAT64(CONCAT24(uStack_8c,param_6),param_5)" identifier (argument_list "(CONCAT24(uStack_8c,param_6),param_5)" ( (call_expression "CONCAT24(uStack_8c,param_6)" identifier (argument_list "(uStack_8c,param_6)" ( identifier , identifier ))) , identifier )))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = param_4 & 3;" (assignment_expression "uVar6 = param_4 & 3" identifier = (binary_expression "param_4 & 3" identifier & number_literal)) ;) (expression_statement "uVar7 = param_4 & 0x20;" (assignment_expression "uVar7 = param_4 & 0x20" identifier = (binary_expression "param_4 & 0x20" identifier & number_literal)) ;) (expression_statement "uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;" (assignment_expression "uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400" identifier = (binary_expression "(-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400" (parenthesized_expression "(-(uint)(uVar7 == 0) & 0xffffffe8)" ( (binary_expression "-(uint)(uVar7 == 0) & 0xffffffe8" (unary_expression "-(uint)(uVar7 == 0)" - (call_expression "(uint)(uVar7 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) (expression_statement "plVar9 = localeconv();" (assignment_expression "plVar9 = localeconv()" identifier = (call_expression "localeconv()" identifier (argument_list "()" ( )))) ;) (expression_statement "local_6c = plVar9->decimal_point;" (assignment_expression "local_6c = plVar9->decimal_point" identifier = (field_expression "plVar9->decimal_point" identifier -> field_identifier)) ;) (expression_statement "local_74 = strlen(local_6c);" (assignment_expression "local_74 = strlen(local_6c)" identifier = (call_expression "strlen(local_6c)" identifier (argument_list "(local_6c)" ( identifier )))) ;) (if_statement "if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }" if (parenthesized_expression "(0xf < local_74 - 1)" ( (binary_expression "0xf < local_74 - 1" number_literal < (binary_expression "local_74 - 1" identifier - number_literal)) )) (compound_statement "{\n    local_74 = 1;\n    local_6c = ".";\n  }" { (expression_statement "local_74 = 1;" (assignment_expression "local_74 = 1" identifier = number_literal) ;) (expression_statement "local_6c = ".";" (assignment_expression "local_6c = "."" identifier = (string_literal ""."" " string_content ")) ;) })) (expression_statement "local_bc = (byte *)plVar9->grouping;" (assignment_expression "local_bc = (byte *)plVar9->grouping" identifier = (cast_expression "(byte *)plVar9->grouping" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "plVar9->grouping" identifier -> field_identifier))) ;) (expression_statement "pcVar16 = plVar9->thousands_sep;" (assignment_expression "pcVar16 = plVar9->thousands_sep" identifier = (field_expression "plVar9->thousands_sep" identifier -> field_identifier)) ;) (expression_statement "sVar10 = strlen(pcVar16);" (assignment_expression "sVar10 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) (if_statement "if (sVar10 < 0x11) {\n    pcVar11 = pcVar16;\n  }" if (parenthesized_expression "(sVar10 < 0x11)" ( (binary_expression "sVar10 < 0x11" identifier < number_literal) )) (compound_statement "{\n    pcVar11 = pcVar16;\n  }" { (expression_statement "pcVar11 = pcVar16;" (assignment_expression "pcVar11 = pcVar16" identifier = identifier) ;) })) (expression_statement "local_98 = param_3 + 0x287;" (assignment_expression "local_98 = param_3 + 0x287" identifier = (binary_expression "param_3 + 0x287" identifier + number_literal)) ;) (expression_statement "local_7c = local_98;" (assignment_expression "local_7c = local_98" identifier = identifier) ;) (if_statement "if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }\n  else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }" if (parenthesized_expression "(param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7))" ( (binary_expression "param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)" (binary_expression "param_6 < param_8" identifier < identifier) || (binary_expression "param_6 - param_8 < (uint)(param_5 < param_7)" (binary_expression "param_6 - param_8" identifier - identifier) < (call_expression "(uint)(param_5 < param_7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_5 < param_7)" ( (binary_expression "param_5 < param_7" identifier < identifier) ))))) )) (compound_statement "{\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }" { (if_statement "if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }" if (parenthesized_expression "(param_6 != 0 || param_5 != 0)" ( (binary_expression "param_6 != 0 || param_5 != 0" (binary_expression "param_6 != 0" identifier != number_literal) || (binary_expression "param_5 != 0" identifier != number_literal)) )) (compound_statement "{\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }" { (expression_statement "uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);" (assignment_expression "uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54)" identifier = (call_expression "FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54)" identifier (argument_list "(param_7,param_8,param_5,param_6,&local_54)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (expression_statement "uVar15 = (uint)((ulonglong)uVar22 >> 0x20);" (assignment_expression "uVar15 = (uint)((ulonglong)uVar22 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar22 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar22 >> 0x20)" ( (binary_expression "(ulonglong)uVar22 >> 0x20" (cast_expression "(ulonglong)uVar22" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (if_statement "if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }" if (parenthesized_expression "(local_54._4_4_ == 0 && (uint)local_54 == 0)" ( (binary_expression "local_54._4_4_ == 0 && (uint)local_54 == 0" (binary_expression "local_54._4_4_ == 0" (field_expression "local_54._4_4_" identifier . field_identifier) == number_literal) && (binary_expression "(uint)local_54 == 0" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal)) )) (compound_statement "{\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }" { (expression_statement "lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);" (assignment_expression "lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54)" identifier = (call_expression "FUN_0001bee0(param_1,param_2,uVar22,&local_54)" identifier (argument_list "(param_1,param_2,uVar22,&local_54)" ( identifier , identifier , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (expression_statement "lVar21 = (local_54 & 0xffffffff) * 10;" (assignment_expression "lVar21 = (local_54 & 0xffffffff) * 10" identifier = (binary_expression "(local_54 & 0xffffffff) * 10" (parenthesized_expression "(local_54 & 0xffffffff)" ( (binary_expression "local_54 & 0xffffffff" identifier & number_literal) )) * number_literal)) ;) (expression_statement "local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);" (assignment_expression "local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54)" identifier = (call_expression "FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54)" identifier (argument_list "((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54)" ( (cast_expression "(int)lVar21" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10" (cast_expression "(int)((ulonglong)lVar21 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar21 >> 0x20)" ( (binary_expression "(ulonglong)lVar21 >> 0x20" (cast_expression "(ulonglong)lVar21" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) + (binary_expression "local_54._4_4_ * 10" (field_expression "local_54._4_4_" identifier . field_identifier) * number_literal)) , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (expression_statement "uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;" (assignment_expression "uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f" identifier = (binary_expression "local_54._4_4_ << 1 | (uint)local_54 >> 0x1f" (binary_expression "local_54._4_4_ << 1" (field_expression "local_54._4_4_" identifier . field_identifier) << number_literal) | (binary_expression "(uint)local_54 >> 0x1f" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal))) ;) (expression_statement "uVar12 = (uint)local_54 * 2;" (assignment_expression "uVar12 = (uint)local_54 * 2" identifier = (binary_expression "(uint)local_54 * 2" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) ;) (if_statement "if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }" if (parenthesized_expression "(uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22))" ( (binary_expression "uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)" (binary_expression "uVar14 < uVar15" identifier < identifier) || (binary_expression "uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)" (binary_expression "uVar14 - uVar15" identifier - identifier) < (call_expression "(uint)(uVar12 < (uint)uVar22)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < (uint)uVar22)" ( (binary_expression "uVar12 < (uint)uVar22" identifier < (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier)) ))))) )) (compound_statement "{\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }" { (expression_statement "uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);" (assignment_expression "uVar17 = (uint)(uVar12 != 0 || uVar14 != 0)" identifier = (call_expression "(uint)(uVar12 != 0 || uVar14 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 != 0 || uVar14 != 0)" ( (binary_expression "uVar12 != 0 || uVar14 != 0" (binary_expression "uVar12 != 0" identifier != number_literal) || (binary_expression "uVar14 != 0" identifier != number_literal)) )))) ;) }) (else_clause "else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }" else (compound_statement "{\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }" { (expression_statement "uVar17 = 3;" (assignment_expression "uVar17 = 3" identifier = number_literal) ;) (if_statement "if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }" if (parenthesized_expression "(uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14)" ( (binary_expression "uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14" (binary_expression "uVar14 <= uVar15" identifier <= identifier) && (binary_expression "(uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14" (call_expression "(uint)((uint)uVar22 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)uVar22 < uVar12)" ( (binary_expression "(uint)uVar22 < uVar12" (cast_expression "(uint)uVar22" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) ))) <= (binary_expression "uVar15 - uVar14" identifier - identifier))) )) (compound_statement "{\n            uVar17 = 2;\n          }" { (expression_statement "uVar17 = 2;" (assignment_expression "uVar17 = 2" identifier = number_literal) ;) })) }))) (if_statement "if ((param_4 & 0x10) != 0) goto LAB_000153b5;" if (parenthesized_expression "((param_4 & 0x10) != 0)" ( (binary_expression "(param_4 & 0x10) != 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000153b5;" goto statement_identifier ;)) (labeled_statement "LAB_0001578e:\n        local_a4._0_4_ = -1;" statement_identifier : (expression_statement "local_a4._0_4_ = -1;" (assignment_expression "local_a4._0_4_ = -1" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;)) (labeled_statement "LAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;" statement_identifier : (if_statement "if (uVar6 != 1) goto LAB_000157a9;" if (parenthesized_expression "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )) (goto_statement "goto LAB_000157a9;" goto statement_identifier ;))) (expression_statement "uVar6 = (uint)lVar23 & 1;" (assignment_expression "uVar6 = (uint)lVar23 & 1" identifier = (binary_expression "(uint)lVar23 & 1" (cast_expression "(uint)lVar23" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (expression_statement "pcVar16 = local_98;" (assignment_expression "pcVar16 = local_98" identifier = identifier) ;) (if_statement "if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;" if (parenthesized_expression "(5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68))" ( (binary_expression "5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)" number_literal < (cast_expression "(int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)" ( (binary_expression "(uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68" (parenthesized_expression "(uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17))" ( (binary_expression "uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)" (binary_expression "uVar6 + uVar17 != 0" (binary_expression "uVar6 + uVar17" identifier + identifier) != number_literal) || (call_expression "CARRY4(uVar6,uVar17)" identifier (argument_list "(uVar6,uVar17)" ( identifier , identifier )))) )) + identifier) )))) )) (goto_statement "goto LAB_000157bb;" goto statement_identifier ;)) (goto_statement "goto LAB_000157f4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;" statement_identifier : (expression_statement "lVar18 = (longdouble)(longlong)local_94;" (assignment_expression "lVar18 = (longdouble)(longlong)local_94" identifier = (cast_expression "(longdouble)(longlong)local_94" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)local_94" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;)) (if_statement "if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }" if (parenthesized_expression "((int)param_6 < 0)" ( (binary_expression "(int)param_6 < 0" (cast_expression "(int)param_6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }" { (expression_statement "lVar18 = lVar18 + (longdouble)DAT_0001e244;" (assignment_expression "lVar18 = lVar18 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar18 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (expression_statement "local_94._4_4_ = param_8;" (assignment_expression "local_94._4_4_ = param_8" (field_expression "local_94._4_4_" identifier . field_identifier) = identifier) ;) (expression_statement "local_94._0_4_ = param_7;" (assignment_expression "local_94._0_4_ = param_7" (field_expression "local_94._0_4_" identifier . field_identifier) = identifier) ;) (if_statement "if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }" if (parenthesized_expression "((int)param_8 < 0)" ( (binary_expression "(int)param_8 < 0" (cast_expression "(int)param_8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }" { (expression_statement "lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);" (assignment_expression "lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244)" identifier = (binary_expression "lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244)" identifier / (parenthesized_expression "((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244)" ( (binary_expression "(longdouble)(longlong)local_94 + (longdouble)DAT_0001e244" (cast_expression "(longdouble)(longlong)local_94" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)local_94" ( (type_descriptor "longlong" type_identifier) ) identifier)) + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )))) ;) (if_statement "if (param_2 < 0) goto LAB_00015298;" if (parenthesized_expression "(param_2 < 0)" ( (binary_expression "param_2 < 0" identifier < number_literal) )) (goto_statement "goto LAB_00015298;" goto statement_identifier ;)) (labeled_statement "LAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;" statement_identifier : (expression_statement "lVar18 = (longdouble)local_a4 * lVar18;" (assignment_expression "lVar18 = (longdouble)local_a4 * lVar18" identifier = (binary_expression "(longdouble)local_a4 * lVar18" (cast_expression "(longdouble)local_a4" ( (type_descriptor "longdouble" type_identifier) ) identifier) * identifier)) ;)) (if_statement "if ((param_4 & 0x10) != 0) goto LAB_00015036;" if (parenthesized_expression "((param_4 & 0x10) != 0)" ( (binary_expression "(param_4 & 0x10) != 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015036;" goto statement_identifier ;)) (labeled_statement "LAB_000151c8:\n      lVar20 = lVar18;" statement_identifier : (expression_statement "lVar20 = lVar18;" (assignment_expression "lVar20 = lVar18" identifier = identifier) ;)) (if_statement "if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }" if (parenthesized_expression "((uVar6 != 1) && (lVar18 < _DAT_0001e250))" ( (binary_expression "(uVar6 != 1) && (lVar18 < _DAT_0001e250)" (parenthesized_expression "(uVar6 != 1)" ( (binary_expression "uVar6 != 1" identifier != number_literal) )) && (parenthesized_expression "(lVar18 < _DAT_0001e250)" ( (binary_expression "lVar18 < _DAT_0001e250" identifier < identifier) ))) )) (compound_statement "{\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }" { (if_statement "if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }" if (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar18)" ( (binary_expression "(longdouble)DAT_0001e248 <= lVar18" (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }" { (expression_statement "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" identifier = (cast_expression "(ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar18 - (longdouble)DAT_0001e248)" identifier (argument_list "(lVar18 - (longdouble)DAT_0001e248)" ( (binary_expression "lVar18 - (longdouble)DAT_0001e248" identifier - (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ))))) ;) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" identifier . field_identifier) = (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier = (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" ( (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" identifier . field_identifier) + number_literal) , (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" identifier = identifier) ;) }) (else_clause "else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }" else (compound_statement "{\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }" { (expression_statement "uVar1 = (ulonglong)ROUND(lVar18);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar18)" identifier = (cast_expression "(ulonglong)ROUND(lVar18)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar18)" identifier (argument_list "(lVar18)" ( identifier ))))) ;) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" identifier = identifier) ;) }))) (expression_statement "lVar20 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar20 = (longdouble)(longlong)uVar1" identifier = (cast_expression "(longdouble)(longlong)uVar1" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) (if_statement "if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" if (parenthesized_expression "((longlong)uVar1 < 0)" ( (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" { (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar20 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" if (parenthesized_expression "(((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" ( (binary_expression "((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar6 == 0) && (lVar18 != lVar20))" ( (binary_expression "(uVar6 == 0) && (lVar18 != lVar20)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(lVar18 != lVar20)" ( (binary_expression "lVar18 != lVar20" identifier != identifier) ))) )) && (parenthesized_expression "(lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" ( (comma_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1)" identifier = (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(longlong)" ( identifier ))) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )))) , (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" { (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar20 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) })) (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40))" identifier (argument_list "(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") , (call_expression "SUB104(lVar20,0)" identifier (argument_list "(lVar20,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x20)" ( (binary_expression "(unkuint10)lVar20 >> 0x20" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar20 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x40)" ( (binary_expression "(unkuint10)lVar20 >> 0x40" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "local_a4._0_4_ = -1;" (assignment_expression "local_a4._0_4_ = -1" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "sVar10 = __n;" (assignment_expression "sVar10 = __n" identifier = identifier) ;) }) (else_clause "else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }" else (compound_statement "{\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }" { (expression_statement "lVar18 = lVar18 / (longdouble)(longlong)local_94;" (assignment_expression "lVar18 = lVar18 / (longdouble)(longlong)local_94" identifier = (binary_expression "lVar18 / (longdouble)(longlong)local_94" identifier / (cast_expression "(longdouble)(longlong)local_94" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)local_94" ( (type_descriptor "longlong" type_identifier) ) identifier)))) ;) (if_statement "if (-1 < param_2) goto LAB_00015026;" if (parenthesized_expression "(-1 < param_2)" ( (binary_expression "-1 < param_2" number_literal < identifier) )) (goto_statement "goto LAB_00015026;" goto statement_identifier ;)) (labeled_statement "LAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;" statement_identifier : (expression_statement "lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;" (assignment_expression "lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18" identifier = (binary_expression "((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18" (parenthesized_expression "((longdouble)local_a4 + (longdouble)DAT_0001e244)" ( (binary_expression "(longdouble)local_a4 + (longdouble)DAT_0001e244" (cast_expression "(longdouble)local_a4" ( (type_descriptor "longdouble" type_identifier) ) identifier) + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier)) )) * identifier)) ;)) (if_statement "if ((param_4 & 0x10) == 0) goto LAB_000151c8;" if (parenthesized_expression "((param_4 & 0x10) == 0)" ( (binary_expression "(param_4 & 0x10) == 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000151c8;" goto statement_identifier ;)) (labeled_statement "LAB_00015036:\n      local_a4._0_4_ = 0;" statement_identifier : (expression_statement "local_a4._0_4_ = 0;" (assignment_expression "local_a4._0_4_ = 0" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;)) (expression_statement "lVar20 = (longdouble)(int)uVar8;" (assignment_expression "lVar20 = (longdouble)(int)uVar8" identifier = (cast_expression "(longdouble)(int)uVar8" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);" do (compound_statement "{\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      }" { (expression_statement "lVar19 = lVar20;" (assignment_expression "lVar19 = lVar20" identifier = identifier) ;) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" identifier . field_identifier) = (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "lVar20 = lVar19 * (longdouble)(int)uVar8;" (assignment_expression "lVar20 = lVar19 * (longdouble)(int)uVar8" identifier = (binary_expression "lVar19 * (longdouble)(int)uVar8" identifier * (cast_expression "(longdouble)(int)uVar8" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (lVar18 < lVar20) break;" if (parenthesized_expression "(lVar18 < lVar20)" ( (binary_expression "lVar18 < lVar20" identifier < identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "((int)local_a4 != 8)" ( (binary_expression "(int)local_a4 != 8" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) ;) (expression_statement "lVar18 = lVar18 / lVar19;" (assignment_expression "lVar18 = lVar18 / lVar19" identifier = (binary_expression "lVar18 / lVar19" identifier / identifier)) ;) (expression_statement "uVar15 = local_74 + 2 + (uint)(uVar7 == 0);" (assignment_expression "uVar15 = local_74 + 2 + (uint)(uVar7 == 0)" identifier = (binary_expression "local_74 + 2 + (uint)(uVar7 == 0)" (binary_expression "local_74 + 2" identifier + number_literal) + (call_expression "(uint)(uVar7 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) ))))) ;) (if_statement "if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (compound_statement "{\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }" { (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40))" identifier (argument_list "(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.1Lf"" " string_content ") , (call_expression "SUB104(lVar18,0)" identifier (argument_list "(lVar18,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar18 >> 0x20)" ( (binary_expression "(unkuint10)lVar18 >> 0x20" (cast_expression "(unkuint10)lVar18" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar18 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar18 >> 0x40)" ( (binary_expression "(unkuint10)lVar18 >> 0x40" (cast_expression "(unkuint10)lVar18" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (__n <= uVar15) goto LAB_00015830;" if (parenthesized_expression "(__n <= uVar15)" ( (binary_expression "__n <= uVar15" identifier <= identifier) )) (goto_statement "goto LAB_00015830;" goto statement_identifier ;)) (expression_statement "lVar18 = lVar18 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar18 = lVar18 * (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar18 * (longdouble)DAT_0001e24c" identifier * (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) }) (else_clause "else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" else (compound_statement "{\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" { (expression_statement "lVar20 = lVar18;" (assignment_expression "lVar20 = lVar18" identifier = identifier) ;) (if_statement "if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }" if (parenthesized_expression "(lVar18 < _DAT_0001e250)" ( (binary_expression "lVar18 < _DAT_0001e250" identifier < identifier) )) (compound_statement "{\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }" { (if_statement "if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }" if (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar18)" ( (binary_expression "(longdouble)DAT_0001e248 <= lVar18" (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }" { (expression_statement "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" identifier = (cast_expression "(ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar18 - (longdouble)DAT_0001e248)" identifier (argument_list "(lVar18 - (longdouble)DAT_0001e248)" ( (binary_expression "lVar18 - (longdouble)DAT_0001e248" identifier - (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ))))) ;) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" identifier . field_identifier) = (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier = (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" ( (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" identifier . field_identifier) + number_literal) , (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" identifier = identifier) ;) }) (else_clause "else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }" else (compound_statement "{\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }" { (expression_statement "uVar1 = (ulonglong)ROUND(lVar18);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar18)" identifier = (cast_expression "(ulonglong)ROUND(lVar18)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar18)" identifier (argument_list "(lVar18)" ( identifier ))))) ;) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" identifier = identifier) ;) }))) (expression_statement "lVar20 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar20 = (longdouble)(longlong)uVar1" identifier = (cast_expression "(longdouble)(longlong)uVar1" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) (if_statement "if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "((longlong)uVar1 < 0)" ( (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar20 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "(((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" ( (binary_expression "((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar6 == 0) && (lVar18 != lVar20))" ( (binary_expression "(uVar6 == 0) && (lVar18 != lVar20)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(lVar18 != lVar20)" ( (binary_expression "lVar18 != lVar20" identifier != identifier) ))) )) && (parenthesized_expression "(lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" ( (comma_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1)" identifier = (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(longlong)" ( identifier ))) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )))) , (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar20 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) })) (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40))" identifier (argument_list "(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.1Lf"" " string_content ") , (call_expression "SUB104(lVar20,0)" identifier (argument_list "(lVar20,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar20 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x20)" ( (binary_expression "(unkuint10)lVar20 >> 0x20" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar20 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar20 >> 0x40)" ( (binary_expression "(unkuint10)lVar20 >> 0x40" (cast_expression "(unkuint10)lVar20" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }" if (parenthesized_expression "(uVar15 < __n)" ( (binary_expression "uVar15 < __n" identifier < identifier) )) (compound_statement "{\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }" { (expression_statement "lVar20 = lVar18 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar20 = lVar18 * (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar18 * (longdouble)DAT_0001e24c" identifier * (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) }) (else_clause "else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }" else (compound_statement "{\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }" { (labeled_statement "LAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" statement_identifier : (if_statement "if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" if (parenthesized_expression "(((param_4 & 8) == 0) || (param_3[__n - 1] != '0'))" ( (binary_expression "((param_4 & 8) == 0) || (param_3[__n - 1] != '0')" (parenthesized_expression "((param_4 & 8) == 0)" ( (binary_expression "(param_4 & 8) == 0" (parenthesized_expression "(param_4 & 8)" ( (binary_expression "param_4 & 8" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(param_3[__n - 1] != '0')" ( (binary_expression "param_3[__n - 1] != '0'" (subscript_expression "param_3[__n - 1]" identifier [ (binary_expression "__n - 1" identifier - number_literal) ]) != (char_literal "'0'" ' character ')) ))) )) (compound_statement "{\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" { (expression_statement "sVar10 = __n - (local_74 + 1);" (assignment_expression "sVar10 = __n - (local_74 + 1)" identifier = (binary_expression "__n - (local_74 + 1)" identifier - (parenthesized_expression "(local_74 + 1)" ( (binary_expression "local_74 + 1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_00015214;" goto statement_identifier ;) }))) (expression_statement "lVar18 = lVar18 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar18 = lVar18 * (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar18 * (longdouble)DAT_0001e24c" identifier * (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) (expression_statement "lVar20 = lVar18;" (assignment_expression "lVar20 = lVar18" identifier = identifier) ;) (if_statement "if (uVar6 == 1) goto LAB_00015192;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_00015192;" goto statement_identifier ;)) }))) (expression_statement "lVar18 = lVar20;" (assignment_expression "lVar18 = lVar20" identifier = identifier) ;) (if_statement "if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }" if (parenthesized_expression "(lVar20 < _DAT_0001e250)" ( (binary_expression "lVar20 < _DAT_0001e250" identifier < identifier) )) (compound_statement "{\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }" { (if_statement "if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" if (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar20)" ( (binary_expression "(longdouble)DAT_0001e248 <= lVar20" (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }" { (expression_statement "uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248)" identifier = (cast_expression "(ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar20 - (longdouble)DAT_0001e248)" identifier (argument_list "(lVar20 - (longdouble)DAT_0001e248)" ( (binary_expression "lVar20 - (longdouble)DAT_0001e248" identifier - (cast_expression "(longdouble)DAT_0001e248" ( (type_descriptor "longdouble" type_identifier) ) identifier)) ))))) ;) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" identifier . field_identifier) = (cast_expression "(int)(uVar2 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar2 >> 0x20)" ( (binary_expression "uVar2 >> 0x20" identifier >> number_literal) )))) ;) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" identifier . field_identifier) = (cast_expression "(uint)uVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier = (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" identifier (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" ( (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" identifier . field_identifier) + number_literal) , (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" identifier = identifier) ;) }) (else_clause "else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" else (compound_statement "{\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" { (expression_statement "uVar1 = (ulonglong)ROUND(lVar20);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar20)" identifier = (cast_expression "(ulonglong)ROUND(lVar20)" ( (type_descriptor "ulonglong" type_identifier) ) (call_expression "ROUND(lVar20)" identifier (argument_list "(lVar20)" ( identifier ))))) ;) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" identifier = identifier) ;) }))) (expression_statement "lVar18 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar18 = (longdouble)(longlong)uVar1" identifier = (cast_expression "(longdouble)(longlong)uVar1" ( (type_descriptor "longdouble" type_identifier) ) (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier))) ;) (if_statement "if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "((longlong)uVar1 < 0)" ( (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" ( (type_descriptor "longlong" type_identifier) ) identifier) < number_literal) )) (compound_statement "{\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar18 = lVar18 + (longdouble)DAT_0001e244;" (assignment_expression "lVar18 = lVar18 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar18 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) (if_statement "if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" if (parenthesized_expression "(((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" ( (binary_expression "((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar6 == 0) && (lVar20 != lVar18))" ( (binary_expression "(uVar6 == 0) && (lVar20 != lVar18)" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(lVar20 != lVar18)" ( (binary_expression "lVar20 != lVar18" identifier != identifier) ))) )) && (parenthesized_expression "(lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" ( (comma_expression "lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar18 = (longdouble)(longlong)(uVar1 + 1)" identifier = (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" ( identifier )) (argument_list "(longlong)" ( identifier ))) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) )))) , (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" ( identifier )) (argument_list "(uVar1 + 1)" ( (binary_expression "uVar1 + 1" identifier + number_literal) ))) < number_literal)) ))) )) (compound_statement "{\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" { (expression_statement "lVar18 = lVar18 + (longdouble)DAT_0001e244;" (assignment_expression "lVar18 = lVar18 + (longdouble)DAT_0001e244" identifier = (binary_expression "lVar18 + (longdouble)DAT_0001e244" identifier + (cast_expression "(longdouble)DAT_0001e244" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;) })) })) }))) (labeled_statement "LAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;" statement_identifier : (expression_statement "lVar18 = lVar18 / (longdouble)DAT_0001e24c;" (assignment_expression "lVar18 = lVar18 / (longdouble)DAT_0001e24c" identifier = (binary_expression "lVar18 / (longdouble)DAT_0001e24c" identifier / (cast_expression "(longdouble)DAT_0001e24c" ( (type_descriptor "longdouble" type_identifier) ) identifier))) ;)) (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40))" identifier (argument_list "(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40))" ( identifier , number_literal , number_literal , (string_literal ""%.0Lf"" " string_content ") , (call_expression "SUB104(lVar18,0)" identifier (argument_list "(lVar18,0)" ( identifier , number_literal ))) , (cast_expression "(int)((unkuint10)lVar18 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((unkuint10)lVar18 >> 0x20)" ( (binary_expression "(unkuint10)lVar18 >> 0x20" (cast_expression "(unkuint10)lVar18" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) , (cast_expression "(short)((unkuint10)lVar18 >> 0x40)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((unkuint10)lVar18 >> 0x40)" ( (binary_expression "(unkuint10)lVar18 >> 0x40" (cast_expression "(unkuint10)lVar18" ( (type_descriptor "unkuint10" type_identifier) ) identifier) >> number_literal) ))) ))) ;) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "sVar10 = __n;" (assignment_expression "sVar10 = __n" identifier = identifier) ;) }))) (labeled_statement "LAB_00015214:\n    pcVar16 = local_98 + -__n;" statement_identifier : (expression_statement "pcVar16 = local_98 + -__n;" (assignment_expression "pcVar16 = local_98 + -__n" identifier = (binary_expression "local_98 + -__n" identifier + (unary_expression "-__n" - identifier))) ;)) (expression_statement "memmove(pcVar16,param_3,__n);" (call_expression "memmove(pcVar16,param_3,__n)" identifier (argument_list "(pcVar16,param_3,__n)" ( identifier , identifier , identifier ))) ;) (expression_statement "local_7c = pcVar16 + sVar10;" (assignment_expression "local_7c = pcVar16 + sVar10" identifier = (binary_expression "pcVar16 + sVar10" identifier + identifier)) ;) }) (else_clause "else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }" else (compound_statement "{\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }" { (expression_statement "lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);" (assignment_expression "lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54)" identifier = (call_expression "FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54)" identifier (argument_list "(param_5,param_6,param_7,param_8,&local_54)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_54" & identifier) )))) ;) (if_statement "if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;" if (parenthesized_expression "(local_54._4_4_ != 0 || (uint)local_54 != 0)" ( (binary_expression "local_54._4_4_ != 0 || (uint)local_54 != 0" (binary_expression "local_54._4_4_ != 0" (field_expression "local_54._4_4_" identifier . field_identifier) != number_literal) || (binary_expression "(uint)local_54 != 0" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal)) )) (goto_statement "goto LAB_00014fe8;" goto statement_identifier ;)) (expression_statement "lVar23 = lVar21 * local_a4;" (assignment_expression "lVar23 = lVar21 * local_a4" identifier = (binary_expression "lVar21 * local_a4" identifier * identifier)) ;) (expression_statement "lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));" (assignment_expression "lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20))" identifier = (call_expression "FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20))" identifier (argument_list "(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20))" ( identifier , (cast_expression "(short)lVar21" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , (cast_expression "(int)((ulonglong)lVar21 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar21 >> 0x20)" ( (binary_expression "(ulonglong)lVar21 >> 0x20" (cast_expression "(ulonglong)lVar21" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) )))) ;) (if_statement "if (lVar21 != local_a4) goto LAB_00014fe8;" if (parenthesized_expression "(lVar21 != local_a4)" ( (binary_expression "lVar21 != local_a4" identifier != identifier) )) (goto_statement "goto LAB_00014fe8;" goto statement_identifier ;)) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (if_statement "if ((param_4 & 0x10) == 0) goto LAB_0001578e;" if (parenthesized_expression "((param_4 & 0x10) == 0)" ( (binary_expression "(param_4 & 0x10) == 0" (parenthesized_expression "(param_4 & 0x10)" ( (binary_expression "param_4 & 0x10" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001578e;" goto statement_identifier ;)) (labeled_statement "LAB_000153b5:\n    local_64 = &local_54;" statement_identifier : (expression_statement "local_64 = &local_54;" (assignment_expression "local_64 = &local_54" identifier = (pointer_expression "&local_54" & identifier)) ;)) (expression_statement "local_a4._0_4_ = 0;" (assignment_expression "local_a4._0_4_ = 0" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;) (if_statement "if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;" if (parenthesized_expression "((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8))" ( (binary_expression "(uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)" (call_expression "(uint)((ulonglong)lVar23 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) < (call_expression "(uint)((uint)lVar23 < uVar8)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uint)lVar23 < uVar8)" ( (binary_expression "(uint)lVar23 < uVar8" (cast_expression "(uint)lVar23" ( (type_descriptor "uint" type_identifier) ) identifier) < identifier) )))) )) (goto_statement "goto LAB_00015796;" goto statement_identifier ;)) (while_statement "while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }" { (expression_statement "lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);" (assignment_expression "lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64)" identifier = (call_expression "FUN_0001bee0(lVar23,uVar8,0,local_64)" identifier (argument_list "(lVar23,uVar8,0,local_64)" ( identifier , identifier , number_literal , identifier )))) ;) (expression_statement "uVar14 = (uint)((ulonglong)lVar23 >> 0x20);" (assignment_expression "uVar14 = (uint)((ulonglong)lVar23 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)lVar23 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar12 = (uint)lVar23;" (assignment_expression "uVar12 = (uint)lVar23" identifier = (cast_expression "(uint)lVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar15 = local_68 + (uint)local_54 * 10;" (assignment_expression "uVar15 = local_68 + (uint)local_54 * 10" identifier = (binary_expression "local_68 + (uint)local_54 * 10" identifier + (binary_expression "(uint)local_54 * 10" (cast_expression "(uint)local_54" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal))) ;) (expression_statement "uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;" (assignment_expression "uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8" identifier = (binary_expression "(ulonglong)uVar15 / (ulonglong)uVar8" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) / (cast_expression "(ulonglong)uVar8" ( (type_descriptor "ulonglong" type_identifier) ) identifier))) ;) (expression_statement "local_68 = (uint)uVar1;" (assignment_expression "local_68 = (uint)uVar1" identifier = (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;" (assignment_expression "uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2" identifier = (binary_expression "((int)uVar17 >> 1) + (uVar15 % uVar8) * 2" (parenthesized_expression "((int)uVar17 >> 1)" ( (binary_expression "(int)uVar17 >> 1" (cast_expression "(int)uVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )) + (binary_expression "(uVar15 % uVar8) * 2" (parenthesized_expression "(uVar15 % uVar8)" ( (binary_expression "uVar15 % uVar8" identifier % identifier) )) * number_literal))) ;) (expression_statement "uVar17 = uVar17 + uVar15;" (assignment_expression "uVar17 = uVar17 + uVar15" identifier = (binary_expression "uVar17 + uVar15" identifier + identifier)) ;) (if_statement "if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }" if (parenthesized_expression "(uVar15 < uVar8)" ( (binary_expression "uVar15 < uVar8" identifier < identifier) )) (compound_statement "{\n        uVar17 = (uint)(uVar17 != 0);\n      }" { (expression_statement "uVar17 = (uint)(uVar17 != 0);" (assignment_expression "uVar17 = (uint)(uVar17 != 0)" identifier = (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )))) ;) }) (else_clause "else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }" else (compound_statement "{\n        uVar17 = (uVar8 < uVar17) + 2;\n      }" { (expression_statement "uVar17 = (uVar8 < uVar17) + 2;" (assignment_expression "uVar17 = (uVar8 < uVar17) + 2" identifier = (binary_expression "(uVar8 < uVar17) + 2" (parenthesized_expression "(uVar8 < uVar17)" ( (binary_expression "uVar8 < uVar17" identifier < identifier) )) + number_literal)) ;) }))) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" identifier . field_identifier) = (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (uVar14 < (uVar12 < uVar8)) break;" if (parenthesized_expression "(uVar14 < (uVar12 < uVar8))" ( (binary_expression "uVar14 < (uVar12 < uVar8)" identifier < (parenthesized_expression "(uVar12 < uVar8)" ( (binary_expression "uVar12 < uVar8" identifier < identifier) ))) )) (break_statement "break;" break ;)) (if_statement "if ((int)local_a4 == 8) goto LAB_00015796;" if (parenthesized_expression "((int)local_a4 == 8)" ( (binary_expression "(int)local_a4 == 8" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (goto_statement "goto LAB_00015796;" goto statement_identifier ;)) })) (if_statement "if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;" if (parenthesized_expression "(uVar14 != 0 || -uVar14 < (uint)(9 < uVar12))" ( (binary_expression "uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)" (binary_expression "uVar14 != 0" identifier != number_literal) || (binary_expression "-uVar14 < (uint)(9 < uVar12)" (unary_expression "-uVar14" - identifier) < (call_expression "(uint)(9 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(9 < uVar12)" ( (binary_expression "9 < uVar12" number_literal < identifier) ))))) )) (goto_statement "goto LAB_00015796;" goto statement_identifier ;)) (if_statement "if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (compound_statement "{\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }" { (expression_statement "bVar5 = 2 < (local_68 & 1) + uVar17;" (assignment_expression "bVar5 = 2 < (local_68 & 1) + uVar17" identifier = (binary_expression "2 < (local_68 & 1) + uVar17" number_literal < (binary_expression "(local_68 & 1) + uVar17" (parenthesized_expression "(local_68 & 1)" ( (binary_expression "local_68 & 1" identifier & number_literal) )) + identifier))) ;) }) (else_clause "else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }" else (compound_statement "{\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }" { (expression_statement "bVar5 = uVar17 != 0 && uVar6 == 0;" (assignment_expression "bVar5 = uVar17 != 0 && uVar6 == 0" identifier = (binary_expression "uVar17 != 0 && uVar6 == 0" (binary_expression "uVar17 != 0" identifier != number_literal) && (binary_expression "uVar6 == 0" identifier == number_literal))) ;) }))) (expression_statement "cVar4 = (char)uVar1;" (assignment_expression "cVar4 = (char)uVar1" identifier = (cast_expression "(char)uVar1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }" if (parenthesized_expression "(bVar5)" ( identifier )) (compound_statement "{\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }" { (if_statement "if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }" if (parenthesized_expression "(local_68 == 9)" ( (binary_expression "local_68 == 9" identifier == number_literal) )) (compound_statement "{\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }" { (expression_statement "lVar21 = lVar23 + 1;" (assignment_expression "lVar21 = lVar23 + 1" identifier = (binary_expression "lVar23 + 1" identifier + number_literal)) ;) (expression_statement "lVar23 = lVar23 + 1;" (assignment_expression "lVar23 = lVar23 + 1" identifier = (binary_expression "lVar23 + 1" identifier + number_literal)) ;) (if_statement "if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }" if (parenthesized_expression "((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9)" ( (binary_expression "(int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9" (binary_expression "(int)((ulonglong)lVar21 >> 0x20) != 0" (cast_expression "(int)((ulonglong)lVar21 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar21 >> 0x20)" ( (binary_expression "(ulonglong)lVar21 >> 0x20" (cast_expression "(ulonglong)lVar21" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) || (binary_expression "uVar12 != 9" identifier != number_literal)) )) (compound_statement "{\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00015ae9;" goto statement_identifier ;) })) (goto_statement "goto LAB_00015b39;" goto statement_identifier ;) })) (expression_statement "cVar4 = cVar4 + '1';" (assignment_expression "cVar4 = cVar4 + '1'" identifier = (binary_expression "cVar4 + '1'" identifier + (char_literal "'1'" ' character '))) ;) }) (else_clause "else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }" else (if_statement "if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }" if (parenthesized_expression "(local_68 == 0)" ( (binary_expression "local_68 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }" { (labeled_statement "LAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;" statement_identifier : (if_statement "if ((param_4 & 8) != 0) goto LAB_00015b3b;" if (parenthesized_expression "((param_4 & 8) != 0)" ( (binary_expression "(param_4 & 8) != 0" (parenthesized_expression "(param_4 & 8)" ( (binary_expression "param_4 & 8" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00015b3b;" goto statement_identifier ;))) (expression_statement "cVar4 = '0';" (assignment_expression "cVar4 = '0'" identifier = (char_literal "'0'" ' character ')) ;) }) (else_clause "else {\n      cVar4 = cVar4 + '0';\n    }" else (compound_statement "{\n      cVar4 = cVar4 + '0';\n    }" { (expression_statement "cVar4 = cVar4 + '0';" (assignment_expression "cVar4 = cVar4 + '0'" identifier = (binary_expression "cVar4 + '0'" identifier + (char_literal "'0'" ' character '))) ;) }))))) (expression_statement "param_3[0x286] = cVar4;" (assignment_expression "param_3[0x286] = cVar4" (subscript_expression "param_3[0x286]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_7c = param_3 + (0x286 - local_74);" (assignment_expression "local_7c = param_3 + (0x286 - local_74)" identifier = (binary_expression "param_3 + (0x286 - local_74)" identifier + (parenthesized_expression "(0x286 - local_74)" ( (binary_expression "0x286 - local_74" number_literal - identifier) )))) ;) (if_statement "if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }" if (parenthesized_expression "(local_74 < 4)" ( (binary_expression "local_74 < 4" identifier < number_literal) )) (compound_statement "{\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }" { (if_statement "if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }" if (parenthesized_expression "((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0))" ( (binary_expression "(local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)" (parenthesized_expression "(local_74 != 0)" ( (binary_expression "local_74 != 0" identifier != number_literal) )) && (parenthesized_expression "(*local_7c = *local_6c, (local_74 & 2) != 0)" ( (comma_expression "*local_7c = *local_6c, (local_74 & 2) != 0" (assignment_expression "*local_7c = *local_6c" (pointer_expression "*local_7c" * identifier) = (pointer_expression "*local_6c" * identifier)) , (binary_expression "(local_74 & 2) != 0" (parenthesized_expression "(local_74 & 2)" ( (binary_expression "local_74 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }" { (expression_statement "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));" (assignment_expression "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2))" (pointer_expression "*(undefined2 *)(local_7c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_7c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + (local_74 - 2))" ( (binary_expression "local_7c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) )))) = (pointer_expression "*(undefined2 *)(local_6c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_6c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 2))" ( (binary_expression "local_6c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) ))))) ;) })) }) (else_clause "else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }" else (compound_statement "{\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }" { (expression_statement "*(undefined4 *)local_7c = *(undefined4 *)local_6c;" (assignment_expression "*(undefined4 *)local_7c = *(undefined4 *)local_6c" (pointer_expression "*(undefined4 *)local_7c" * (cast_expression "(undefined4 *)local_7c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)local_6c" * (cast_expression "(undefined4 *)local_6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));" (assignment_expression "*(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4))" (pointer_expression "*(undefined4 *)(param_3 + 0x282)" * (cast_expression "(undefined4 *)(param_3 + 0x282)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x282)" ( (binary_expression "param_3 + 0x282" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(local_6c + (local_74 - 4))" * (cast_expression "(undefined4 *)(local_6c + (local_74 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 4))" ( (binary_expression "local_6c + (local_74 - 4)" identifier + (parenthesized_expression "(local_74 - 4)" ( (binary_expression "local_74 - 4" identifier - number_literal) ))) ))))) ;) (expression_statement "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);" (assignment_expression "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" identifier = (binary_expression "(int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "uVar15 = iVar13 + local_74 & 0xfffffffc;" (assignment_expression "uVar15 = iVar13 + local_74 & 0xfffffffc" identifier = (binary_expression "iVar13 + local_74 & 0xfffffffc" (binary_expression "iVar13 + local_74" identifier + identifier) & number_literal)) ;) (if_statement "if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }" if (parenthesized_expression "(3 < uVar15)" ( (binary_expression "3 < uVar15" number_literal < identifier) )) (compound_statement "{\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (do_statement "do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);" do (compound_statement "{\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        }" { (expression_statement "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));" (assignment_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13))" (pointer_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12)" * (cast_expression "(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)(local_7c + 4) & 0xfffffffc) + uVar12)" ( (binary_expression "((uint)(local_7c + 4) & 0xfffffffc) + uVar12" (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )) + identifier) )))) = (pointer_expression "*(undefined4 *)(local_6c + (uVar12 - iVar13))" * (cast_expression "(undefined4 *)(local_6c + (uVar12 - iVar13))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (uVar12 - iVar13))" ( (binary_expression "local_6c + (uVar12 - iVar13)" identifier + (parenthesized_expression "(uVar12 - iVar13)" ( (binary_expression "uVar12 - iVar13" identifier - identifier) ))) ))))) ;) (expression_statement "uVar12 = uVar12 + 4;" (assignment_expression "uVar12 = uVar12 + 4" identifier = (binary_expression "uVar12 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar12 < uVar15)" ( (binary_expression "uVar12 < uVar15" identifier < identifier) )) ;) })) }))) (labeled_statement "LAB_00015b39:\n    uVar17 = 0;" statement_identifier : (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_00015b3b:\n    pcVar16 = local_7c;" statement_identifier : (expression_statement "pcVar16 = local_7c;" (assignment_expression "pcVar16 = local_7c" identifier = identifier) ;)) (if_statement "if (uVar6 == 1) goto LAB_000157f4;" if (parenthesized_expression "(uVar6 == 1)" ( (binary_expression "uVar6 == 1" identifier == number_literal) )) (goto_statement "goto LAB_000157f4;" goto statement_identifier ;)) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000157a9:\n    pcVar16 = local_7c;" statement_identifier : (expression_statement "pcVar16 = local_7c;" (assignment_expression "pcVar16 = local_7c" identifier = identifier) ;)) (if_statement "if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }" if (parenthesized_expression "((uVar6 == 0) && (0 < (int)(local_68 + uVar17)))" ( (binary_expression "(uVar6 == 0) && (0 < (int)(local_68 + uVar17))" (parenthesized_expression "(uVar6 == 0)" ( (binary_expression "uVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(0 < (int)(local_68 + uVar17))" ( (binary_expression "0 < (int)(local_68 + uVar17)" number_literal < (cast_expression "(int)(local_68 + uVar17)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_68 + uVar17)" ( (binary_expression "local_68 + uVar17" identifier + identifier) )))) ))) )) (compound_statement "{\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }" { (labeled_statement "LAB_000157bb:\n      local_5c = param_4 & 0x10;" statement_identifier : (expression_statement "local_5c = param_4 & 0x10;" (assignment_expression "local_5c = param_4 & 0x10" identifier = (binary_expression "param_4 & 0x10" identifier & number_literal)) ;)) (expression_statement "lVar23 = lVar23 + 1;" (assignment_expression "lVar23 = lVar23 + 1" identifier = (binary_expression "lVar23 + 1" identifier + number_literal)) ;) (expression_statement "pcVar16 = local_7c;" (assignment_expression "pcVar16 = local_7c" identifier = identifier) ;) (if_statement "if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;" if (parenthesized_expression "(((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8))" ( (binary_expression "((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)" (parenthesized_expression "((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23))" ( (binary_expression "(local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)" (parenthesized_expression "(local_5c == 0)" ( (binary_expression "local_5c == 0" identifier == number_literal) )) || (parenthesized_expression "((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)" ( (binary_expression "(int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23" (binary_expression "(int)((ulonglong)lVar23 >> 0x20) != 0" (cast_expression "(int)((ulonglong)lVar23 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) != number_literal) || (binary_expression "uVar8 != (uint)lVar23" identifier != (cast_expression "(uint)lVar23" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) )) || (parenthesized_expression "((int)local_a4 == 8)" ( (binary_expression "(int)local_a4 == 8" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) ))) )) (goto_statement "goto LAB_000157f4;" goto statement_identifier ;)) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" identifier . field_identifier) = (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }" if (parenthesized_expression "((param_4 & 8) == 0)" ( (binary_expression "(param_4 & 8) == 0" (parenthesized_expression "(param_4 & 8)" ( (binary_expression "param_4 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }" { (expression_statement "local_7c[-1] = '0';" (assignment_expression "local_7c[-1] = '0'" (subscript_expression "local_7c[-1]" identifier [ number_literal ]) = (char_literal "'0'" ' character ')) ;) (expression_statement "local_7c = local_7c + ~local_74;" (assignment_expression "local_7c = local_7c + ~local_74" identifier = (binary_expression "local_7c + ~local_74" identifier + (unary_expression "~local_74" ~ identifier))) ;) (if_statement "if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }" if (parenthesized_expression "(local_74 < 4)" ( (binary_expression "local_74 < 4" identifier < number_literal) )) (compound_statement "{\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }" { (if_statement "if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }" if (parenthesized_expression "((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0))" ( (binary_expression "(local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)" (parenthesized_expression "(local_74 != 0)" ( (binary_expression "local_74 != 0" identifier != number_literal) )) && (parenthesized_expression "(*local_7c = *local_6c, (local_74 & 2) != 0)" ( (comma_expression "*local_7c = *local_6c, (local_74 & 2) != 0" (assignment_expression "*local_7c = *local_6c" (pointer_expression "*local_7c" * identifier) = (pointer_expression "*local_6c" * identifier)) , (binary_expression "(local_74 & 2) != 0" (parenthesized_expression "(local_74 & 2)" ( (binary_expression "local_74 & 2" identifier & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }" { (expression_statement "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));" (assignment_expression "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2))" (pointer_expression "*(undefined2 *)(local_7c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_7c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + (local_74 - 2))" ( (binary_expression "local_7c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) )))) = (pointer_expression "*(undefined2 *)(local_6c + (local_74 - 2))" * (cast_expression "(undefined2 *)(local_6c + (local_74 - 2))" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 2))" ( (binary_expression "local_6c + (local_74 - 2)" identifier + (parenthesized_expression "(local_74 - 2)" ( (binary_expression "local_74 - 2" identifier - number_literal) ))) ))))) ;) })) }) (else_clause "else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }" else (compound_statement "{\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }" { (expression_statement "*(undefined4 *)local_7c = *(undefined4 *)local_6c;" (assignment_expression "*(undefined4 *)local_7c = *(undefined4 *)local_6c" (pointer_expression "*(undefined4 *)local_7c" * (cast_expression "(undefined4 *)local_7c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)local_6c" * (cast_expression "(undefined4 *)local_6c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "*(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));" (assignment_expression "*(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4))" (pointer_expression "*(undefined4 *)(local_7c + (local_74 - 4))" * (cast_expression "(undefined4 *)(local_7c + (local_74 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + (local_74 - 4))" ( (binary_expression "local_7c + (local_74 - 4)" identifier + (parenthesized_expression "(local_74 - 4)" ( (binary_expression "local_74 - 4" identifier - number_literal) ))) )))) = (pointer_expression "*(undefined4 *)(local_6c + (local_74 - 4))" * (cast_expression "(undefined4 *)(local_6c + (local_74 - 4))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (local_74 - 4))" ( (binary_expression "local_6c + (local_74 - 4)" identifier + (parenthesized_expression "(local_74 - 4)" ( (binary_expression "local_74 - 4" identifier - number_literal) ))) ))))) ;) (expression_statement "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);" (assignment_expression "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" identifier = (binary_expression "(int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )))) ;) (expression_statement "uVar6 = iVar13 + local_74 & 0xfffffffc;" (assignment_expression "uVar6 = iVar13 + local_74 & 0xfffffffc" identifier = (binary_expression "iVar13 + local_74 & 0xfffffffc" (binary_expression "iVar13 + local_74" identifier + identifier) & number_literal)) ;) (if_statement "if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }" if (parenthesized_expression "(3 < uVar6)" ( (binary_expression "3 < uVar6" number_literal < identifier) )) (compound_statement "{\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (do_statement "do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);" do (compound_statement "{\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            }" { (expression_statement "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));" (assignment_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13))" (pointer_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15)" * (cast_expression "(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((uint)(local_7c + 4) & 0xfffffffc) + uVar15)" ( (binary_expression "((uint)(local_7c + 4) & 0xfffffffc) + uVar15" (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" ( (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_7c + 4)" ( (binary_expression "local_7c + 4" identifier + number_literal) ))) & number_literal) )) + identifier) )))) = (pointer_expression "*(undefined4 *)(local_6c + (uVar15 - iVar13))" * (cast_expression "(undefined4 *)(local_6c + (uVar15 - iVar13))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_6c + (uVar15 - iVar13))" ( (binary_expression "local_6c + (uVar15 - iVar13)" identifier + (parenthesized_expression "(uVar15 - iVar13)" ( (binary_expression "uVar15 - iVar13" identifier - identifier) ))) ))))) ;) (expression_statement "uVar15 = uVar15 + 4;" (assignment_expression "uVar15 = uVar15 + 4" identifier = (binary_expression "uVar15 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar15 < uVar6)" ( (binary_expression "uVar15 < uVar6" identifier < identifier) )) ;) })) }))) })) (expression_statement "pcVar16 = local_7c + -1;" (assignment_expression "pcVar16 = local_7c + -1" identifier = (binary_expression "local_7c + -1" identifier + number_literal)) ;) (expression_statement "local_7c[-1] = '1';" (assignment_expression "local_7c[-1] = '1'" (subscript_expression "local_7c[-1]" identifier [ number_literal ]) = (char_literal "'1'" ' character ')) ;) }) (else_clause "else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }" else (compound_statement "{\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }" { (labeled_statement "LAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));" statement_identifier : (do_statement "do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));" do (compound_statement "{\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      }" { (expression_statement "iVar13 = (int)((ulonglong)lVar23 >> 0x20);" (assignment_expression "iVar13 = (int)((ulonglong)lVar23 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)lVar23 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)lVar23 >> 0x20)" ( (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar6 = (uint)lVar23;" (assignment_expression "uVar6 = (uint)lVar23" identifier = (cast_expression "(uint)lVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar16 = pcVar16 + -1;" (assignment_expression "pcVar16 = pcVar16 + -1" identifier = (binary_expression "pcVar16 + -1" identifier + number_literal)) ;) (expression_statement "cVar4 = FUN_0001bda0(lVar23,10,0);" (assignment_expression "cVar4 = FUN_0001bda0(lVar23,10,0)" identifier = (call_expression "FUN_0001bda0(lVar23,10,0)" identifier (argument_list "(lVar23,10,0)" ( identifier , number_literal , number_literal )))) ;) (expression_statement "*pcVar16 = cVar4 + '0';" (assignment_expression "*pcVar16 = cVar4 + '0'" (pointer_expression "*pcVar16" * identifier) = (binary_expression "cVar4 + '0'" identifier + (char_literal "'0'" ' character '))) ;) (expression_statement "lVar23 = FUN_0001bc90(lVar23,10,0);" (assignment_expression "lVar23 = FUN_0001bc90(lVar23,10,0)" identifier = (call_expression "FUN_0001bc90(lVar23,10,0)" identifier (argument_list "(lVar23,10,0)" ( identifier , number_literal , number_literal )))) ;) }) while (parenthesized_expression "(iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6))" ( (binary_expression "iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6)" (binary_expression "iVar13 != 0" identifier != number_literal) || (binary_expression "(uint)-iVar13 < (uint)(9 < uVar6)" (binary_expression "(uint)-iVar13" (parenthesized_expression "(uint)" ( identifier )) - identifier) < (call_expression "(uint)(9 < uVar6)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(9 < uVar6)" ( (binary_expression "9 < uVar6" number_literal < identifier) ))))) )) ;)) }))) }))) (if_statement "if ((param_4 & 4) != 0) {\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }" if (parenthesized_expression "((param_4 & 4) != 0)" ( (binary_expression "(param_4 & 4) != 0" (parenthesized_expression "(param_4 & 4)" ( (binary_expression "param_4 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }" { (expression_statement "uVar15 = (int)local_7c - (int)pcVar16;" (assignment_expression "uVar15 = (int)local_7c - (int)pcVar16" identifier = (binary_expression "(int)local_7c - (int)pcVar16" (cast_expression "(int)local_7c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "sVar10 = strlen(pcVar11);" (assignment_expression "sVar10 = strlen(pcVar11)" identifier = (call_expression "strlen(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (expression_statement "__memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);" (call_expression "__memcpy_chk(local_49,pcVar16,(short)uVar15,0x29)" identifier (argument_list "(local_49,pcVar16,(short)uVar15,0x29)" ( identifier , identifier , (cast_expression "(short)uVar15" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier) , number_literal ))) ;) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" identifier = number_literal) ;) (while_statement "while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }" { (expression_statement "bVar3 = *local_bc;" (assignment_expression "bVar3 = *local_bc" identifier = (pointer_expression "*local_bc" * identifier)) ;) (if_statement "if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }" if (parenthesized_expression "(bVar3 != 0)" ( (binary_expression "bVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }" { (expression_statement "uVar6 = (uint)bVar3;" (assignment_expression "uVar6 = (uint)bVar3" identifier = (cast_expression "(uint)bVar3" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }" if (parenthesized_expression "(0x7e < bVar3)" ( (binary_expression "0x7e < bVar3" number_literal < identifier) )) (compound_statement "{\n          uVar6 = uVar15;\n        }" { (expression_statement "uVar6 = uVar15;" (assignment_expression "uVar6 = uVar15" identifier = identifier) ;) })) (expression_statement "local_bc = local_bc + 1;" (assignment_expression "local_bc = local_bc + 1" identifier = (binary_expression "local_bc + 1" identifier + number_literal)) ;) })) (if_statement "if (uVar15 < uVar6) break;" if (parenthesized_expression "(uVar15 < uVar6)" ( (binary_expression "uVar15 < uVar6" identifier < identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar15 = uVar15 - uVar6;" (assignment_expression "uVar15 = uVar15 - uVar6" identifier = (binary_expression "uVar15 - uVar6" identifier - identifier)) ;) (expression_statement "pcVar16 = local_7c + -uVar6;" (assignment_expression "pcVar16 = local_7c + -uVar6" identifier = (binary_expression "local_7c + -uVar6" identifier + (unary_expression "-uVar6" - identifier))) ;) (expression_statement "memcpy(pcVar16,local_49 + uVar15,uVar6);" (call_expression "memcpy(pcVar16,local_49 + uVar15,uVar6)" identifier (argument_list "(pcVar16,local_49 + uVar15,uVar6)" ( identifier , (binary_expression "local_49 + uVar15" identifier + identifier) , identifier ))) ;) (if_statement "if (uVar15 == 0) goto LAB_00015240;" if (parenthesized_expression "(uVar15 == 0)" ( (binary_expression "uVar15 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015240;" goto statement_identifier ;)) (expression_statement "local_7c = pcVar16 + -sVar10;" (assignment_expression "local_7c = pcVar16 + -sVar10" identifier = (binary_expression "pcVar16 + -sVar10" identifier + (unary_expression "-sVar10" - identifier))) ;) (expression_statement "memcpy(local_7c,pcVar11,sVar10);" (call_expression "memcpy(local_7c,pcVar11,sVar10)" identifier (argument_list "(local_7c,pcVar11,sVar10)" ( identifier , identifier , identifier ))) ;) })) (expression_statement "pcVar16 = local_7c + -uVar15;" (assignment_expression "pcVar16 = local_7c + -uVar15" identifier = (binary_expression "local_7c + -uVar15" identifier + (unary_expression "-uVar15" - identifier))) ;) (expression_statement "memcpy(pcVar16,local_49,uVar15);" (call_expression "memcpy(pcVar16,local_49,uVar15)" identifier (argument_list "(pcVar16,local_49,uVar15)" ( identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_00015240:\n  if ((param_4 & 0x80) == 0) goto LAB_0001526d;" statement_identifier : (if_statement "if ((param_4 & 0x80) == 0) goto LAB_0001526d;" if (parenthesized_expression "((param_4 & 0x80) == 0)" ( (binary_expression "(param_4 & 0x80) == 0" (parenthesized_expression "(param_4 & 0x80)" ( (binary_expression "param_4 & 0x80" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001526d;" goto statement_identifier ;))) (if_statement "if ((int)local_a4 == -1) {\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }" if (parenthesized_expression "((int)local_a4 == -1)" ( (binary_expression "(int)local_a4 == -1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }" { (if_statement "if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }" if (parenthesized_expression "(param_8 == 0 && (uint)(1 < param_7) <= -param_8)" ( (binary_expression "param_8 == 0 && (uint)(1 < param_7) <= -param_8" (binary_expression "param_8 == 0" identifier == number_literal) && (binary_expression "(uint)(1 < param_7) <= -param_8" (call_expression "(uint)(1 < param_7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(1 < param_7)" ( (binary_expression "1 < param_7" number_literal < identifier) ))) <= (unary_expression "-param_8" - identifier))) )) (compound_statement "{\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }" { (expression_statement "local_a4._0_4_ = 0;" (assignment_expression "local_a4._0_4_ = 0" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;) (goto_statement "goto LAB_00015255;" goto statement_identifier ;) })) (expression_statement "local_a4._0_4_ = 1;" (assignment_expression "local_a4._0_4_ = 1" (field_expression "local_a4._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" identifier = number_literal) ;) (expression_statement "local_bc = (byte *)0x1;" (assignment_expression "local_bc = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);" do (compound_statement "{\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    }" { (expression_statement "uVar1 = ZEXT48(local_bc);" (assignment_expression "uVar1 = ZEXT48(local_bc)" identifier = (call_expression "ZEXT48(local_bc)" identifier (argument_list "(local_bc)" ( identifier )))) ;) (expression_statement "local_bc = (byte *)(uVar1 * uVar8);" (assignment_expression "local_bc = (byte *)(uVar1 * uVar8)" identifier = (cast_expression "(byte *)(uVar1 * uVar8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar1 * uVar8)" ( (binary_expression "uVar1 * uVar8" identifier * identifier) )))) ;) (expression_statement "local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;" (assignment_expression "local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8" identifier = (binary_expression "(int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8" (cast_expression "(int)(uVar1 * uVar8 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar1 * uVar8 >> 0x20)" ( (binary_expression "uVar1 * uVar8 >> 0x20" (binary_expression "uVar1 * uVar8" identifier * identifier) >> number_literal) ))) + (binary_expression "local_b8 * uVar8" identifier * identifier))) ;) (if_statement "if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;" if (parenthesized_expression "(param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8)" ( (binary_expression "param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8" (binary_expression "param_8 <= local_b8" identifier <= identifier) && (binary_expression "(uint)(local_bc < param_7) <= local_b8 - param_8" (call_expression "(uint)(local_bc < param_7)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_bc < param_7)" ( (binary_expression "local_bc < param_7" identifier < identifier) ))) <= (binary_expression "local_b8 - param_8" identifier - identifier))) )) (break_statement "break;" break ;)) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" identifier . field_identifier) = (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) }) while (parenthesized_expression "((int)local_a4 != 8)" ( (binary_expression "(int)local_a4 != 8" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) ;) (if_statement "if ((param_4 & 0x40) != 0) goto LAB_000155da;" if (parenthesized_expression "((param_4 & 0x40) != 0)" ( (binary_expression "(param_4 & 0x40) != 0" (parenthesized_expression "(param_4 & 0x40)" ( (binary_expression "param_4 & 0x40" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000155da;" goto statement_identifier ;)) (labeled_statement "LAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" statement_identifier : (if_statement "if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" if (parenthesized_expression "((uVar7 == 0) && ((int)local_a4 == 1))" ( (binary_expression "(uVar7 == 0) && ((int)local_a4 == 1)" (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) && (parenthesized_expression "((int)local_a4 == 1)" ( (binary_expression "(int)local_a4 == 1" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) ))) )) (compound_statement "{\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }" { (expression_statement "*local_98 = 'k';" (assignment_expression "*local_98 = 'k'" (pointer_expression "*local_98" * identifier) = (char_literal "'k'" ' character ')) ;) (expression_statement "pcVar11 = local_98 + 1;" (assignment_expression "pcVar11 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) (if_statement "if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }" if (parenthesized_expression "((param_4 & 0x100) == 0)" ( (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }" { (labeled_statement "LAB_00015a82:\n        local_98 = local_98 + 1;" statement_identifier : (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;)) (goto_statement "goto LAB_0001526d;" goto statement_identifier ;) })) }) (else_clause "else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" else (compound_statement "{\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" { (expression_statement "*local_98 = (&UNK_0001e238)[(int)local_a4];" (assignment_expression "*local_98 = (&UNK_0001e238)[(int)local_a4]" (pointer_expression "*local_98" * identifier) = (subscript_expression "(&UNK_0001e238)[(int)local_a4]" (parenthesized_expression "(&UNK_0001e238)" ( (pointer_expression "&UNK_0001e238" & identifier) )) [ (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) ])) ;) (if_statement "if ((param_4 & 0x100) == 0) goto LAB_00015a82;" if (parenthesized_expression "((param_4 & 0x100) == 0)" ( (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_00015a82;" goto statement_identifier ;)) (expression_statement "pcVar11 = local_98 + 1;" (assignment_expression "pcVar11 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) (if_statement "if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }" { (expression_statement "local_98[1] = 'i';" (assignment_expression "local_98[1] = 'i'" (subscript_expression "local_98[1]" identifier [ number_literal ]) = (char_literal "'i'" ' character ')) ;) (expression_statement "pcVar11 = local_98 + 2;" (assignment_expression "pcVar11 = local_98 + 2" identifier = (binary_expression "local_98 + 2" identifier + number_literal)) ;) })) })))) }) (else_clause "else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }" else (compound_statement "{\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }" { (labeled_statement "LAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;" statement_identifier : (if_statement "if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;" if (parenthesized_expression "((int)local_a4 == 0 && (param_4 & 0x100) == 0)" ( (binary_expression "(int)local_a4 == 0 && (param_4 & 0x100) == 0" (binary_expression "(int)local_a4 == 0" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) && (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) == number_literal)) )) (goto_statement "goto LAB_0001526d;" goto statement_identifier ;))) (if_statement "if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }" if (parenthesized_expression "((param_4 & 0x40) != 0)" ( (binary_expression "(param_4 & 0x40) != 0" (parenthesized_expression "(param_4 & 0x40)" ( (binary_expression "param_4 & 0x40" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }" { (labeled_statement "LAB_000155da:\n      local_98 = param_3 + 0x288;" statement_identifier : (expression_statement "local_98 = param_3 + 0x288;" (assignment_expression "local_98 = param_3 + 0x288" identifier = (binary_expression "param_3 + 0x288" identifier + number_literal)) ;)) (expression_statement "param_3[0x287] = ' ';" (assignment_expression "param_3[0x287] = ' '" (subscript_expression "param_3[0x287]" identifier [ number_literal ]) = (char_literal "' '" ' character ')) ;) })) (if_statement "if ((int)local_a4 != 0) goto LAB_000155fb;" if (parenthesized_expression "((int)local_a4 != 0)" ( (binary_expression "(int)local_a4 != 0" (cast_expression "(int)local_a4" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) )) (goto_statement "goto LAB_000155fb;" goto statement_identifier ;)) (expression_statement "pcVar11 = local_98;" (assignment_expression "pcVar11 = local_98" identifier = identifier) ;) (if_statement "if ((param_4 & 0x100) == 0) goto LAB_0001526d;" if (parenthesized_expression "((param_4 & 0x100) == 0)" ( (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" ( (binary_expression "param_4 & 0x100" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0001526d;" goto statement_identifier ;)) }))) (expression_statement "local_98 = pcVar11 + 1;" (assignment_expression "local_98 = pcVar11 + 1" identifier = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar11 = 'B';" (assignment_expression "*pcVar11 = 'B'" (pointer_expression "*pcVar11" * identifier) = (char_literal "'B'" ' character ')) ;) (labeled_statement "LAB_0001526d:\n  *local_98 = '\0';" statement_identifier : (expression_statement "*local_98 = '\0';" (assignment_expression "*local_98 = '\0'" (pointer_expression "*local_98" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;)) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar16;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return pcVar16;\n  }" { (return_statement "return pcVar16;" return identifier ;) })) (expression_statement "FUN_0001c140();" (call_expression "FUN_0001c140()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (call_expression IDENT (argument_list ( IDENT , IDENT ))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_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 = (field_expression IDENT -> field_identifier)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT . field_identifier) == LIT) && (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) + (binary_expression (field_expression IDENT . field_identifier) * LIT)) , IDENT , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (field_expression IDENT . field_identifier) << LIT) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < IDENT) || (binary_expression (binary_expression IDENT - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) ))) <= (binary_expression IDENT - IDENT))) )) (compound_statement { (expression_statement (assignment_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 : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) != LIT) || (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) + IDENT) )))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (field_expression IDENT . field_identifier) + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT + LIT) )))) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) < LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (string_literal " string_content ") , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) * IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (string_literal " string_content ") , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (field_expression IDENT . field_identifier) + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT + LIT) )))) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) < LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (string_literal " string_content ") , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT - LIT) ]) != (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (binary_expression IDENT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (field_expression IDENT . field_identifier) + LIT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression IDENT + LIT) )))) , (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) < LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) })) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (string_literal " string_content ") , (call_expression IDENT (argument_list ( IDENT , LIT ))) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (labeled_statement statement_identifier : (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 + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (field_expression IDENT . field_identifier) != LIT) || (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_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 : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )))) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) / (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) 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 = (binary_expression IDENT + 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 IDENT != LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) + LIT)) ;) }))) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression (unary_expression - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) )) (goto_statement goto statement_identifier ;)) (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))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (char_literal ' character '))) ;) }) (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) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (char_literal ' character ')) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (char_literal ' character '))) ;) }))))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) != LIT) || (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression 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 { (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + (char_literal ' character '))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression (binary_expression (parenthesized_expression ( IDENT )) - IDENT) < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < 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 TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT) , LIT ))) ;) (expression_statement (assignment_expression 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) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + IDENT) , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (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 + (unary_expression - IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (labeled_statement statement_identifier : (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))) <= (unary_expression - IDENT))) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) >> LIT) ))) + (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT <= IDENT) && (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) <= (binary_expression IDENT - IDENT))) )) (break_statement break ;)) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (cast_expression ( (type_descriptor TYPE) ) IDENT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) && (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == 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 ')) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (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 ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (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 TYPE (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_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)\n\n{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  bool bVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  lconv *plVar9;\n  size_t sVar10;\n  char *pcVar11;\n  size_t __n;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  longdouble lVar18;\n  longdouble lVar19;\n  longdouble lVar20;\n  longlong lVar21;\n  undefined8 uVar22;\n  longlong lVar23;\n  byte *local_bc;\n  uint local_b8;\n  undefined8 local_a4;\n  char *local_98;\n  undefined1 local_94 [8];\n  undefined2 uStack_8c;\n  char *local_7c;\n  uint local_74;\n  char *local_6c;\n  uint local_68;\n  undefined8 *local_64;\n  uint local_5c;\n  undefined8 local_54;\n  undefined1 local_49 [41];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x14e59;\n  local_a4 = CONCAT44(param_2,param_1);\n  _local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar6 = param_4 & 3;\n  uVar7 = param_4 & 0x20;\n  uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;\n  plVar9 = localeconv();\n  local_6c = plVar9->decimal_point;\n  local_74 = strlen(local_6c);\n  if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }\n  local_bc = (byte *)plVar9->grouping;\n  pcVar16 = plVar9->thousands_sep;\n  sVar10 = strlen(pcVar16);\n  pcVar11 = "";\n  if (sVar10 < 0x11) {\n    pcVar11 = pcVar16;\n  }\n  local_98 = param_3 + 0x287;\n  local_7c = local_98;\n  if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }\n  else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }\n  if ((param_4 & 4) != 0) {\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }\nLAB_00015240:\n  if ((param_4 & 0x80) == 0) goto LAB_0001526d;\n  if ((int)local_a4 == -1) {\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }\n  local_98 = pcVar11 + 1;\n  *pcVar11 = 'B';\nLAB_0001526d:\n  *local_98 = '\0';\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar16;\n  }\n                    \n  FUN_0001c140();\n}" (primitive_type "char") (pointer_declarator "* FUN_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)" (* "*") (function_declarator "FUN_00014e50(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)" (identifier "FUN_00014e50") (parameter_list "(undefined4 param_1,int param_2,char *param_3,uint param_4,uint param_5,\n                   uint param_6,uint param_7,uint param_8)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "uint param_6" (type_identifier "uint") (identifier "param_6")) (, ",") (parameter_declaration "uint param_7" (type_identifier "uint") (identifier "param_7")) (, ",") (parameter_declaration "uint param_8" (type_identifier "uint") (identifier "param_8")) () ")")))) (compound_statement "{\n  ulonglong uVar1;\n  ulonglong uVar2;\n  byte bVar3;\n  char cVar4;\n  bool bVar5;\n  uint uVar6;\n  uint uVar7;\n  uint uVar8;\n  lconv *plVar9;\n  size_t sVar10;\n  char *pcVar11;\n  size_t __n;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  uint uVar15;\n  char *pcVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  longdouble lVar18;\n  longdouble lVar19;\n  longdouble lVar20;\n  longlong lVar21;\n  undefined8 uVar22;\n  longlong lVar23;\n  byte *local_bc;\n  uint local_b8;\n  undefined8 local_a4;\n  char *local_98;\n  undefined1 local_94 [8];\n  undefined2 uStack_8c;\n  char *local_7c;\n  uint local_74;\n  char *local_6c;\n  uint local_68;\n  undefined8 *local_64;\n  uint local_5c;\n  undefined8 local_54;\n  undefined1 local_49 [41];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x14e59;\n  local_a4 = CONCAT44(param_2,param_1);\n  _local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  uVar6 = param_4 & 3;\n  uVar7 = param_4 & 0x20;\n  uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;\n  plVar9 = localeconv();\n  local_6c = plVar9->decimal_point;\n  local_74 = strlen(local_6c);\n  if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }\n  local_bc = (byte *)plVar9->grouping;\n  pcVar16 = plVar9->thousands_sep;\n  sVar10 = strlen(pcVar16);\n  pcVar11 = "";\n  if (sVar10 < 0x11) {\n    pcVar11 = pcVar16;\n  }\n  local_98 = param_3 + 0x287;\n  local_7c = local_98;\n  if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }\n  else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }\n  if ((param_4 & 4) != 0) {\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }\nLAB_00015240:\n  if ((param_4 & 0x80) == 0) goto LAB_0001526d;\n  if ((int)local_a4 == -1) {\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }\n  local_98 = pcVar11 + 1;\n  *pcVar11 = 'B';\nLAB_0001526d:\n  *local_98 = '\0';\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar16;\n  }\n                    \n  FUN_0001c140();\n}" ({ "{") (declaration "ulonglong uVar1;" (type_identifier "ulonglong") (identifier "uVar1") (; ";")) (declaration "ulonglong uVar2;" (type_identifier "ulonglong") (identifier "uVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "lconv *plVar9;" (type_identifier "lconv") (pointer_declarator "*plVar9" (* "*") (identifier "plVar9")) (; ";")) (declaration "size_t sVar10;" (primitive_type "size_t") (identifier "sVar10") (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "size_t __n;" (primitive_type "size_t") (identifier "__n") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "uint uVar15;" (type_identifier "uint") (identifier "uVar15") (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "longdouble lVar18;" (type_identifier "longdouble") (identifier "lVar18") (; ";")) (declaration "longdouble lVar19;" (type_identifier "longdouble") (identifier "lVar19") (; ";")) (declaration "longdouble lVar20;" (type_identifier "longdouble") (identifier "lVar20") (; ";")) (declaration "longlong lVar21;" (type_identifier "longlong") (identifier "lVar21") (; ";")) (declaration "undefined8 uVar22;" (type_identifier "undefined8") (identifier "uVar22") (; ";")) (declaration "longlong lVar23;" (type_identifier "longlong") (identifier "lVar23") (; ";")) (declaration "byte *local_bc;" (type_identifier "byte") (pointer_declarator "*local_bc" (* "*") (identifier "local_bc")) (; ";")) (declaration "uint local_b8;" (type_identifier "uint") (identifier "local_b8") (; ";")) (declaration "undefined8 local_a4;" (type_identifier "undefined8") (identifier "local_a4") (; ";")) (declaration "char *local_98;" (primitive_type "char") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "undefined1 local_94 [8];" (type_identifier "undefined1") (array_declarator "local_94 [8]" (identifier "local_94") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined2 uStack_8c;" (type_identifier "undefined2") (identifier "uStack_8c") (; ";")) (declaration "char *local_7c;" (primitive_type "char") (pointer_declarator "*local_7c" (* "*") (identifier "local_7c")) (; ";")) (declaration "uint local_74;" (type_identifier "uint") (identifier "local_74") (; ";")) (declaration "char *local_6c;" (primitive_type "char") (pointer_declarator "*local_6c" (* "*") (identifier "local_6c")) (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "undefined8 *local_64;" (type_identifier "undefined8") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "undefined8 local_54;" (type_identifier "undefined8") (identifier "local_54") (; ";")) (declaration "undefined1 local_49 [41];" (type_identifier "undefined1") (array_declarator "local_49 [41]" (identifier "local_49") ([ "[") (number_literal "41") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x14e59;" (assignment_expression "uStack_14 = 0x14e59" (identifier "uStack_14") (= "=") (number_literal "0x14e59")) (; ";")) (expression_statement "local_a4 = CONCAT44(param_2,param_1);" (assignment_expression "local_a4 = CONCAT44(param_2,param_1)" (identifier "local_a4") (= "=") (call_expression "CONCAT44(param_2,param_1)" (identifier "CONCAT44") (argument_list "(param_2,param_1)" (( "(") (identifier "param_2") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "_local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);" (assignment_expression "_local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5)" (identifier "_local_94") (= "=") (call_expression "CONCAT64(CONCAT24(uStack_8c,param_6),param_5)" (identifier "CONCAT64") (argument_list "(CONCAT24(uStack_8c,param_6),param_5)" (( "(") (call_expression "CONCAT24(uStack_8c,param_6)" (identifier "CONCAT24") (argument_list "(uStack_8c,param_6)" (( "(") (identifier "uStack_8c") (, ",") (identifier "param_6") () ")"))) (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar6 = param_4 & 3;" (assignment_expression "uVar6 = param_4 & 3" (identifier "uVar6") (= "=") (binary_expression "param_4 & 3" (identifier "param_4") (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar7 = param_4 & 0x20;" (assignment_expression "uVar7 = param_4 & 0x20" (identifier "uVar7") (= "=") (binary_expression "param_4 & 0x20" (identifier "param_4") (& "&") (number_literal "0x20"))) (; ";")) (expression_statement "uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;" (assignment_expression "uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400" (identifier "uVar8") (= "=") (binary_expression "(-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400" (parenthesized_expression "(-(uint)(uVar7 == 0) & 0xffffffe8)" (( "(") (binary_expression "-(uint)(uVar7 == 0) & 0xffffffe8" (unary_expression "-(uint)(uVar7 == 0)" (- "-") (call_expression "(uint)(uVar7 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0xffffffe8")) () ")")) (+ "+") (number_literal "0x400"))) (; ";")) (expression_statement "plVar9 = localeconv();" (assignment_expression "plVar9 = localeconv()" (identifier "plVar9") (= "=") (call_expression "localeconv()" (identifier "localeconv") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "local_6c = plVar9->decimal_point;" (assignment_expression "local_6c = plVar9->decimal_point" (identifier "local_6c") (= "=") (field_expression "plVar9->decimal_point" (identifier "plVar9") (-> "->") (field_identifier "decimal_point"))) (; ";")) (expression_statement "local_74 = strlen(local_6c);" (assignment_expression "local_74 = strlen(local_6c)" (identifier "local_74") (= "=") (call_expression "strlen(local_6c)" (identifier "strlen") (argument_list "(local_6c)" (( "(") (identifier "local_6c") () ")")))) (; ";")) (if_statement "if (0xf < local_74 - 1) {\n    local_74 = 1;\n    local_6c = ".";\n  }" (if "if") (parenthesized_expression "(0xf < local_74 - 1)" (( "(") (binary_expression "0xf < local_74 - 1" (number_literal "0xf") (< "<") (binary_expression "local_74 - 1" (identifier "local_74") (- "-") (number_literal "1"))) () ")")) (compound_statement "{\n    local_74 = 1;\n    local_6c = ".";\n  }" ({ "{") (expression_statement "local_74 = 1;" (assignment_expression "local_74 = 1" (identifier "local_74") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_6c = ".";" (assignment_expression "local_6c = "."" (identifier "local_6c") (= "=") (string_literal ""."" (" """) (string_content ".") (" """))) (; ";")) (} "}"))) (expression_statement "local_bc = (byte *)plVar9->grouping;" (assignment_expression "local_bc = (byte *)plVar9->grouping" (identifier "local_bc") (= "=") (cast_expression "(byte *)plVar9->grouping" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (field_expression "plVar9->grouping" (identifier "plVar9") (-> "->") (field_identifier "grouping")))) (; ";")) (expression_statement "pcVar16 = plVar9->thousands_sep;" (assignment_expression "pcVar16 = plVar9->thousands_sep" (identifier "pcVar16") (= "=") (field_expression "plVar9->thousands_sep" (identifier "plVar9") (-> "->") (field_identifier "thousands_sep"))) (; ";")) (expression_statement "sVar10 = strlen(pcVar16);" (assignment_expression "sVar10 = strlen(pcVar16)" (identifier "sVar10") (= "=") (call_expression "strlen(pcVar16)" (identifier "strlen") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ (identifier "pcVar11") (= "=") (string_literal """" (" """) (" """))) (; ";")) (if_statement "if (sVar10 < 0x11) {\n    pcVar11 = pcVar16;\n  }" (if "if") (parenthesized_expression "(sVar10 < 0x11)" (( "(") (binary_expression "sVar10 < 0x11" (identifier "sVar10") (< "<") (number_literal "0x11")) () ")")) (compound_statement "{\n    pcVar11 = pcVar16;\n  }" ({ "{") (expression_statement "pcVar11 = pcVar16;" (assignment_expression "pcVar11 = pcVar16" (identifier "pcVar11") (= "=") (identifier "pcVar16")) (; ";")) (} "}"))) (expression_statement "local_98 = param_3 + 0x287;" (assignment_expression "local_98 = param_3 + 0x287" (identifier "local_98") (= "=") (binary_expression "param_3 + 0x287" (identifier "param_3") (+ "+") (number_literal "0x287"))) (; ";")) (expression_statement "local_7c = local_98;" (assignment_expression "local_7c = local_98" (identifier "local_7c") (= "=") (identifier "local_98")) (; ";")) (if_statement "if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }\n  else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }" (if "if") (parenthesized_expression "(param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7))" (( "(") (binary_expression "param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)" (binary_expression "param_6 < param_8" (identifier "param_6") (< "<") (identifier "param_8")) (|| "||") (binary_expression "param_6 - param_8 < (uint)(param_5 < param_7)" (binary_expression "param_6 - param_8" (identifier "param_6") (- "-") (identifier "param_8")) (< "<") (call_expression "(uint)(param_5 < param_7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_5 < param_7)" (( "(") (binary_expression "param_5 < param_7" (identifier "param_5") (< "<") (identifier "param_7")) () ")"))))) () ")")) (compound_statement "{\n    if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }\nLAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;\n    if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }\n    local_94._4_4_ = param_8;\n    local_94._0_4_ = param_7;\n    if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }\nLAB_00015214:\n    pcVar16 = local_98 + -__n;\n    memmove(pcVar16,param_3,__n);\n    local_7c = pcVar16 + sVar10;\n  }" ({ "{") (if_statement "if (param_6 != 0 || param_5 != 0) {\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }" (if "if") (parenthesized_expression "(param_6 != 0 || param_5 != 0)" (( "(") (binary_expression "param_6 != 0 || param_5 != 0" (binary_expression "param_6 != 0" (identifier "param_6") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);\n      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);\n      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }\n    }" ({ "{") (expression_statement "uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);" (assignment_expression "uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54)" (identifier "uVar22") (= "=") (call_expression "FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54)" (identifier "FUN_0001bee0") (argument_list "(param_7,param_8,param_5,param_6,&local_54)" (( "(") (identifier "param_7") (, ",") (identifier "param_8") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (pointer_expression "&local_54" (& "&") (identifier "local_54")) () ")")))) (; ";")) (expression_statement "uVar15 = (uint)((ulonglong)uVar22 >> 0x20);" (assignment_expression "uVar15 = (uint)((ulonglong)uVar22 >> 0x20)" (identifier "uVar15") (= "=") (call_expression "(uint)((ulonglong)uVar22 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar22 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar22 >> 0x20" (cast_expression "(ulonglong)uVar22" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar22")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (if_statement "if (local_54._4_4_ == 0 && (uint)local_54 == 0) {\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }" (if "if") (parenthesized_expression "(local_54._4_4_ == 0 && (uint)local_54 == 0)" (( "(") (binary_expression "local_54._4_4_ == 0 && (uint)local_54 == 0" (binary_expression "local_54._4_4_ == 0" (field_expression "local_54._4_4_" (identifier "local_54") (. ".") (field_identifier "_4_4_")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)local_54 == 0" (cast_expression "(uint)local_54" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_54")) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);\n        lVar21 = (local_54 & 0xffffffff) * 10;\n        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);\n        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;\n        uVar12 = (uint)local_54 * 2;\n        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }\n        if ((param_4 & 0x10) != 0) goto LAB_000153b5;\nLAB_0001578e:\n        local_a4._0_4_ = -1;\nLAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;\n        uVar6 = (uint)lVar23 & 1;\n        pcVar16 = local_98;\n        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;\n        goto LAB_000157f4;\n      }" ({ "{") (expression_statement "lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);" (assignment_expression "lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54)" (identifier "lVar23") (= "=") (call_expression "FUN_0001bee0(param_1,param_2,uVar22,&local_54)" (identifier "FUN_0001bee0") (argument_list "(param_1,param_2,uVar22,&local_54)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "uVar22") (, ",") (pointer_expression "&local_54" (& "&") (identifier "local_54")) () ")")))) (; ";")) (expression_statement "lVar21 = (local_54 & 0xffffffff) * 10;" (assignment_expression "lVar21 = (local_54 & 0xffffffff) * 10" (identifier "lVar21") (= "=") (binary_expression "(local_54 & 0xffffffff) * 10" (parenthesized_expression "(local_54 & 0xffffffff)" (( "(") (binary_expression "local_54 & 0xffffffff" (identifier "local_54") (& "&") (number_literal "0xffffffff")) () ")")) (* "*") (number_literal "10"))) (; ";")) (expression_statement "local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54);" (assignment_expression "local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54)" (identifier "local_68") (= "=") (call_expression "FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54)" (identifier "FUN_0001bee0") (argument_list "((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,\n                                uVar22,&local_54)" (( "(") (cast_expression "(int)lVar21" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar21")) (, ",") (binary_expression "(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10" (cast_expression "(int)((ulonglong)lVar21 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar21 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar21 >> 0x20" (cast_expression "(ulonglong)lVar21" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar21")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (binary_expression "local_54._4_4_ * 10" (field_expression "local_54._4_4_" (identifier "local_54") (. ".") (field_identifier "_4_4_")) (* "*") (number_literal "10"))) (, ",") (identifier "uVar22") (, ",") (pointer_expression "&local_54" (& "&") (identifier "local_54")) () ")")))) (; ";")) (expression_statement "uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;" (assignment_expression "uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f" (identifier "uVar14") (= "=") (binary_expression "local_54._4_4_ << 1 | (uint)local_54 >> 0x1f" (binary_expression "local_54._4_4_ << 1" (field_expression "local_54._4_4_" (identifier "local_54") (. ".") (field_identifier "_4_4_")) (<< "<<") (number_literal "1")) (| "|") (binary_expression "(uint)local_54 >> 0x1f" (cast_expression "(uint)local_54" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_54")) (>> ">>") (number_literal "0x1f")))) (; ";")) (expression_statement "uVar12 = (uint)local_54 * 2;" (assignment_expression "uVar12 = (uint)local_54 * 2" (identifier "uVar12") (= "=") (binary_expression "(uint)local_54 * 2" (cast_expression "(uint)local_54" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_54")) (* "*") (number_literal "2"))) (; ";")) (if_statement "if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }\n        else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }" (if "if") (parenthesized_expression "(uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22))" (( "(") (binary_expression "uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)" (binary_expression "uVar14 < uVar15" (identifier "uVar14") (< "<") (identifier "uVar15")) (|| "||") (binary_expression "uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)" (binary_expression "uVar14 - uVar15" (identifier "uVar14") (- "-") (identifier "uVar15")) (< "<") (call_expression "(uint)(uVar12 < (uint)uVar22)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar12 < (uint)uVar22)" (( "(") (binary_expression "uVar12 < (uint)uVar22" (identifier "uVar12") (< "<") (cast_expression "(uint)uVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar22"))) () ")"))))) () ")")) (compound_statement "{\n          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);\n        }" ({ "{") (expression_statement "uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);" (assignment_expression "uVar17 = (uint)(uVar12 != 0 || uVar14 != 0)" (identifier "uVar17") (= "=") (call_expression "(uint)(uVar12 != 0 || uVar14 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar12 != 0 || uVar14 != 0)" (( "(") (binary_expression "uVar12 != 0 || uVar14 != 0" (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }" (else "else") (compound_statement "{\n          uVar17 = 3;\n          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }\n        }" ({ "{") (expression_statement "uVar17 = 3;" (assignment_expression "uVar17 = 3" (identifier "uVar17") (= "=") (number_literal "3")) (; ";")) (if_statement "if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {\n            uVar17 = 2;\n          }" (if "if") (parenthesized_expression "(uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14)" (( "(") (binary_expression "uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14" (binary_expression "uVar14 <= uVar15" (identifier "uVar14") (<= "<=") (identifier "uVar15")) (&& "&&") (binary_expression "(uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14" (call_expression "(uint)((uint)uVar22 < uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)uVar22 < uVar12)" (( "(") (binary_expression "(uint)uVar22 < uVar12" (cast_expression "(uint)uVar22" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar22")) (< "<") (identifier "uVar12")) () ")"))) (<= "<=") (binary_expression "uVar15 - uVar14" (identifier "uVar15") (- "-") (identifier "uVar14")))) () ")")) (compound_statement "{\n            uVar17 = 2;\n          }" ({ "{") (expression_statement "uVar17 = 2;" (assignment_expression "uVar17 = 2" (identifier "uVar17") (= "=") (number_literal "2")) (; ";")) (} "}"))) (} "}")))) (if_statement "if ((param_4 & 0x10) != 0) goto LAB_000153b5;" (if "if") (parenthesized_expression "((param_4 & 0x10) != 0)" (( "(") (binary_expression "(param_4 & 0x10) != 0" (parenthesized_expression "(param_4 & 0x10)" (( "(") (binary_expression "param_4 & 0x10" (identifier "param_4") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000153b5;" (goto "goto") (statement_identifier "LAB_000153b5") (; ";"))) (labeled_statement "LAB_0001578e:\n        local_a4._0_4_ = -1;" (statement_identifier "LAB_0001578e") (: ":") (expression_statement "local_a4._0_4_ = -1;" (assignment_expression "local_a4._0_4_ = -1" (field_expression "local_a4._0_4_" (identifier "local_a4") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "-1")) (; ";"))) (labeled_statement "LAB_00015796:\n        if (uVar6 != 1) goto LAB_000157a9;" (statement_identifier "LAB_00015796") (: ":") (if_statement "if (uVar6 != 1) goto LAB_000157a9;" (if "if") (parenthesized_expression "(uVar6 != 1)" (( "(") (binary_expression "uVar6 != 1" (identifier "uVar6") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_000157a9;" (goto "goto") (statement_identifier "LAB_000157a9") (; ";")))) (expression_statement "uVar6 = (uint)lVar23 & 1;" (assignment_expression "uVar6 = (uint)lVar23 & 1" (identifier "uVar6") (= "=") (binary_expression "(uint)lVar23 & 1" (cast_expression "(uint)lVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar23")) (& "&") (number_literal "1"))) (; ";")) (expression_statement "pcVar16 = local_98;" (assignment_expression "pcVar16 = local_98" (identifier "pcVar16") (= "=") (identifier "local_98")) (; ";")) (if_statement "if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;" (if "if") (parenthesized_expression "(5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68))" (( "(") (binary_expression "5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)" (number_literal "5") (< "<") (cast_expression "(int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)" (( "(") (binary_expression "(uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68" (parenthesized_expression "(uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17))" (( "(") (binary_expression "uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)" (binary_expression "uVar6 + uVar17 != 0" (binary_expression "uVar6 + uVar17" (identifier "uVar6") (+ "+") (identifier "uVar17")) (!= "!=") (number_literal "0")) (|| "||") (call_expression "CARRY4(uVar6,uVar17)" (identifier "CARRY4") (argument_list "(uVar6,uVar17)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar17") () ")")))) () ")")) (+ "+") (identifier "local_68")) () ")")))) () ")")) (goto_statement "goto LAB_000157bb;" (goto "goto") (statement_identifier "LAB_000157bb") (; ";"))) (goto_statement "goto LAB_000157f4;" (goto "goto") (statement_identifier "LAB_000157f4") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00014fe8:\n    lVar18 = (longdouble)(longlong)local_94;" (statement_identifier "LAB_00014fe8") (: ":") (expression_statement "lVar18 = (longdouble)(longlong)local_94;" (assignment_expression "lVar18 = (longdouble)(longlong)local_94" (identifier "lVar18") (= "=") (cast_expression "(longdouble)(longlong)local_94" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (cast_expression "(longlong)local_94" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "local_94")))) (; ";"))) (if_statement "if ((int)param_6 < 0) {\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }" (if "if") (parenthesized_expression "((int)param_6 < 0)" (( "(") (binary_expression "(int)param_6 < 0" (cast_expression "(int)param_6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_6")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      lVar18 = lVar18 + (longdouble)DAT_0001e244;\n    }" ({ "{") (expression_statement "lVar18 = lVar18 + (longdouble)DAT_0001e244;" (assignment_expression "lVar18 = lVar18 + (longdouble)DAT_0001e244" (identifier "lVar18") (= "=") (binary_expression "lVar18 + (longdouble)DAT_0001e244" (identifier "lVar18") (+ "+") (cast_expression "(longdouble)DAT_0001e244" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e244")))) (; ";")) (} "}"))) (expression_statement "local_94._4_4_ = param_8;" (assignment_expression "local_94._4_4_ = param_8" (field_expression "local_94._4_4_" (identifier "local_94") (. ".") (field_identifier "_4_4_")) (= "=") (identifier "param_8")) (; ";")) (expression_statement "local_94._0_4_ = param_7;" (assignment_expression "local_94._0_4_ = param_7" (field_expression "local_94._0_4_" (identifier "local_94") (. ".") (field_identifier "_0_4_")) (= "=") (identifier "param_7")) (; ";")) (if_statement "if ((int)param_8 < 0) {\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }\n    else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }" (if "if") (parenthesized_expression "((int)param_8 < 0)" (( "(") (binary_expression "(int)param_8 < 0" (cast_expression "(int)param_8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_8")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);\n      if (param_2 < 0) goto LAB_00015298;\nLAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;\n      if ((param_4 & 0x10) != 0) goto LAB_00015036;\nLAB_000151c8:\n      lVar20 = lVar18;\n      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));\n      __n = strlen(param_3);\n      local_a4._0_4_ = -1;\n      sVar10 = __n;\n    }" ({ "{") (expression_statement "lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);" (assignment_expression "lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244)" (identifier "lVar18") (= "=") (binary_expression "lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244)" (identifier "lVar18") (/ "/") (parenthesized_expression "((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244)" (( "(") (binary_expression "(longdouble)(longlong)local_94 + (longdouble)DAT_0001e244" (cast_expression "(longdouble)(longlong)local_94" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (cast_expression "(longlong)local_94" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "local_94"))) (+ "+") (cast_expression "(longdouble)DAT_0001e244" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e244"))) () ")")))) (; ";")) (if_statement "if (param_2 < 0) goto LAB_00015298;" (if "if") (parenthesized_expression "(param_2 < 0)" (( "(") (binary_expression "param_2 < 0" (identifier "param_2") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015298;" (goto "goto") (statement_identifier "LAB_00015298") (; ";"))) (labeled_statement "LAB_00015026:\n      lVar18 = (longdouble)local_a4 * lVar18;" (statement_identifier "LAB_00015026") (: ":") (expression_statement "lVar18 = (longdouble)local_a4 * lVar18;" (assignment_expression "lVar18 = (longdouble)local_a4 * lVar18" (identifier "lVar18") (= "=") (binary_expression "(longdouble)local_a4 * lVar18" (cast_expression "(longdouble)local_a4" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "local_a4")) (* "*") (identifier "lVar18"))) (; ";"))) (if_statement "if ((param_4 & 0x10) != 0) goto LAB_00015036;" (if "if") (parenthesized_expression "((param_4 & 0x10) != 0)" (( "(") (binary_expression "(param_4 & 0x10) != 0" (parenthesized_expression "(param_4 & 0x10)" (( "(") (binary_expression "param_4 & 0x10" (identifier "param_4") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015036;" (goto "goto") (statement_identifier "LAB_00015036") (; ";"))) (labeled_statement "LAB_000151c8:\n      lVar20 = lVar18;" (statement_identifier "LAB_000151c8") (: ":") (expression_statement "lVar20 = lVar18;" (assignment_expression "lVar20 = lVar18" (identifier "lVar20") (= "=") (identifier "lVar18")) (; ";"))) (if_statement "if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }" (if "if") (parenthesized_expression "((uVar6 != 1) && (lVar18 < _DAT_0001e250))" (( "(") (binary_expression "(uVar6 != 1) && (lVar18 < _DAT_0001e250)" (parenthesized_expression "(uVar6 != 1)" (( "(") (binary_expression "uVar6 != 1" (identifier "uVar6") (!= "!=") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(lVar18 < _DAT_0001e250)" (( "(") (binary_expression "lVar18 < _DAT_0001e250" (identifier "lVar18") (< "<") (identifier "_DAT_0001e250")) () ")"))) () ")")) (compound_statement "{\n        if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }\n        lVar20 = (longdouble)(longlong)uVar1;\n        if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n        if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }\n      }" ({ "{") (if_statement "if ((longdouble)DAT_0001e248 <= lVar18) {\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }\n        else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }" (if "if") (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar18)" (( "(") (binary_expression "(longdouble)DAT_0001e248 <= lVar18" (cast_expression "(longdouble)DAT_0001e248" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e248")) (<= "<=") (identifier "lVar18")) () ")")) (compound_statement "{\n          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n          local_54._4_4_ = (int)(uVar2 >> 0x20);\n          local_54._0_4_ = (uint)uVar2;\n          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n          local_54 = uVar2;\n        }" ({ "{") (expression_statement "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" (identifier "uVar2") (= "=") (cast_expression "(ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "ROUND(lVar18 - (longdouble)DAT_0001e248)" (identifier "ROUND") (argument_list "(lVar18 - (longdouble)DAT_0001e248)" (( "(") (binary_expression "lVar18 - (longdouble)DAT_0001e248" (identifier "lVar18") (- "-") (cast_expression "(longdouble)DAT_0001e248" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e248"))) () ")"))))) (; ";")) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" (identifier "local_54") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(int)(uVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" (identifier "local_54") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2"))) (; ";")) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" (identifier "uVar1") (= "=") (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" (identifier "CONCAT44") (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" (( "(") (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" (identifier "local_54") (. ".") (field_identifier "_4_4_")) (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(uint)local_54" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_54")) () ")")))) (; ";")) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" (identifier "local_54") (= "=") (identifier "uVar2")) (; ";")) (} "}")) (else_clause "else {\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }" (else "else") (compound_statement "{\n          uVar1 = (ulonglong)ROUND(lVar18);\n          local_54 = uVar1;\n        }" ({ "{") (expression_statement "uVar1 = (ulonglong)ROUND(lVar18);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar18)" (identifier "uVar1") (= "=") (cast_expression "(ulonglong)ROUND(lVar18)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "ROUND(lVar18)" (identifier "ROUND") (argument_list "(lVar18)" (( "(") (identifier "lVar18") () ")"))))) (; ";")) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" (identifier "local_54") (= "=") (identifier "uVar1")) (; ";")) (} "}")))) (expression_statement "lVar20 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar20 = (longdouble)(longlong)uVar1" (identifier "lVar20") (= "=") (cast_expression "(longdouble)(longlong)uVar1" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (cast_expression "(longlong)uVar1" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "uVar1")))) (; ";")) (if_statement "if ((longlong)uVar1 < 0) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" (if "if") (parenthesized_expression "((longlong)uVar1 < 0)" (( "(") (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "uVar1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" ({ "{") (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" (identifier "lVar20") (= "=") (binary_expression "lVar20 + (longdouble)DAT_0001e244" (identifier "lVar20") (+ "+") (cast_expression "(longdouble)DAT_0001e244" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e244")))) (; ";")) (} "}"))) (if_statement "if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" (if "if") (parenthesized_expression "(((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" (( "(") (binary_expression "((uVar6 == 0) && (lVar18 != lVar20)) &&\n           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar6 == 0) && (lVar18 != lVar20))" (( "(") (binary_expression "(uVar6 == 0) && (lVar18 != lVar20)" (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar18 != lVar20)" (( "(") (binary_expression "lVar18 != lVar20" (identifier "lVar18") (!= "!=") (identifier "lVar20")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (( "(") (comma_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1)" (identifier "lVar20") (= "=") (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(longlong)" (( "(") (identifier "longlong") () ")"))) (argument_list "(uVar1 + 1)" (( "(") (binary_expression "uVar1 + 1" (identifier "uVar1") (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" (( "(") (identifier "longlong") () ")")) (argument_list "(uVar1 + 1)" (( "(") (binary_expression "uVar1 + 1" (identifier "uVar1") (+ "+") (number_literal "1")) () ")"))) (< "<") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          lVar20 = lVar20 + (longdouble)DAT_0001e244;\n        }" ({ "{") (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" (identifier "lVar20") (= "=") (binary_expression "lVar20 + (longdouble)DAT_0001e244" (identifier "lVar20") (+ "+") (cast_expression "(longdouble)DAT_0001e244" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e244")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40))" (identifier "__sprintf_chk") (argument_list "(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),\n                    (short)((unkuint10)lVar20 >> 0x40))" (( "(") (identifier "param_3") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (string_literal ""%.0Lf"" (" """) (string_content "%.0Lf") (" """)) (, ",") (call_expression "SUB104(lVar20,0)" (identifier "SUB104") (argument_list "(lVar20,0)" (( "(") (identifier "lVar20") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((unkuint10)lVar20 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((unkuint10)lVar20 >> 0x20)" (( "(") (binary_expression "(unkuint10)lVar20 >> 0x20" (cast_expression "(unkuint10)lVar20" (( "(") (type_descriptor "unkuint10" (type_identifier "unkuint10")) () ")") (identifier "lVar20")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(short)((unkuint10)lVar20 >> 0x40)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((unkuint10)lVar20 >> 0x40)" (( "(") (binary_expression "(unkuint10)lVar20 >> 0x40" (cast_expression "(unkuint10)lVar20" (( "(") (type_descriptor "unkuint10" (type_identifier "unkuint10")) () ")") (identifier "lVar20")) (>> ">>") (number_literal "0x40")) () ")"))) () ")"))) (; ";")) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" (identifier "__n") (= "=") (call_expression "strlen(param_3)" (identifier "strlen") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "local_a4._0_4_ = -1;" (assignment_expression "local_a4._0_4_ = -1" (field_expression "local_a4._0_4_" (identifier "local_a4") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "sVar10 = __n;" (assignment_expression "sVar10 = __n" (identifier "sVar10") (= "=") (identifier "__n")) (; ";")) (} "}")) (else_clause "else {\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }" (else "else") (compound_statement "{\n      lVar18 = lVar18 / (longdouble)(longlong)local_94;\n      if (-1 < param_2) goto LAB_00015026;\nLAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;\n      if ((param_4 & 0x10) == 0) goto LAB_000151c8;\nLAB_00015036:\n      local_a4._0_4_ = 0;\n      lVar20 = (longdouble)(int)uVar8;\n      do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);\n      lVar18 = lVar18 / lVar19;\n      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);\n      if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }\nLAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;\n      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));\n      __n = strlen(param_3);\n      sVar10 = __n;\n    }" ({ "{") (expression_statement "lVar18 = lVar18 / (longdouble)(longlong)local_94;" (assignment_expression "lVar18 = lVar18 / (longdouble)(longlong)local_94" (identifier "lVar18") (= "=") (binary_expression "lVar18 / (longdouble)(longlong)local_94" (identifier "lVar18") (/ "/") (cast_expression "(longdouble)(longlong)local_94" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (cast_expression "(longlong)local_94" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "local_94"))))) (; ";")) (if_statement "if (-1 < param_2) goto LAB_00015026;" (if "if") (parenthesized_expression "(-1 < param_2)" (( "(") (binary_expression "-1 < param_2" (number_literal "-1") (< "<") (identifier "param_2")) () ")")) (goto_statement "goto LAB_00015026;" (goto "goto") (statement_identifier "LAB_00015026") (; ";"))) (labeled_statement "LAB_00015298:\n      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;" (statement_identifier "LAB_00015298") (: ":") (expression_statement "lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;" (assignment_expression "lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18" (identifier "lVar18") (= "=") (binary_expression "((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18" (parenthesized_expression "((longdouble)local_a4 + (longdouble)DAT_0001e244)" (( "(") (binary_expression "(longdouble)local_a4 + (longdouble)DAT_0001e244" (cast_expression "(longdouble)local_a4" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "local_a4")) (+ "+") (cast_expression "(longdouble)DAT_0001e244" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e244"))) () ")")) (* "*") (identifier "lVar18"))) (; ";"))) (if_statement "if ((param_4 & 0x10) == 0) goto LAB_000151c8;" (if "if") (parenthesized_expression "((param_4 & 0x10) == 0)" (( "(") (binary_expression "(param_4 & 0x10) == 0" (parenthesized_expression "(param_4 & 0x10)" (( "(") (binary_expression "param_4 & 0x10" (identifier "param_4") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000151c8;" (goto "goto") (statement_identifier "LAB_000151c8") (; ";"))) (labeled_statement "LAB_00015036:\n      local_a4._0_4_ = 0;" (statement_identifier "LAB_00015036") (: ":") (expression_statement "local_a4._0_4_ = 0;" (assignment_expression "local_a4._0_4_ = 0" (field_expression "local_a4._0_4_" (identifier "local_a4") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "lVar20 = (longdouble)(int)uVar8;" (assignment_expression "lVar20 = (longdouble)(int)uVar8" (identifier "lVar20") (= "=") (cast_expression "(longdouble)(int)uVar8" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")))) (; ";")) (do_statement "do {\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      } while ((int)local_a4 != 8);" (do "do") (compound_statement "{\n        lVar19 = lVar20;\n        local_a4._0_4_ = (int)local_a4 + 1;\n        lVar20 = lVar19 * (longdouble)(int)uVar8;\n        if (lVar18 < lVar20) break;\n      }" ({ "{") (expression_statement "lVar19 = lVar20;" (assignment_expression "lVar19 = lVar20" (identifier "lVar19") (= "=") (identifier "lVar20")) (; ";")) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" (identifier "local_a4") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar20 = lVar19 * (longdouble)(int)uVar8;" (assignment_expression "lVar20 = lVar19 * (longdouble)(int)uVar8" (identifier "lVar20") (= "=") (binary_expression "lVar19 * (longdouble)(int)uVar8" (identifier "lVar19") (* "*") (cast_expression "(longdouble)(int)uVar8" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))))) (; ";")) (if_statement "if (lVar18 < lVar20) break;" (if "if") (parenthesized_expression "(lVar18 < lVar20)" (( "(") (binary_expression "lVar18 < lVar20" (identifier "lVar18") (< "<") (identifier "lVar20")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "((int)local_a4 != 8)" (( "(") (binary_expression "(int)local_a4 != 8" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (!= "!=") (number_literal "8")) () ")")) (; ";")) (expression_statement "lVar18 = lVar18 / lVar19;" (assignment_expression "lVar18 = lVar18 / lVar19" (identifier "lVar18") (= "=") (binary_expression "lVar18 / lVar19" (identifier "lVar18") (/ "/") (identifier "lVar19"))) (; ";")) (expression_statement "uVar15 = local_74 + 2 + (uint)(uVar7 == 0);" (assignment_expression "uVar15 = local_74 + 2 + (uint)(uVar7 == 0)" (identifier "uVar15") (= "=") (binary_expression "local_74 + 2 + (uint)(uVar7 == 0)" (binary_expression "local_74 + 2" (identifier "local_74") (+ "+") (number_literal "2")) (+ "+") (call_expression "(uint)(uVar7 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")"))))) (; ";")) (if_statement "if (uVar6 == 1) {\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }\n      else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(uVar6 == 1)" (( "(") (binary_expression "uVar6 == 1" (identifier "uVar6") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));\n        __n = strlen(param_3);\n        if (__n <= uVar15) goto LAB_00015830;\n        lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n      }" ({ "{") (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40))" (identifier "__sprintf_chk") (argument_list "(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)\n                      ,(short)((unkuint10)lVar18 >> 0x40))" (( "(") (identifier "param_3") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (string_literal ""%.1Lf"" (" """) (string_content "%.1Lf") (" """)) (, ",") (call_expression "SUB104(lVar18,0)" (identifier "SUB104") (argument_list "(lVar18,0)" (( "(") (identifier "lVar18") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((unkuint10)lVar18 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((unkuint10)lVar18 >> 0x20)" (( "(") (binary_expression "(unkuint10)lVar18 >> 0x20" (cast_expression "(unkuint10)lVar18" (( "(") (type_descriptor "unkuint10" (type_identifier "unkuint10")) () ")") (identifier "lVar18")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(short)((unkuint10)lVar18 >> 0x40)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((unkuint10)lVar18 >> 0x40)" (( "(") (binary_expression "(unkuint10)lVar18 >> 0x40" (cast_expression "(unkuint10)lVar18" (( "(") (type_descriptor "unkuint10" (type_identifier "unkuint10")) () ")") (identifier "lVar18")) (>> ">>") (number_literal "0x40")) () ")"))) () ")"))) (; ";")) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" (identifier "__n") (= "=") (call_expression "strlen(param_3)" (identifier "strlen") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (__n <= uVar15) goto LAB_00015830;" (if "if") (parenthesized_expression "(__n <= uVar15)" (( "(") (binary_expression "__n <= uVar15" (identifier "__n") (<= "<=") (identifier "uVar15")) () ")")) (goto_statement "goto LAB_00015830;" (goto "goto") (statement_identifier "LAB_00015830") (; ";"))) (expression_statement "lVar18 = lVar18 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar18 = lVar18 * (longdouble)DAT_0001e24c" (identifier "lVar18") (= "=") (binary_expression "lVar18 * (longdouble)DAT_0001e24c" (identifier "lVar18") (* "*") (cast_expression "(longdouble)DAT_0001e24c" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e24c")))) (; ";")) (} "}")) (else_clause "else {\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" (else "else") (compound_statement "{\n        lVar20 = lVar18;\n        if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }\n        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));\n        __n = strlen(param_3);\n        if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }\n        lVar18 = lVar20;\n        if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }\n      }" ({ "{") (expression_statement "lVar20 = lVar18;" (assignment_expression "lVar20 = lVar18" (identifier "lVar20") (= "=") (identifier "lVar18")) (; ";")) (if_statement "if (lVar18 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }" (if "if") (parenthesized_expression "(lVar18 < _DAT_0001e250)" (( "(") (binary_expression "lVar18 < _DAT_0001e250" (identifier "lVar18") (< "<") (identifier "_DAT_0001e250")) () ")")) (compound_statement "{\n          if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }\n          lVar20 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }\n        }" ({ "{") (if_statement "if ((longdouble)DAT_0001e248 <= lVar18) {\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }" (if "if") (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar18)" (( "(") (binary_expression "(longdouble)DAT_0001e248 <= lVar18" (cast_expression "(longdouble)DAT_0001e248" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e248")) (<= "<=") (identifier "lVar18")) () ")")) (compound_statement "{\n            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }" ({ "{") (expression_statement "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" (identifier "uVar2") (= "=") (cast_expression "(ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "ROUND(lVar18 - (longdouble)DAT_0001e248)" (identifier "ROUND") (argument_list "(lVar18 - (longdouble)DAT_0001e248)" (( "(") (binary_expression "lVar18 - (longdouble)DAT_0001e248" (identifier "lVar18") (- "-") (cast_expression "(longdouble)DAT_0001e248" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e248"))) () ")"))))) (; ";")) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" (identifier "local_54") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(int)(uVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" (identifier "local_54") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2"))) (; ";")) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" (identifier "uVar1") (= "=") (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" (identifier "CONCAT44") (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" (( "(") (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" (identifier "local_54") (. ".") (field_identifier "_4_4_")) (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(uint)local_54" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_54")) () ")")))) (; ";")) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" (identifier "local_54") (= "=") (identifier "uVar2")) (; ";")) (} "}")) (else_clause "else {\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }" (else "else") (compound_statement "{\n            uVar1 = (ulonglong)ROUND(lVar18);\n            local_54 = uVar1;\n          }" ({ "{") (expression_statement "uVar1 = (ulonglong)ROUND(lVar18);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar18)" (identifier "uVar1") (= "=") (cast_expression "(ulonglong)ROUND(lVar18)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "ROUND(lVar18)" (identifier "ROUND") (argument_list "(lVar18)" (( "(") (identifier "lVar18") () ")"))))) (; ";")) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" (identifier "local_54") (= "=") (identifier "uVar1")) (; ";")) (} "}")))) (expression_statement "lVar20 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar20 = (longdouble)(longlong)uVar1" (identifier "lVar20") (= "=") (cast_expression "(longdouble)(longlong)uVar1" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (cast_expression "(longlong)uVar1" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "uVar1")))) (; ";")) (if_statement "if ((longlong)uVar1 < 0) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" (if "if") (parenthesized_expression "((longlong)uVar1 < 0)" (( "(") (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "uVar1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" ({ "{") (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" (identifier "lVar20") (= "=") (binary_expression "lVar20 + (longdouble)DAT_0001e244" (identifier "lVar20") (+ "+") (cast_expression "(longdouble)DAT_0001e244" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e244")))) (; ";")) (} "}"))) (if_statement "if (((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" (if "if") (parenthesized_expression "(((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" (( "(") (binary_expression "((uVar6 == 0) && (lVar18 != lVar20)) &&\n             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar6 == 0) && (lVar18 != lVar20))" (( "(") (binary_expression "(uVar6 == 0) && (lVar18 != lVar20)" (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar18 != lVar20)" (( "(") (binary_expression "lVar18 != lVar20" (identifier "lVar18") (!= "!=") (identifier "lVar20")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (( "(") (comma_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar20 = (longdouble)(longlong)(uVar1 + 1)" (identifier "lVar20") (= "=") (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(longlong)" (( "(") (identifier "longlong") () ")"))) (argument_list "(uVar1 + 1)" (( "(") (binary_expression "uVar1 + 1" (identifier "uVar1") (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" (( "(") (identifier "longlong") () ")")) (argument_list "(uVar1 + 1)" (( "(") (binary_expression "uVar1 + 1" (identifier "uVar1") (+ "+") (number_literal "1")) () ")"))) (< "<") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            lVar20 = lVar20 + (longdouble)DAT_0001e244;\n          }" ({ "{") (expression_statement "lVar20 = lVar20 + (longdouble)DAT_0001e244;" (assignment_expression "lVar20 = lVar20 + (longdouble)DAT_0001e244" (identifier "lVar20") (= "=") (binary_expression "lVar20 + (longdouble)DAT_0001e244" (identifier "lVar20") (+ "+") (cast_expression "(longdouble)DAT_0001e244" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e244")))) (; ";")) (} "}"))) (} "}"))) (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40))" (identifier "__sprintf_chk") (argument_list "(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)\n                      ,(short)((unkuint10)lVar20 >> 0x40))" (( "(") (identifier "param_3") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (string_literal ""%.1Lf"" (" """) (string_content "%.1Lf") (" """)) (, ",") (call_expression "SUB104(lVar20,0)" (identifier "SUB104") (argument_list "(lVar20,0)" (( "(") (identifier "lVar20") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((unkuint10)lVar20 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((unkuint10)lVar20 >> 0x20)" (( "(") (binary_expression "(unkuint10)lVar20 >> 0x20" (cast_expression "(unkuint10)lVar20" (( "(") (type_descriptor "unkuint10" (type_identifier "unkuint10")) () ")") (identifier "lVar20")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(short)((unkuint10)lVar20 >> 0x40)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((unkuint10)lVar20 >> 0x40)" (( "(") (binary_expression "(unkuint10)lVar20 >> 0x40" (cast_expression "(unkuint10)lVar20" (( "(") (type_descriptor "unkuint10" (type_identifier "unkuint10")) () ")") (identifier "lVar20")) (>> ">>") (number_literal "0x40")) () ")"))) () ")"))) (; ";")) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" (identifier "__n") (= "=") (call_expression "strlen(param_3)" (identifier "strlen") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (uVar15 < __n) {\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }\n        else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }" (if "if") (parenthesized_expression "(uVar15 < __n)" (( "(") (binary_expression "uVar15 < __n" (identifier "uVar15") (< "<") (identifier "__n")) () ")")) (compound_statement "{\n          lVar20 = lVar18 * (longdouble)DAT_0001e24c;\n        }" ({ "{") (expression_statement "lVar20 = lVar18 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar20 = lVar18 * (longdouble)DAT_0001e24c" (identifier "lVar20") (= "=") (binary_expression "lVar18 * (longdouble)DAT_0001e24c" (identifier "lVar18") (* "*") (cast_expression "(longdouble)DAT_0001e24c" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e24c")))) (; ";")) (} "}")) (else_clause "else {\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }" (else "else") (compound_statement "{\nLAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }\n          lVar18 = lVar18 * (longdouble)DAT_0001e24c;\n          lVar20 = lVar18;\n          if (uVar6 == 1) goto LAB_00015192;\n        }" ({ "{") (labeled_statement "LAB_00015830:\n          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" (statement_identifier "LAB_00015830") (: ":") (if_statement "if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" (if "if") (parenthesized_expression "(((param_4 & 8) == 0) || (param_3[__n - 1] != '0'))" (( "(") (binary_expression "((param_4 & 8) == 0) || (param_3[__n - 1] != '0')" (parenthesized_expression "((param_4 & 8) == 0)" (( "(") (binary_expression "(param_4 & 8) == 0" (parenthesized_expression "(param_4 & 8)" (( "(") (binary_expression "param_4 & 8" (identifier "param_4") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_3[__n - 1] != '0')" (( "(") (binary_expression "param_3[__n - 1] != '0'" (subscript_expression "param_3[__n - 1]" (identifier "param_3") ([ "[") (binary_expression "__n - 1" (identifier "__n") (- "-") (number_literal "1")) (] "]")) (!= "!=") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            sVar10 = __n - (local_74 + 1);\n            goto LAB_00015214;\n          }" ({ "{") (expression_statement "sVar10 = __n - (local_74 + 1);" (assignment_expression "sVar10 = __n - (local_74 + 1)" (identifier "sVar10") (= "=") (binary_expression "__n - (local_74 + 1)" (identifier "__n") (- "-") (parenthesized_expression "(local_74 + 1)" (( "(") (binary_expression "local_74 + 1" (identifier "local_74") (+ "+") (number_literal "1")) () ")")))) (; ";")) (goto_statement "goto LAB_00015214;" (goto "goto") (statement_identifier "LAB_00015214") (; ";")) (} "}")))) (expression_statement "lVar18 = lVar18 * (longdouble)DAT_0001e24c;" (assignment_expression "lVar18 = lVar18 * (longdouble)DAT_0001e24c" (identifier "lVar18") (= "=") (binary_expression "lVar18 * (longdouble)DAT_0001e24c" (identifier "lVar18") (* "*") (cast_expression "(longdouble)DAT_0001e24c" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e24c")))) (; ";")) (expression_statement "lVar20 = lVar18;" (assignment_expression "lVar20 = lVar18" (identifier "lVar20") (= "=") (identifier "lVar18")) (; ";")) (if_statement "if (uVar6 == 1) goto LAB_00015192;" (if "if") (parenthesized_expression "(uVar6 == 1)" (( "(") (binary_expression "uVar6 == 1" (identifier "uVar6") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_00015192;" (goto "goto") (statement_identifier "LAB_00015192") (; ";"))) (} "}")))) (expression_statement "lVar18 = lVar20;" (assignment_expression "lVar18 = lVar20" (identifier "lVar18") (= "=") (identifier "lVar20")) (; ";")) (if_statement "if (lVar20 < _DAT_0001e250) {\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }" (if "if") (parenthesized_expression "(lVar20 < _DAT_0001e250)" (( "(") (binary_expression "lVar20 < _DAT_0001e250" (identifier "lVar20") (< "<") (identifier "_DAT_0001e250")) () ")")) (compound_statement "{\n          if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }\n          lVar18 = (longdouble)(longlong)uVar1;\n          if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n          if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }\n        }" ({ "{") (if_statement "if ((longdouble)DAT_0001e248 <= lVar20) {\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }\n          else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" (if "if") (parenthesized_expression "((longdouble)DAT_0001e248 <= lVar20)" (( "(") (binary_expression "(longdouble)DAT_0001e248 <= lVar20" (cast_expression "(longdouble)DAT_0001e248" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e248")) (<= "<=") (identifier "lVar20")) () ")")) (compound_statement "{\n            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);\n            local_54._4_4_ = (int)(uVar2 >> 0x20);\n            local_54._0_4_ = (uint)uVar2;\n            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);\n            local_54 = uVar2;\n          }" ({ "{") (expression_statement "uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);" (assignment_expression "uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248)" (identifier "uVar2") (= "=") (cast_expression "(ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "ROUND(lVar20 - (longdouble)DAT_0001e248)" (identifier "ROUND") (argument_list "(lVar20 - (longdouble)DAT_0001e248)" (( "(") (binary_expression "lVar20 - (longdouble)DAT_0001e248" (identifier "lVar20") (- "-") (cast_expression "(longdouble)DAT_0001e248" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e248"))) () ")"))))) (; ";")) (expression_statement "local_54._4_4_ = (int)(uVar2 >> 0x20);" (assignment_expression "local_54._4_4_ = (int)(uVar2 >> 0x20)" (field_expression "local_54._4_4_" (identifier "local_54") (. ".") (field_identifier "_4_4_")) (= "=") (cast_expression "(int)(uVar2 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar2 >> 0x20)" (( "(") (binary_expression "uVar2 >> 0x20" (identifier "uVar2") (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "local_54._0_4_ = (uint)uVar2;" (assignment_expression "local_54._0_4_ = (uint)uVar2" (field_expression "local_54._0_4_" (identifier "local_54") (. ".") (field_identifier "_0_4_")) (= "=") (cast_expression "(uint)uVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar2"))) (; ";")) (expression_statement "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);" (assignment_expression "uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" (identifier "uVar1") (= "=") (call_expression "CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54)" (identifier "CONCAT44") (argument_list "(local_54._4_4_ + -0x80000000,(uint)local_54)" (( "(") (binary_expression "local_54._4_4_ + -0x80000000" (field_expression "local_54._4_4_" (identifier "local_54") (. ".") (field_identifier "_4_4_")) (+ "+") (number_literal "-0x80000000")) (, ",") (cast_expression "(uint)local_54" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_54")) () ")")))) (; ";")) (expression_statement "local_54 = uVar2;" (assignment_expression "local_54 = uVar2" (identifier "local_54") (= "=") (identifier "uVar2")) (; ";")) (} "}")) (else_clause "else {\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" (else "else") (compound_statement "{\n            uVar1 = (ulonglong)ROUND(lVar20);\n            local_54 = uVar1;\n          }" ({ "{") (expression_statement "uVar1 = (ulonglong)ROUND(lVar20);" (assignment_expression "uVar1 = (ulonglong)ROUND(lVar20)" (identifier "uVar1") (= "=") (cast_expression "(ulonglong)ROUND(lVar20)" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (call_expression "ROUND(lVar20)" (identifier "ROUND") (argument_list "(lVar20)" (( "(") (identifier "lVar20") () ")"))))) (; ";")) (expression_statement "local_54 = uVar1;" (assignment_expression "local_54 = uVar1" (identifier "local_54") (= "=") (identifier "uVar1")) (; ";")) (} "}")))) (expression_statement "lVar18 = (longdouble)(longlong)uVar1;" (assignment_expression "lVar18 = (longdouble)(longlong)uVar1" (identifier "lVar18") (= "=") (cast_expression "(longdouble)(longlong)uVar1" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (cast_expression "(longlong)uVar1" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "uVar1")))) (; ";")) (if_statement "if ((longlong)uVar1 < 0) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" (if "if") (parenthesized_expression "((longlong)uVar1 < 0)" (( "(") (binary_expression "(longlong)uVar1 < 0" (cast_expression "(longlong)uVar1" (( "(") (type_descriptor "longlong" (type_identifier "longlong")) () ")") (identifier "uVar1")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" ({ "{") (expression_statement "lVar18 = lVar18 + (longdouble)DAT_0001e244;" (assignment_expression "lVar18 = lVar18 + (longdouble)DAT_0001e244" (identifier "lVar18") (= "=") (binary_expression "lVar18 + (longdouble)DAT_0001e244" (identifier "lVar18") (+ "+") (cast_expression "(longdouble)DAT_0001e244" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e244")))) (; ";")) (} "}"))) (if_statement "if (((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" (if "if") (parenthesized_expression "(((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0))" (( "(") (binary_expression "((uVar6 == 0) && (lVar20 != lVar18)) &&\n             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (parenthesized_expression "((uVar6 == 0) && (lVar20 != lVar18))" (( "(") (binary_expression "(uVar6 == 0) && (lVar20 != lVar18)" (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar20 != lVar18)" (( "(") (binary_expression "lVar20 != lVar18" (identifier "lVar20") (!= "!=") (identifier "lVar18")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)" (( "(") (comma_expression "lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0" (assignment_expression "lVar18 = (longdouble)(longlong)(uVar1 + 1)" (identifier "lVar18") (= "=") (call_expression "(longdouble)(longlong)(uVar1 + 1)" (call_expression "(longdouble)(longlong)" (parenthesized_expression "(longdouble)" (( "(") (identifier "longdouble") () ")")) (argument_list "(longlong)" (( "(") (identifier "longlong") () ")"))) (argument_list "(uVar1 + 1)" (( "(") (binary_expression "uVar1 + 1" (identifier "uVar1") (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "(longlong)(uVar1 + 1) < 0" (call_expression "(longlong)(uVar1 + 1)" (parenthesized_expression "(longlong)" (( "(") (identifier "longlong") () ")")) (argument_list "(uVar1 + 1)" (( "(") (binary_expression "uVar1 + 1" (identifier "uVar1") (+ "+") (number_literal "1")) () ")"))) (< "<") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            lVar18 = lVar18 + (longdouble)DAT_0001e244;\n          }" ({ "{") (expression_statement "lVar18 = lVar18 + (longdouble)DAT_0001e244;" (assignment_expression "lVar18 = lVar18 + (longdouble)DAT_0001e244" (identifier "lVar18") (= "=") (binary_expression "lVar18 + (longdouble)DAT_0001e244" (identifier "lVar18") (+ "+") (cast_expression "(longdouble)DAT_0001e244" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e244")))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (labeled_statement "LAB_00015192:\n      lVar18 = lVar18 / (longdouble)DAT_0001e24c;" (statement_identifier "LAB_00015192") (: ":") (expression_statement "lVar18 = lVar18 / (longdouble)DAT_0001e24c;" (assignment_expression "lVar18 = lVar18 / (longdouble)DAT_0001e24c" (identifier "lVar18") (= "=") (binary_expression "lVar18 / (longdouble)DAT_0001e24c" (identifier "lVar18") (/ "/") (cast_expression "(longdouble)DAT_0001e24c" (( "(") (type_descriptor "longdouble" (type_identifier "longdouble")) () ")") (identifier "DAT_0001e24c")))) (; ";"))) (expression_statement "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40));" (call_expression "__sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40))" (identifier "__sprintf_chk") (argument_list "(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),\n                    (short)((unkuint10)lVar18 >> 0x40))" (( "(") (identifier "param_3") (, ",") (number_literal "1") (, ",") (number_literal "0xffffffff") (, ",") (string_literal ""%.0Lf"" (" """) (string_content "%.0Lf") (" """)) (, ",") (call_expression "SUB104(lVar18,0)" (identifier "SUB104") (argument_list "(lVar18,0)" (( "(") (identifier "lVar18") (, ",") (number_literal "0") () ")"))) (, ",") (cast_expression "(int)((unkuint10)lVar18 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((unkuint10)lVar18 >> 0x20)" (( "(") (binary_expression "(unkuint10)lVar18 >> 0x20" (cast_expression "(unkuint10)lVar18" (( "(") (type_descriptor "unkuint10" (type_identifier "unkuint10")) () ")") (identifier "lVar18")) (>> ">>") (number_literal "0x20")) () ")"))) (, ",") (cast_expression "(short)((unkuint10)lVar18 >> 0x40)" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (parenthesized_expression "((unkuint10)lVar18 >> 0x40)" (( "(") (binary_expression "(unkuint10)lVar18 >> 0x40" (cast_expression "(unkuint10)lVar18" (( "(") (type_descriptor "unkuint10" (type_identifier "unkuint10")) () ")") (identifier "lVar18")) (>> ">>") (number_literal "0x40")) () ")"))) () ")"))) (; ";")) (expression_statement "__n = strlen(param_3);" (assignment_expression "__n = strlen(param_3)" (identifier "__n") (= "=") (call_expression "strlen(param_3)" (identifier "strlen") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "sVar10 = __n;" (assignment_expression "sVar10 = __n" (identifier "sVar10") (= "=") (identifier "__n")) (; ";")) (} "}")))) (labeled_statement "LAB_00015214:\n    pcVar16 = local_98 + -__n;" (statement_identifier "LAB_00015214") (: ":") (expression_statement "pcVar16 = local_98 + -__n;" (assignment_expression "pcVar16 = local_98 + -__n" (identifier "pcVar16") (= "=") (binary_expression "local_98 + -__n" (identifier "local_98") (+ "+") (unary_expression "-__n" (- "-") (identifier "__n")))) (; ";"))) (expression_statement "memmove(pcVar16,param_3,__n);" (call_expression "memmove(pcVar16,param_3,__n)" (identifier "memmove") (argument_list "(pcVar16,param_3,__n)" (( "(") (identifier "pcVar16") (, ",") (identifier "param_3") (, ",") (identifier "__n") () ")"))) (; ";")) (expression_statement "local_7c = pcVar16 + sVar10;" (assignment_expression "local_7c = pcVar16 + sVar10" (identifier "local_7c") (= "=") (binary_expression "pcVar16 + sVar10" (identifier "pcVar16") (+ "+") (identifier "sVar10"))) (; ";")) (} "}")) (else_clause "else {\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }" (else "else") (compound_statement "{\n    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);\n    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;\n    lVar23 = lVar21 * local_a4;\n    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));\n    if (lVar21 != local_a4) goto LAB_00014fe8;\n    uVar17 = 0;\n    local_68 = 0;\n    if ((param_4 & 0x10) == 0) goto LAB_0001578e;\nLAB_000153b5:\n    local_64 = &local_54;\n    local_a4._0_4_ = 0;\n    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;\n    while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }\n    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;\n    if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }\n    cVar4 = (char)uVar1;\n    if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }\n    param_3[0x286] = cVar4;\n    local_7c = param_3 + (0x286 - local_74);\n    if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }\nLAB_00015b39:\n    uVar17 = 0;\nLAB_00015b3b:\n    pcVar16 = local_7c;\n    if (uVar6 == 1) goto LAB_000157f4;\n    local_68 = 0;\nLAB_000157a9:\n    pcVar16 = local_7c;\n    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }\n  }" ({ "{") (expression_statement "lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);" (assignment_expression "lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54)" (identifier "lVar21") (= "=") (call_expression "FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54)" (identifier "FUN_0001bee0") (argument_list "(param_5,param_6,param_7,param_8,&local_54)" (( "(") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (identifier "param_7") (, ",") (identifier "param_8") (, ",") (pointer_expression "&local_54" (& "&") (identifier "local_54")) () ")")))) (; ";")) (if_statement "if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;" (if "if") (parenthesized_expression "(local_54._4_4_ != 0 || (uint)local_54 != 0)" (( "(") (binary_expression "local_54._4_4_ != 0 || (uint)local_54 != 0" (binary_expression "local_54._4_4_ != 0" (field_expression "local_54._4_4_" (identifier "local_54") (. ".") (field_identifier "_4_4_")) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "(uint)local_54 != 0" (cast_expression "(uint)local_54" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_54")) (!= "!=") (number_literal "0"))) () ")")) (goto_statement "goto LAB_00014fe8;" (goto "goto") (statement_identifier "LAB_00014fe8") (; ";"))) (expression_statement "lVar23 = lVar21 * local_a4;" (assignment_expression "lVar23 = lVar21 * local_a4" (identifier "lVar23") (= "=") (binary_expression "lVar21 * local_a4" (identifier "lVar21") (* "*") (identifier "local_a4"))) (; ";")) (expression_statement "lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));" (assignment_expression "lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20))" (identifier "lVar21") (= "=") (call_expression "FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20))" (identifier "FUN_0001bc90") (argument_list "(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20))" (( "(") (identifier "lVar23") (, ",") (cast_expression "(short)lVar21" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "lVar21")) (, ",") (cast_expression "(int)((ulonglong)lVar21 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar21 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar21 >> 0x20" (cast_expression "(ulonglong)lVar21" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar21")) (>> ">>") (number_literal "0x20")) () ")"))) () ")")))) (; ";")) (if_statement "if (lVar21 != local_a4) goto LAB_00014fe8;" (if "if") (parenthesized_expression "(lVar21 != local_a4)" (( "(") (binary_expression "lVar21 != local_a4" (identifier "lVar21") (!= "!=") (identifier "local_a4")) () ")")) (goto_statement "goto LAB_00014fe8;" (goto "goto") (statement_identifier "LAB_00014fe8") (; ";"))) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((param_4 & 0x10) == 0) goto LAB_0001578e;" (if "if") (parenthesized_expression "((param_4 & 0x10) == 0)" (( "(") (binary_expression "(param_4 & 0x10) == 0" (parenthesized_expression "(param_4 & 0x10)" (( "(") (binary_expression "param_4 & 0x10" (identifier "param_4") (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001578e;" (goto "goto") (statement_identifier "LAB_0001578e") (; ";"))) (labeled_statement "LAB_000153b5:\n    local_64 = &local_54;" (statement_identifier "LAB_000153b5") (: ":") (expression_statement "local_64 = &local_54;" (assignment_expression "local_64 = &local_54" (identifier "local_64") (= "=") (pointer_expression "&local_54" (& "&") (identifier "local_54"))) (; ";"))) (expression_statement "local_a4._0_4_ = 0;" (assignment_expression "local_a4._0_4_ = 0" (field_expression "local_a4._0_4_" (identifier "local_a4") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;" (if "if") (parenthesized_expression "((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8))" (( "(") (binary_expression "(uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)" (call_expression "(uint)((ulonglong)lVar23 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar23 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar23")) (>> ">>") (number_literal "0x20")) () ")"))) (< "<") (call_expression "(uint)((uint)lVar23 < uVar8)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uint)lVar23 < uVar8)" (( "(") (binary_expression "(uint)lVar23 < uVar8" (cast_expression "(uint)lVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar23")) (< "<") (identifier "uVar8")) () ")")))) () ")")) (goto_statement "goto LAB_00015796;" (goto "goto") (statement_identifier "LAB_00015796") (; ";"))) (while_statement "while( true ) {\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);\n      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);\n      uVar12 = (uint)lVar23;\n      uVar15 = local_68 + (uint)local_54 * 10;\n      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;\n      local_68 = (uint)uVar1;\n      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;\n      uVar17 = uVar17 + uVar15;\n      if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if (uVar14 < (uVar12 < uVar8)) break;\n      if ((int)local_a4 == 8) goto LAB_00015796;\n    }" ({ "{") (expression_statement "lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);" (assignment_expression "lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64)" (identifier "lVar23") (= "=") (call_expression "FUN_0001bee0(lVar23,uVar8,0,local_64)" (identifier "FUN_0001bee0") (argument_list "(lVar23,uVar8,0,local_64)" (( "(") (identifier "lVar23") (, ",") (identifier "uVar8") (, ",") (number_literal "0") (, ",") (identifier "local_64") () ")")))) (; ";")) (expression_statement "uVar14 = (uint)((ulonglong)lVar23 >> 0x20);" (assignment_expression "uVar14 = (uint)((ulonglong)lVar23 >> 0x20)" (identifier "uVar14") (= "=") (call_expression "(uint)((ulonglong)lVar23 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)lVar23 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar23")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar12 = (uint)lVar23;" (assignment_expression "uVar12 = (uint)lVar23" (identifier "uVar12") (= "=") (cast_expression "(uint)lVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar23"))) (; ";")) (expression_statement "uVar15 = local_68 + (uint)local_54 * 10;" (assignment_expression "uVar15 = local_68 + (uint)local_54 * 10" (identifier "uVar15") (= "=") (binary_expression "local_68 + (uint)local_54 * 10" (identifier "local_68") (+ "+") (binary_expression "(uint)local_54 * 10" (cast_expression "(uint)local_54" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_54")) (* "*") (number_literal "10")))) (; ";")) (expression_statement "uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;" (assignment_expression "uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8" (identifier "uVar1") (= "=") (binary_expression "(ulonglong)uVar15 / (ulonglong)uVar8" (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15")) (/ "/") (cast_expression "(ulonglong)uVar8" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar8")))) (; ";")) (expression_statement "local_68 = (uint)uVar1;" (assignment_expression "local_68 = (uint)uVar1" (identifier "local_68") (= "=") (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1"))) (; ";")) (expression_statement "uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;" (assignment_expression "uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2" (identifier "uVar15") (= "=") (binary_expression "((int)uVar17 >> 1) + (uVar15 % uVar8) * 2" (parenthesized_expression "((int)uVar17 >> 1)" (( "(") (binary_expression "(int)uVar17 >> 1" (cast_expression "(int)uVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar17")) (>> ">>") (number_literal "1")) () ")")) (+ "+") (binary_expression "(uVar15 % uVar8) * 2" (parenthesized_expression "(uVar15 % uVar8)" (( "(") (binary_expression "uVar15 % uVar8" (identifier "uVar15") (% "%") (identifier "uVar8")) () ")")) (* "*") (number_literal "2")))) (; ";")) (expression_statement "uVar17 = uVar17 + uVar15;" (assignment_expression "uVar17 = uVar17 + uVar15" (identifier "uVar17") (= "=") (binary_expression "uVar17 + uVar15" (identifier "uVar17") (+ "+") (identifier "uVar15"))) (; ";")) (if_statement "if (uVar15 < uVar8) {\n        uVar17 = (uint)(uVar17 != 0);\n      }\n      else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }" (if "if") (parenthesized_expression "(uVar15 < uVar8)" (( "(") (binary_expression "uVar15 < uVar8" (identifier "uVar15") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n        uVar17 = (uint)(uVar17 != 0);\n      }" ({ "{") (expression_statement "uVar17 = (uint)(uVar17 != 0);" (assignment_expression "uVar17 = (uint)(uVar17 != 0)" (identifier "uVar17") (= "=") (call_expression "(uint)(uVar17 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar17 != 0)" (( "(") (binary_expression "uVar17 != 0" (identifier "uVar17") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        uVar17 = (uVar8 < uVar17) + 2;\n      }" (else "else") (compound_statement "{\n        uVar17 = (uVar8 < uVar17) + 2;\n      }" ({ "{") (expression_statement "uVar17 = (uVar8 < uVar17) + 2;" (assignment_expression "uVar17 = (uVar8 < uVar17) + 2" (identifier "uVar17") (= "=") (binary_expression "(uVar8 < uVar17) + 2" (parenthesized_expression "(uVar8 < uVar17)" (( "(") (binary_expression "uVar8 < uVar17" (identifier "uVar8") (< "<") (identifier "uVar17")) () ")")) (+ "+") (number_literal "2"))) (; ";")) (} "}")))) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" (identifier "local_a4") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar14 < (uVar12 < uVar8)) break;" (if "if") (parenthesized_expression "(uVar14 < (uVar12 < uVar8))" (( "(") (binary_expression "uVar14 < (uVar12 < uVar8)" (identifier "uVar14") (< "<") (parenthesized_expression "(uVar12 < uVar8)" (( "(") (binary_expression "uVar12 < uVar8" (identifier "uVar12") (< "<") (identifier "uVar8")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((int)local_a4 == 8) goto LAB_00015796;" (if "if") (parenthesized_expression "((int)local_a4 == 8)" (( "(") (binary_expression "(int)local_a4 == 8" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (== "==") (number_literal "8")) () ")")) (goto_statement "goto LAB_00015796;" (goto "goto") (statement_identifier "LAB_00015796") (; ";"))) (} "}"))) (if_statement "if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;" (if "if") (parenthesized_expression "(uVar14 != 0 || -uVar14 < (uint)(9 < uVar12))" (( "(") (binary_expression "uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)" (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "-uVar14 < (uint)(9 < uVar12)" (unary_expression "-uVar14" (- "-") (identifier "uVar14")) (< "<") (call_expression "(uint)(9 < uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(9 < uVar12)" (( "(") (binary_expression "9 < uVar12" (number_literal "9") (< "<") (identifier "uVar12")) () ")"))))) () ")")) (goto_statement "goto LAB_00015796;" (goto "goto") (statement_identifier "LAB_00015796") (; ";"))) (if_statement "if (uVar6 == 1) {\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }\n    else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }" (if "if") (parenthesized_expression "(uVar6 == 1)" (( "(") (binary_expression "uVar6 == 1" (identifier "uVar6") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      bVar5 = 2 < (local_68 & 1) + uVar17;\n    }" ({ "{") (expression_statement "bVar5 = 2 < (local_68 & 1) + uVar17;" (assignment_expression "bVar5 = 2 < (local_68 & 1) + uVar17" (identifier "bVar5") (= "=") (binary_expression "2 < (local_68 & 1) + uVar17" (number_literal "2") (< "<") (binary_expression "(local_68 & 1) + uVar17" (parenthesized_expression "(local_68 & 1)" (( "(") (binary_expression "local_68 & 1" (identifier "local_68") (& "&") (number_literal "1")) () ")")) (+ "+") (identifier "uVar17")))) (; ";")) (} "}")) (else_clause "else {\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }" (else "else") (compound_statement "{\n      bVar5 = uVar17 != 0 && uVar6 == 0;\n    }" ({ "{") (expression_statement "bVar5 = uVar17 != 0 && uVar6 == 0;" (assignment_expression "bVar5 = uVar17 != 0 && uVar6 == 0" (identifier "bVar5") (= "=") (binary_expression "uVar17 != 0 && uVar6 == 0" (binary_expression "uVar17 != 0" (identifier "uVar17") (!= "!=") (number_literal "0")) (&& "&&") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")))) (; ";")) (} "}")))) (expression_statement "cVar4 = (char)uVar1;" (assignment_expression "cVar4 = (char)uVar1" (identifier "cVar4") (= "=") (cast_expression "(char)uVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar1"))) (; ";")) (if_statement "if (bVar5) {\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }\n    else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }" (if "if") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (compound_statement "{\n      if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }\n      cVar4 = cVar4 + '1';\n    }" ({ "{") (if_statement "if (local_68 == 9) {\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }" (if "if") (parenthesized_expression "(local_68 == 9)" (( "(") (binary_expression "local_68 == 9" (identifier "local_68") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n        lVar21 = lVar23 + 1;\n        lVar23 = lVar23 + 1;\n        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }\n        goto LAB_00015b39;\n      }" ({ "{") (expression_statement "lVar21 = lVar23 + 1;" (assignment_expression "lVar21 = lVar23 + 1" (identifier "lVar21") (= "=") (binary_expression "lVar23 + 1" (identifier "lVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "lVar23 = lVar23 + 1;" (assignment_expression "lVar23 = lVar23 + 1" (identifier "lVar23") (= "=") (binary_expression "lVar23 + 1" (identifier "lVar23") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }" (if "if") (parenthesized_expression "((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9)" (( "(") (binary_expression "(int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9" (binary_expression "(int)((ulonglong)lVar21 >> 0x20) != 0" (cast_expression "(int)((ulonglong)lVar21 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar21 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar21 >> 0x20" (cast_expression "(ulonglong)lVar21" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar21")) (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar12 != 9" (identifier "uVar12") (!= "!=") (number_literal "9"))) () ")")) (compound_statement "{\n          uVar17 = 0;\n          goto LAB_00015ae9;\n        }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00015ae9;" (goto "goto") (statement_identifier "LAB_00015ae9") (; ";")) (} "}"))) (goto_statement "goto LAB_00015b39;" (goto "goto") (statement_identifier "LAB_00015b39") (; ";")) (} "}"))) (expression_statement "cVar4 = cVar4 + '1';" (assignment_expression "cVar4 = cVar4 + '1'" (identifier "cVar4") (= "=") (binary_expression "cVar4 + '1'" (identifier "cVar4") (+ "+") (char_literal "'1'" (' "'") (character "1") (' "'")))) (; ";")) (} "}")) (else_clause "else if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }" (else "else") (if_statement "if (local_68 == 0) {\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }\n    else {\n      cVar4 = cVar4 + '0';\n    }" (if "if") (parenthesized_expression "(local_68 == 0)" (( "(") (binary_expression "local_68 == 0" (identifier "local_68") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;\n      cVar4 = '0';\n    }" ({ "{") (labeled_statement "LAB_00015ae9:\n      if ((param_4 & 8) != 0) goto LAB_00015b3b;" (statement_identifier "LAB_00015ae9") (: ":") (if_statement "if ((param_4 & 8) != 0) goto LAB_00015b3b;" (if "if") (parenthesized_expression "((param_4 & 8) != 0)" (( "(") (binary_expression "(param_4 & 8) != 0" (parenthesized_expression "(param_4 & 8)" (( "(") (binary_expression "param_4 & 8" (identifier "param_4") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015b3b;" (goto "goto") (statement_identifier "LAB_00015b3b") (; ";")))) (expression_statement "cVar4 = '0';" (assignment_expression "cVar4 = '0'" (identifier "cVar4") (= "=") (char_literal "'0'" (' "'") (character "0") (' "'"))) (; ";")) (} "}")) (else_clause "else {\n      cVar4 = cVar4 + '0';\n    }" (else "else") (compound_statement "{\n      cVar4 = cVar4 + '0';\n    }" ({ "{") (expression_statement "cVar4 = cVar4 + '0';" (assignment_expression "cVar4 = cVar4 + '0'" (identifier "cVar4") (= "=") (binary_expression "cVar4 + '0'" (identifier "cVar4") (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'")))) (; ";")) (} "}")))))) (expression_statement "param_3[0x286] = cVar4;" (assignment_expression "param_3[0x286] = cVar4" (subscript_expression "param_3[0x286]" (identifier "param_3") ([ "[") (number_literal "0x286") (] "]")) (= "=") (identifier "cVar4")) (; ";")) (expression_statement "local_7c = param_3 + (0x286 - local_74);" (assignment_expression "local_7c = param_3 + (0x286 - local_74)" (identifier "local_7c") (= "=") (binary_expression "param_3 + (0x286 - local_74)" (identifier "param_3") (+ "+") (parenthesized_expression "(0x286 - local_74)" (( "(") (binary_expression "0x286 - local_74" (number_literal "0x286") (- "-") (identifier "local_74")) () ")")))) (; ";")) (if_statement "if (local_74 < 4) {\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }\n    else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }" (if "if") (parenthesized_expression "(local_74 < 4)" (( "(") (binary_expression "local_74 < 4" (identifier "local_74") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }\n    }" ({ "{") (if_statement "if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }" (if "if") (parenthesized_expression "((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0))" (( "(") (binary_expression "(local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)" (parenthesized_expression "(local_74 != 0)" (( "(") (binary_expression "local_74 != 0" (identifier "local_74") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*local_7c = *local_6c, (local_74 & 2) != 0)" (( "(") (comma_expression "*local_7c = *local_6c, (local_74 & 2) != 0" (assignment_expression "*local_7c = *local_6c" (pointer_expression "*local_7c" (* "*") (identifier "local_7c")) (= "=") (pointer_expression "*local_6c" (* "*") (identifier "local_6c"))) (, ",") (binary_expression "(local_74 & 2) != 0" (parenthesized_expression "(local_74 & 2)" (( "(") (binary_expression "local_74 & 2" (identifier "local_74") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n      }" ({ "{") (expression_statement "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));" (assignment_expression "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2))" (pointer_expression "*(undefined2 *)(local_7c + (local_74 - 2))" (* "*") (cast_expression "(undefined2 *)(local_7c + (local_74 - 2))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_7c + (local_74 - 2))" (( "(") (binary_expression "local_7c + (local_74 - 2)" (identifier "local_7c") (+ "+") (parenthesized_expression "(local_74 - 2)" (( "(") (binary_expression "local_74 - 2" (identifier "local_74") (- "-") (number_literal "2")) () ")"))) () ")")))) (= "=") (pointer_expression "*(undefined2 *)(local_6c + (local_74 - 2))" (* "*") (cast_expression "(undefined2 *)(local_6c + (local_74 - 2))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_6c + (local_74 - 2))" (( "(") (binary_expression "local_6c + (local_74 - 2)" (identifier "local_6c") (+ "+") (parenthesized_expression "(local_74 - 2)" (( "(") (binary_expression "local_74 - 2" (identifier "local_74") (- "-") (number_literal "2")) () ")"))) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }" (else "else") (compound_statement "{\n      *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));\n      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n      uVar15 = iVar13 + local_74 & 0xfffffffc;\n      if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }\n    }" ({ "{") (expression_statement "*(undefined4 *)local_7c = *(undefined4 *)local_6c;" (assignment_expression "*(undefined4 *)local_7c = *(undefined4 *)local_6c" (pointer_expression "*(undefined4 *)local_7c" (* "*") (cast_expression "(undefined4 *)local_7c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_7c"))) (= "=") (pointer_expression "*(undefined4 *)local_6c" (* "*") (cast_expression "(undefined4 *)local_6c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_6c")))) (; ";")) (expression_statement "*(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));" (assignment_expression "*(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4))" (pointer_expression "*(undefined4 *)(param_3 + 0x282)" (* "*") (cast_expression "(undefined4 *)(param_3 + 0x282)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x282)" (( "(") (binary_expression "param_3 + 0x282" (identifier "param_3") (+ "+") (number_literal "0x282")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(local_6c + (local_74 - 4))" (* "*") (cast_expression "(undefined4 *)(local_6c + (local_74 - 4))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_6c + (local_74 - 4))" (( "(") (binary_expression "local_6c + (local_74 - 4)" (identifier "local_6c") (+ "+") (parenthesized_expression "(local_74 - 4)" (( "(") (binary_expression "local_74 - 4" (identifier "local_74") (- "-") (number_literal "4")) () ")"))) () ")"))))) (; ";")) (expression_statement "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);" (assignment_expression "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" (identifier "iVar13") (= "=") (binary_expression "(int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (- "-") (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_7c + 4)" (( "(") (binary_expression "local_7c + 4" (identifier "local_7c") (+ "+") (number_literal "4")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")))) (; ";")) (expression_statement "uVar15 = iVar13 + local_74 & 0xfffffffc;" (assignment_expression "uVar15 = iVar13 + local_74 & 0xfffffffc" (identifier "uVar15") (= "=") (binary_expression "iVar13 + local_74 & 0xfffffffc" (binary_expression "iVar13 + local_74" (identifier "iVar13") (+ "+") (identifier "local_74")) (& "&") (number_literal "0xfffffffc"))) (; ";")) (if_statement "if (3 < uVar15) {\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }" (if "if") (parenthesized_expression "(3 < uVar15)" (( "(") (binary_expression "3 < uVar15" (number_literal "3") (< "<") (identifier "uVar15")) () ")")) (compound_statement "{\n        uVar12 = 0;\n        do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);\n      }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        } while (uVar12 < uVar15);" (do "do") (compound_statement "{\n          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));\n          uVar12 = uVar12 + 4;\n        }" ({ "{") (expression_statement "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13));" (assignment_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =\n               *(undefined4 *)(local_6c + (uVar12 - iVar13))" (pointer_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12)" (* "*") (cast_expression "(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((uint)(local_7c + 4) & 0xfffffffc) + uVar12)" (( "(") (binary_expression "((uint)(local_7c + 4) & 0xfffffffc) + uVar12" (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_7c + 4)" (( "(") (binary_expression "local_7c + 4" (identifier "local_7c") (+ "+") (number_literal "4")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (identifier "uVar12")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(local_6c + (uVar12 - iVar13))" (* "*") (cast_expression "(undefined4 *)(local_6c + (uVar12 - iVar13))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_6c + (uVar12 - iVar13))" (( "(") (binary_expression "local_6c + (uVar12 - iVar13)" (identifier "local_6c") (+ "+") (parenthesized_expression "(uVar12 - iVar13)" (( "(") (binary_expression "uVar12 - iVar13" (identifier "uVar12") (- "-") (identifier "iVar13")) () ")"))) () ")"))))) (; ";")) (expression_statement "uVar12 = uVar12 + 4;" (assignment_expression "uVar12 = uVar12 + 4" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 4" (identifier "uVar12") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 < uVar15)" (( "(") (binary_expression "uVar12 < uVar15" (identifier "uVar12") (< "<") (identifier "uVar15")) () ")")) (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_00015b39:\n    uVar17 = 0;" (statement_identifier "LAB_00015b39") (: ":") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_00015b3b:\n    pcVar16 = local_7c;" (statement_identifier "LAB_00015b3b") (: ":") (expression_statement "pcVar16 = local_7c;" (assignment_expression "pcVar16 = local_7c" (identifier "pcVar16") (= "=") (identifier "local_7c")) (; ";"))) (if_statement "if (uVar6 == 1) goto LAB_000157f4;" (if "if") (parenthesized_expression "(uVar6 == 1)" (( "(") (binary_expression "uVar6 == 1" (identifier "uVar6") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_000157f4;" (goto "goto") (statement_identifier "LAB_000157f4") (; ";"))) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" (identifier "local_68") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000157a9:\n    pcVar16 = local_7c;" (statement_identifier "LAB_000157a9") (: ":") (expression_statement "pcVar16 = local_7c;" (assignment_expression "pcVar16 = local_7c" (identifier "pcVar16") (= "=") (identifier "local_7c")) (; ";"))) (if_statement "if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }\n    else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }" (if "if") (parenthesized_expression "((uVar6 == 0) && (0 < (int)(local_68 + uVar17)))" (( "(") (binary_expression "(uVar6 == 0) && (0 < (int)(local_68 + uVar17))" (parenthesized_expression "(uVar6 == 0)" (( "(") (binary_expression "uVar6 == 0" (identifier "uVar6") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(0 < (int)(local_68 + uVar17))" (( "(") (binary_expression "0 < (int)(local_68 + uVar17)" (number_literal "0") (< "<") (cast_expression "(int)(local_68 + uVar17)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_68 + uVar17)" (( "(") (binary_expression "local_68 + uVar17" (identifier "local_68") (+ "+") (identifier "uVar17")) () ")")))) () ")"))) () ")")) (compound_statement "{\nLAB_000157bb:\n      local_5c = param_4 & 0x10;\n      lVar23 = lVar23 + 1;\n      pcVar16 = local_7c;\n      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;\n      local_a4._0_4_ = (int)local_a4 + 1;\n      if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }\n      pcVar16 = local_7c + -1;\n      local_7c[-1] = '1';\n    }" ({ "{") (labeled_statement "LAB_000157bb:\n      local_5c = param_4 & 0x10;" (statement_identifier "LAB_000157bb") (: ":") (expression_statement "local_5c = param_4 & 0x10;" (assignment_expression "local_5c = param_4 & 0x10" (identifier "local_5c") (= "=") (binary_expression "param_4 & 0x10" (identifier "param_4") (& "&") (number_literal "0x10"))) (; ";"))) (expression_statement "lVar23 = lVar23 + 1;" (assignment_expression "lVar23 = lVar23 + 1" (identifier "lVar23") (= "=") (binary_expression "lVar23 + 1" (identifier "lVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar16 = local_7c;" (assignment_expression "pcVar16 = local_7c" (identifier "pcVar16") (= "=") (identifier "local_7c")) (; ";")) (if_statement "if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)) goto LAB_000157f4;" (if "if") (parenthesized_expression "(((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8))" (( "(") (binary_expression "((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||\n         ((int)local_a4 == 8)" (parenthesized_expression "((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23))" (( "(") (binary_expression "(local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)" (parenthesized_expression "(local_5c == 0)" (( "(") (binary_expression "local_5c == 0" (identifier "local_5c") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)" (( "(") (binary_expression "(int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23" (binary_expression "(int)((ulonglong)lVar23 >> 0x20) != 0" (cast_expression "(int)((ulonglong)lVar23 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar23 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar23")) (>> ">>") (number_literal "0x20")) () ")"))) (!= "!=") (number_literal "0")) (|| "||") (binary_expression "uVar8 != (uint)lVar23" (identifier "uVar8") (!= "!=") (cast_expression "(uint)lVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar23")))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((int)local_a4 == 8)" (( "(") (binary_expression "(int)local_a4 == 8" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (== "==") (number_literal "8")) () ")"))) () ")")) (goto_statement "goto LAB_000157f4;" (goto "goto") (statement_identifier "LAB_000157f4") (; ";"))) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" (identifier "local_a4") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((param_4 & 8) == 0) {\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }" (if "if") (parenthesized_expression "((param_4 & 8) == 0)" (( "(") (binary_expression "(param_4 & 8) == 0" (parenthesized_expression "(param_4 & 8)" (( "(") (binary_expression "param_4 & 8" (identifier "param_4") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_7c[-1] = '0';\n        local_7c = local_7c + ~local_74;\n        if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }\n      }" ({ "{") (expression_statement "local_7c[-1] = '0';" (assignment_expression "local_7c[-1] = '0'" (subscript_expression "local_7c[-1]" (identifier "local_7c") ([ "[") (number_literal "-1") (] "]")) (= "=") (char_literal "'0'" (' "'") (character "0") (' "'"))) (; ";")) (expression_statement "local_7c = local_7c + ~local_74;" (assignment_expression "local_7c = local_7c + ~local_74" (identifier "local_7c") (= "=") (binary_expression "local_7c + ~local_74" (identifier "local_7c") (+ "+") (unary_expression "~local_74" (~ "~") (identifier "local_74")))) (; ";")) (if_statement "if (local_74 < 4) {\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }\n        else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }" (if "if") (parenthesized_expression "(local_74 < 4)" (( "(") (binary_expression "local_74 < 4" (identifier "local_74") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }\n        }" ({ "{") (if_statement "if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }" (if "if") (parenthesized_expression "((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0))" (( "(") (binary_expression "(local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)" (parenthesized_expression "(local_74 != 0)" (( "(") (binary_expression "local_74 != 0" (identifier "local_74") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*local_7c = *local_6c, (local_74 & 2) != 0)" (( "(") (comma_expression "*local_7c = *local_6c, (local_74 & 2) != 0" (assignment_expression "*local_7c = *local_6c" (pointer_expression "*local_7c" (* "*") (identifier "local_7c")) (= "=") (pointer_expression "*local_6c" (* "*") (identifier "local_6c"))) (, ",") (binary_expression "(local_74 & 2) != 0" (parenthesized_expression "(local_74 & 2)" (( "(") (binary_expression "local_74 & 2" (identifier "local_74") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));\n          }" ({ "{") (expression_statement "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));" (assignment_expression "*(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2))" (pointer_expression "*(undefined2 *)(local_7c + (local_74 - 2))" (* "*") (cast_expression "(undefined2 *)(local_7c + (local_74 - 2))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_7c + (local_74 - 2))" (( "(") (binary_expression "local_7c + (local_74 - 2)" (identifier "local_7c") (+ "+") (parenthesized_expression "(local_74 - 2)" (( "(") (binary_expression "local_74 - 2" (identifier "local_74") (- "-") (number_literal "2")) () ")"))) () ")")))) (= "=") (pointer_expression "*(undefined2 *)(local_6c + (local_74 - 2))" (* "*") (cast_expression "(undefined2 *)(local_6c + (local_74 - 2))" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_6c + (local_74 - 2))" (( "(") (binary_expression "local_6c + (local_74 - 2)" (identifier "local_6c") (+ "+") (parenthesized_expression "(local_74 - 2)" (( "(") (binary_expression "local_74 - 2" (identifier "local_74") (- "-") (number_literal "2")) () ")"))) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }" (else "else") (compound_statement "{\n          *(undefined4 *)local_7c = *(undefined4 *)local_6c;\n          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));\n          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);\n          uVar6 = iVar13 + local_74 & 0xfffffffc;\n          if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }\n        }" ({ "{") (expression_statement "*(undefined4 *)local_7c = *(undefined4 *)local_6c;" (assignment_expression "*(undefined4 *)local_7c = *(undefined4 *)local_6c" (pointer_expression "*(undefined4 *)local_7c" (* "*") (cast_expression "(undefined4 *)local_7c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_7c"))) (= "=") (pointer_expression "*(undefined4 *)local_6c" (* "*") (cast_expression "(undefined4 *)local_6c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_6c")))) (; ";")) (expression_statement "*(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));" (assignment_expression "*(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4))" (pointer_expression "*(undefined4 *)(local_7c + (local_74 - 4))" (* "*") (cast_expression "(undefined4 *)(local_7c + (local_74 - 4))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_7c + (local_74 - 4))" (( "(") (binary_expression "local_7c + (local_74 - 4)" (identifier "local_7c") (+ "+") (parenthesized_expression "(local_74 - 4)" (( "(") (binary_expression "local_74 - 4" (identifier "local_74") (- "-") (number_literal "4")) () ")"))) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(local_6c + (local_74 - 4))" (* "*") (cast_expression "(undefined4 *)(local_6c + (local_74 - 4))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_6c + (local_74 - 4))" (( "(") (binary_expression "local_6c + (local_74 - 4)" (identifier "local_6c") (+ "+") (parenthesized_expression "(local_74 - 4)" (( "(") (binary_expression "local_74 - 4" (identifier "local_74") (- "-") (number_literal "4")) () ")"))) () ")"))))) (; ";")) (expression_statement "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);" (assignment_expression "iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" (identifier "iVar13") (= "=") (binary_expression "(int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc)" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (- "-") (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_7c + 4)" (( "(") (binary_expression "local_7c + 4" (identifier "local_7c") (+ "+") (number_literal "4")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")))) (; ";")) (expression_statement "uVar6 = iVar13 + local_74 & 0xfffffffc;" (assignment_expression "uVar6 = iVar13 + local_74 & 0xfffffffc" (identifier "uVar6") (= "=") (binary_expression "iVar13 + local_74 & 0xfffffffc" (binary_expression "iVar13 + local_74" (identifier "iVar13") (+ "+") (identifier "local_74")) (& "&") (number_literal "0xfffffffc"))) (; ";")) (if_statement "if (3 < uVar6) {\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }" (if "if") (parenthesized_expression "(3 < uVar6)" (( "(") (binary_expression "3 < uVar6" (number_literal "3") (< "<") (identifier "uVar6")) () ")")) (compound_statement "{\n            uVar15 = 0;\n            do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);\n          }" ({ "{") (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" (identifier "uVar15") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            } while (uVar15 < uVar6);" (do "do") (compound_statement "{\n              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));\n              uVar15 = uVar15 + 4;\n            }" ({ "{") (expression_statement "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13));" (assignment_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =\n                   *(undefined4 *)(local_6c + (uVar15 - iVar13))" (pointer_expression "*(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15)" (* "*") (cast_expression "(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((uint)(local_7c + 4) & 0xfffffffc) + uVar15)" (( "(") (binary_expression "((uint)(local_7c + 4) & 0xfffffffc) + uVar15" (parenthesized_expression "((uint)(local_7c + 4) & 0xfffffffc)" (( "(") (binary_expression "(uint)(local_7c + 4) & 0xfffffffc" (call_expression "(uint)(local_7c + 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_7c + 4)" (( "(") (binary_expression "local_7c + 4" (identifier "local_7c") (+ "+") (number_literal "4")) () ")"))) (& "&") (number_literal "0xfffffffc")) () ")")) (+ "+") (identifier "uVar15")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(local_6c + (uVar15 - iVar13))" (* "*") (cast_expression "(undefined4 *)(local_6c + (uVar15 - iVar13))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_6c + (uVar15 - iVar13))" (( "(") (binary_expression "local_6c + (uVar15 - iVar13)" (identifier "local_6c") (+ "+") (parenthesized_expression "(uVar15 - iVar13)" (( "(") (binary_expression "uVar15 - iVar13" (identifier "uVar15") (- "-") (identifier "iVar13")) () ")"))) () ")"))))) (; ";")) (expression_statement "uVar15 = uVar15 + 4;" (assignment_expression "uVar15 = uVar15 + 4" (identifier "uVar15") (= "=") (binary_expression "uVar15 + 4" (identifier "uVar15") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar15 < uVar6)" (( "(") (binary_expression "uVar15 < uVar6" (identifier "uVar15") (< "<") (identifier "uVar6")) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}"))) (expression_statement "pcVar16 = local_7c + -1;" (assignment_expression "pcVar16 = local_7c + -1" (identifier "pcVar16") (= "=") (binary_expression "local_7c + -1" (identifier "local_7c") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "local_7c[-1] = '1';" (assignment_expression "local_7c[-1] = '1'" (subscript_expression "local_7c[-1]" (identifier "local_7c") ([ "[") (number_literal "-1") (] "]")) (= "=") (char_literal "'1'" (' "'") (character "1") (' "'"))) (; ";")) (} "}")) (else_clause "else {\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }" (else "else") (compound_statement "{\nLAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));\n    }" ({ "{") (labeled_statement "LAB_000157f4:\n      do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));" (statement_identifier "LAB_000157f4") (: ":") (do_statement "do {\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));" (do "do") (compound_statement "{\n        iVar13 = (int)((ulonglong)lVar23 >> 0x20);\n        uVar6 = (uint)lVar23;\n        pcVar16 = pcVar16 + -1;\n        cVar4 = FUN_0001bda0(lVar23,10,0);\n        *pcVar16 = cVar4 + '0';\n        lVar23 = FUN_0001bc90(lVar23,10,0);\n      }" ({ "{") (expression_statement "iVar13 = (int)((ulonglong)lVar23 >> 0x20);" (assignment_expression "iVar13 = (int)((ulonglong)lVar23 >> 0x20)" (identifier "iVar13") (= "=") (cast_expression "(int)((ulonglong)lVar23 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)lVar23 >> 0x20)" (( "(") (binary_expression "(ulonglong)lVar23 >> 0x20" (cast_expression "(ulonglong)lVar23" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "lVar23")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar6 = (uint)lVar23;" (assignment_expression "uVar6 = (uint)lVar23" (identifier "uVar6") (= "=") (cast_expression "(uint)lVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar23"))) (; ";")) (expression_statement "pcVar16 = pcVar16 + -1;" (assignment_expression "pcVar16 = pcVar16 + -1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + -1" (identifier "pcVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar4 = FUN_0001bda0(lVar23,10,0);" (assignment_expression "cVar4 = FUN_0001bda0(lVar23,10,0)" (identifier "cVar4") (= "=") (call_expression "FUN_0001bda0(lVar23,10,0)" (identifier "FUN_0001bda0") (argument_list "(lVar23,10,0)" (( "(") (identifier "lVar23") (, ",") (number_literal "10") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*pcVar16 = cVar4 + '0';" (assignment_expression "*pcVar16 = cVar4 + '0'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (= "=") (binary_expression "cVar4 + '0'" (identifier "cVar4") (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'")))) (; ";")) (expression_statement "lVar23 = FUN_0001bc90(lVar23,10,0);" (assignment_expression "lVar23 = FUN_0001bc90(lVar23,10,0)" (identifier "lVar23") (= "=") (call_expression "FUN_0001bc90(lVar23,10,0)" (identifier "FUN_0001bc90") (argument_list "(lVar23,10,0)" (( "(") (identifier "lVar23") (, ",") (number_literal "10") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6))" (( "(") (binary_expression "iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6)" (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "(uint)-iVar13 < (uint)(9 < uVar6)" (binary_expression "(uint)-iVar13" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (- "-") (identifier "iVar13")) (< "<") (call_expression "(uint)(9 < uVar6)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(9 < uVar6)" (( "(") (binary_expression "9 < uVar6" (number_literal "9") (< "<") (identifier "uVar6")) () ")"))))) () ")")) (; ";"))) (} "}")))) (} "}")))) (if_statement "if ((param_4 & 4) != 0) {\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }" (if "if") (parenthesized_expression "((param_4 & 4) != 0)" (( "(") (binary_expression "(param_4 & 4) != 0" (parenthesized_expression "(param_4 & 4)" (( "(") (binary_expression "param_4 & 4" (identifier "param_4") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar15 = (int)local_7c - (int)pcVar16;\n    sVar10 = strlen(pcVar11);\n    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);\n    uVar6 = 0xffffffff;\n    while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }\n    pcVar16 = local_7c + -uVar15;\n    memcpy(pcVar16,local_49,uVar15);\n  }" ({ "{") (expression_statement "uVar15 = (int)local_7c - (int)pcVar16;" (assignment_expression "uVar15 = (int)local_7c - (int)pcVar16" (identifier "uVar15") (= "=") (binary_expression "(int)local_7c - (int)pcVar16" (cast_expression "(int)local_7c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_7c")) (- "-") (cast_expression "(int)pcVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar16")))) (; ";")) (expression_statement "sVar10 = strlen(pcVar11);" (assignment_expression "sVar10 = strlen(pcVar11)" (identifier "sVar10") (= "=") (call_expression "strlen(pcVar11)" (identifier "strlen") (argument_list "(pcVar11)" (( "(") (identifier "pcVar11") () ")")))) (; ";")) (expression_statement "__memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);" (call_expression "__memcpy_chk(local_49,pcVar16,(short)uVar15,0x29)" (identifier "__memcpy_chk") (argument_list "(local_49,pcVar16,(short)uVar15,0x29)" (( "(") (identifier "local_49") (, ",") (identifier "pcVar16") (, ",") (cast_expression "(short)uVar15" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar15")) (, ",") (number_literal "0x29") () ")"))) (; ";")) (expression_statement "uVar6 = 0xffffffff;" (assignment_expression "uVar6 = 0xffffffff" (identifier "uVar6") (= "=") (number_literal "0xffffffff")) (; ";")) (while_statement "while( true ) {\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      bVar3 = *local_bc;\n      if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }\n      if (uVar15 < uVar6) break;\n      uVar15 = uVar15 - uVar6;\n      pcVar16 = local_7c + -uVar6;\n      memcpy(pcVar16,local_49 + uVar15,uVar6);\n      if (uVar15 == 0) goto LAB_00015240;\n      local_7c = pcVar16 + -sVar10;\n      memcpy(local_7c,pcVar11,sVar10);\n    }" ({ "{") (expression_statement "bVar3 = *local_bc;" (assignment_expression "bVar3 = *local_bc" (identifier "bVar3") (= "=") (pointer_expression "*local_bc" (* "*") (identifier "local_bc"))) (; ";")) (if_statement "if (bVar3 != 0) {\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }" (if "if") (parenthesized_expression "(bVar3 != 0)" (( "(") (binary_expression "bVar3 != 0" (identifier "bVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar6 = (uint)bVar3;\n        if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }\n        local_bc = local_bc + 1;\n      }" ({ "{") (expression_statement "uVar6 = (uint)bVar3;" (assignment_expression "uVar6 = (uint)bVar3" (identifier "uVar6") (= "=") (cast_expression "(uint)bVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar3"))) (; ";")) (if_statement "if (0x7e < bVar3) {\n          uVar6 = uVar15;\n        }" (if "if") (parenthesized_expression "(0x7e < bVar3)" (( "(") (binary_expression "0x7e < bVar3" (number_literal "0x7e") (< "<") (identifier "bVar3")) () ")")) (compound_statement "{\n          uVar6 = uVar15;\n        }" ({ "{") (expression_statement "uVar6 = uVar15;" (assignment_expression "uVar6 = uVar15" (identifier "uVar6") (= "=") (identifier "uVar15")) (; ";")) (} "}"))) (expression_statement "local_bc = local_bc + 1;" (assignment_expression "local_bc = local_bc + 1" (identifier "local_bc") (= "=") (binary_expression "local_bc + 1" (identifier "local_bc") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (uVar15 < uVar6) break;" (if "if") (parenthesized_expression "(uVar15 < uVar6)" (( "(") (binary_expression "uVar15 < uVar6" (identifier "uVar15") (< "<") (identifier "uVar6")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar15 = uVar15 - uVar6;" (assignment_expression "uVar15 = uVar15 - uVar6" (identifier "uVar15") (= "=") (binary_expression "uVar15 - uVar6" (identifier "uVar15") (- "-") (identifier "uVar6"))) (; ";")) (expression_statement "pcVar16 = local_7c + -uVar6;" (assignment_expression "pcVar16 = local_7c + -uVar6" (identifier "pcVar16") (= "=") (binary_expression "local_7c + -uVar6" (identifier "local_7c") (+ "+") (unary_expression "-uVar6" (- "-") (identifier "uVar6")))) (; ";")) (expression_statement "memcpy(pcVar16,local_49 + uVar15,uVar6);" (call_expression "memcpy(pcVar16,local_49 + uVar15,uVar6)" (identifier "memcpy") (argument_list "(pcVar16,local_49 + uVar15,uVar6)" (( "(") (identifier "pcVar16") (, ",") (binary_expression "local_49 + uVar15" (identifier "local_49") (+ "+") (identifier "uVar15")) (, ",") (identifier "uVar6") () ")"))) (; ";")) (if_statement "if (uVar15 == 0) goto LAB_00015240;" (if "if") (parenthesized_expression "(uVar15 == 0)" (( "(") (binary_expression "uVar15 == 0" (identifier "uVar15") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015240;" (goto "goto") (statement_identifier "LAB_00015240") (; ";"))) (expression_statement "local_7c = pcVar16 + -sVar10;" (assignment_expression "local_7c = pcVar16 + -sVar10" (identifier "local_7c") (= "=") (binary_expression "pcVar16 + -sVar10" (identifier "pcVar16") (+ "+") (unary_expression "-sVar10" (- "-") (identifier "sVar10")))) (; ";")) (expression_statement "memcpy(local_7c,pcVar11,sVar10);" (call_expression "memcpy(local_7c,pcVar11,sVar10)" (identifier "memcpy") (argument_list "(local_7c,pcVar11,sVar10)" (( "(") (identifier "local_7c") (, ",") (identifier "pcVar11") (, ",") (identifier "sVar10") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar16 = local_7c + -uVar15;" (assignment_expression "pcVar16 = local_7c + -uVar15" (identifier "pcVar16") (= "=") (binary_expression "local_7c + -uVar15" (identifier "local_7c") (+ "+") (unary_expression "-uVar15" (- "-") (identifier "uVar15")))) (; ";")) (expression_statement "memcpy(pcVar16,local_49,uVar15);" (call_expression "memcpy(pcVar16,local_49,uVar15)" (identifier "memcpy") (argument_list "(pcVar16,local_49,uVar15)" (( "(") (identifier "pcVar16") (, ",") (identifier "local_49") (, ",") (identifier "uVar15") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00015240:\n  if ((param_4 & 0x80) == 0) goto LAB_0001526d;" (statement_identifier "LAB_00015240") (: ":") (if_statement "if ((param_4 & 0x80) == 0) goto LAB_0001526d;" (if "if") (parenthesized_expression "((param_4 & 0x80) == 0)" (( "(") (binary_expression "(param_4 & 0x80) == 0" (parenthesized_expression "(param_4 & 0x80)" (( "(") (binary_expression "param_4 & 0x80" (identifier "param_4") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001526d;" (goto "goto") (statement_identifier "LAB_0001526d") (; ";")))) (if_statement "if ((int)local_a4 == -1) {\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }\n  else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }" (if "if") (parenthesized_expression "((int)local_a4 == -1)" (( "(") (binary_expression "(int)local_a4 == -1" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }\n    local_a4._0_4_ = 1;\n    local_b8 = 0;\n    local_bc = (byte *)0x1;\n    do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);\n    if ((param_4 & 0x40) != 0) goto LAB_000155da;\nLAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }\n  }" ({ "{") (if_statement "if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }" (if "if") (parenthesized_expression "(param_8 == 0 && (uint)(1 < param_7) <= -param_8)" (( "(") (binary_expression "param_8 == 0 && (uint)(1 < param_7) <= -param_8" (binary_expression "param_8 == 0" (identifier "param_8") (== "==") (number_literal "0")) (&& "&&") (binary_expression "(uint)(1 < param_7) <= -param_8" (call_expression "(uint)(1 < param_7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(1 < param_7)" (( "(") (binary_expression "1 < param_7" (number_literal "1") (< "<") (identifier "param_7")) () ")"))) (<= "<=") (unary_expression "-param_8" (- "-") (identifier "param_8")))) () ")")) (compound_statement "{\n      local_a4._0_4_ = 0;\n      goto LAB_00015255;\n    }" ({ "{") (expression_statement "local_a4._0_4_ = 0;" (assignment_expression "local_a4._0_4_ = 0" (field_expression "local_a4._0_4_" (identifier "local_a4") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00015255;" (goto "goto") (statement_identifier "LAB_00015255") (; ";")) (} "}"))) (expression_statement "local_a4._0_4_ = 1;" (assignment_expression "local_a4._0_4_ = 1" (field_expression "local_a4._0_4_" (identifier "local_a4") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_b8 = 0;" (assignment_expression "local_b8 = 0" (identifier "local_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_bc = (byte *)0x1;" (assignment_expression "local_bc = (byte *)0x1" (identifier "local_bc") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (do_statement "do {\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    } while ((int)local_a4 != 8);" (do "do") (compound_statement "{\n      uVar1 = ZEXT48(local_bc);\n      local_bc = (byte *)(uVar1 * uVar8);\n      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;\n      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;\n      local_a4._0_4_ = (int)local_a4 + 1;\n    }" ({ "{") (expression_statement "uVar1 = ZEXT48(local_bc);" (assignment_expression "uVar1 = ZEXT48(local_bc)" (identifier "uVar1") (= "=") (call_expression "ZEXT48(local_bc)" (identifier "ZEXT48") (argument_list "(local_bc)" (( "(") (identifier "local_bc") () ")")))) (; ";")) (expression_statement "local_bc = (byte *)(uVar1 * uVar8);" (assignment_expression "local_bc = (byte *)(uVar1 * uVar8)" (identifier "local_bc") (= "=") (cast_expression "(byte *)(uVar1 * uVar8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar1 * uVar8)" (( "(") (binary_expression "uVar1 * uVar8" (identifier "uVar1") (* "*") (identifier "uVar8")) () ")")))) (; ";")) (expression_statement "local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;" (assignment_expression "local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8" (identifier "local_b8") (= "=") (binary_expression "(int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8" (cast_expression "(int)(uVar1 * uVar8 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar1 * uVar8 >> 0x20)" (( "(") (binary_expression "uVar1 * uVar8 >> 0x20" (binary_expression "uVar1 * uVar8" (identifier "uVar1") (* "*") (identifier "uVar8")) (>> ">>") (number_literal "0x20")) () ")"))) (+ "+") (binary_expression "local_b8 * uVar8" (identifier "local_b8") (* "*") (identifier "uVar8")))) (; ";")) (if_statement "if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;" (if "if") (parenthesized_expression "(param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8)" (( "(") (binary_expression "param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8" (binary_expression "param_8 <= local_b8" (identifier "param_8") (<= "<=") (identifier "local_b8")) (&& "&&") (binary_expression "(uint)(local_bc < param_7) <= local_b8 - param_8" (call_expression "(uint)(local_bc < param_7)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_bc < param_7)" (( "(") (binary_expression "local_bc < param_7" (identifier "local_bc") (< "<") (identifier "param_7")) () ")"))) (<= "<=") (binary_expression "local_b8 - param_8" (identifier "local_b8") (- "-") (identifier "param_8")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_a4._0_4_ = (int)local_a4 + 1;" (assignment_expression "local_a4._0_4_ = (int)local_a4 + 1" (field_expression "local_a4._0_4_" (identifier "local_a4") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "(int)local_a4 + 1" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)local_a4 != 8)" (( "(") (binary_expression "(int)local_a4 != 8" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (!= "!=") (number_literal "8")) () ")")) (; ";")) (if_statement "if ((param_4 & 0x40) != 0) goto LAB_000155da;" (if "if") (parenthesized_expression "((param_4 & 0x40) != 0)" (( "(") (binary_expression "(param_4 & 0x40) != 0" (parenthesized_expression "(param_4 & 0x40)" (( "(") (binary_expression "param_4 & 0x40" (identifier "param_4") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000155da;" (goto "goto") (statement_identifier "LAB_000155da") (; ";"))) (labeled_statement "LAB_000155fb:\n    if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" (statement_identifier "LAB_000155fb") (: ":") (if_statement "if ((uVar7 == 0) && ((int)local_a4 == 1)) {\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }\n    else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" (if "if") (parenthesized_expression "((uVar7 == 0) && ((int)local_a4 == 1))" (( "(") (binary_expression "(uVar7 == 0) && ((int)local_a4 == 1)" (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((int)local_a4 == 1)" (( "(") (binary_expression "(int)local_a4 == 1" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (== "==") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n      *local_98 = 'k';\n      pcVar11 = local_98 + 1;\n      if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }\n    }" ({ "{") (expression_statement "*local_98 = 'k';" (assignment_expression "*local_98 = 'k'" (pointer_expression "*local_98" (* "*") (identifier "local_98")) (= "=") (char_literal "'k'" (' "'") (character "k") (' "'"))) (; ";")) (expression_statement "pcVar11 = local_98 + 1;" (assignment_expression "pcVar11 = local_98 + 1" (identifier "pcVar11") (= "=") (binary_expression "local_98 + 1" (identifier "local_98") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((param_4 & 0x100) == 0) {\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }" (if "if") (parenthesized_expression "((param_4 & 0x100) == 0)" (( "(") (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" (( "(") (binary_expression "param_4 & 0x100" (identifier "param_4") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00015a82:\n        local_98 = local_98 + 1;\n        goto LAB_0001526d;\n      }" ({ "{") (labeled_statement "LAB_00015a82:\n        local_98 = local_98 + 1;" (statement_identifier "LAB_00015a82") (: ":") (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" (identifier "local_98") (= "=") (binary_expression "local_98 + 1" (identifier "local_98") (+ "+") (number_literal "1"))) (; ";"))) (goto_statement "goto LAB_0001526d;" (goto "goto") (statement_identifier "LAB_0001526d") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" (else "else") (compound_statement "{\n      *local_98 = (&UNK_0001e238)[(int)local_a4];\n      if ((param_4 & 0x100) == 0) goto LAB_00015a82;\n      pcVar11 = local_98 + 1;\n      if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }\n    }" ({ "{") (expression_statement "*local_98 = (&UNK_0001e238)[(int)local_a4];" (assignment_expression "*local_98 = (&UNK_0001e238)[(int)local_a4]" (pointer_expression "*local_98" (* "*") (identifier "local_98")) (= "=") (subscript_expression "(&UNK_0001e238)[(int)local_a4]" (parenthesized_expression "(&UNK_0001e238)" (( "(") (pointer_expression "&UNK_0001e238" (& "&") (identifier "UNK_0001e238")) () ")")) ([ "[") (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (] "]"))) (; ";")) (if_statement "if ((param_4 & 0x100) == 0) goto LAB_00015a82;" (if "if") (parenthesized_expression "((param_4 & 0x100) == 0)" (( "(") (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" (( "(") (binary_expression "param_4 & 0x100" (identifier "param_4") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015a82;" (goto "goto") (statement_identifier "LAB_00015a82") (; ";"))) (expression_statement "pcVar11 = local_98 + 1;" (assignment_expression "pcVar11 = local_98 + 1" (identifier "pcVar11") (= "=") (binary_expression "local_98 + 1" (identifier "local_98") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar7 != 0) {\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }" (if "if") (parenthesized_expression "(uVar7 != 0)" (( "(") (binary_expression "uVar7 != 0" (identifier "uVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_98[1] = 'i';\n        pcVar11 = local_98 + 2;\n      }" ({ "{") (expression_statement "local_98[1] = 'i';" (assignment_expression "local_98[1] = 'i'" (subscript_expression "local_98[1]" (identifier "local_98") ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'i'" (' "'") (character "i") (' "'"))) (; ";")) (expression_statement "pcVar11 = local_98 + 2;" (assignment_expression "pcVar11 = local_98 + 2" (identifier "pcVar11") (= "=") (binary_expression "local_98 + 2" (identifier "local_98") (+ "+") (number_literal "2"))) (; ";")) (} "}"))) (} "}"))))) (} "}")) (else_clause "else {\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }" (else "else") (compound_statement "{\nLAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;\n    if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }\n    if ((int)local_a4 != 0) goto LAB_000155fb;\n    pcVar11 = local_98;\n    if ((param_4 & 0x100) == 0) goto LAB_0001526d;\n  }" ({ "{") (labeled_statement "LAB_00015255:\n    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;" (statement_identifier "LAB_00015255") (: ":") (if_statement "if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;" (if "if") (parenthesized_expression "((int)local_a4 == 0 && (param_4 & 0x100) == 0)" (( "(") (binary_expression "(int)local_a4 == 0 && (param_4 & 0x100) == 0" (binary_expression "(int)local_a4 == 0" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" (( "(") (binary_expression "param_4 & 0x100" (identifier "param_4") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0"))) () ")")) (goto_statement "goto LAB_0001526d;" (goto "goto") (statement_identifier "LAB_0001526d") (; ";")))) (if_statement "if ((param_4 & 0x40) != 0) {\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }" (if "if") (parenthesized_expression "((param_4 & 0x40) != 0)" (( "(") (binary_expression "(param_4 & 0x40) != 0" (parenthesized_expression "(param_4 & 0x40)" (( "(") (binary_expression "param_4 & 0x40" (identifier "param_4") (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000155da:\n      local_98 = param_3 + 0x288;\n      param_3[0x287] = ' ';\n    }" ({ "{") (labeled_statement "LAB_000155da:\n      local_98 = param_3 + 0x288;" (statement_identifier "LAB_000155da") (: ":") (expression_statement "local_98 = param_3 + 0x288;" (assignment_expression "local_98 = param_3 + 0x288" (identifier "local_98") (= "=") (binary_expression "param_3 + 0x288" (identifier "param_3") (+ "+") (number_literal "0x288"))) (; ";"))) (expression_statement "param_3[0x287] = ' ';" (assignment_expression "param_3[0x287] = ' '" (subscript_expression "param_3[0x287]" (identifier "param_3") ([ "[") (number_literal "0x287") (] "]")) (= "=") (char_literal "' '" (' "'") (character " ") (' "'"))) (; ";")) (} "}"))) (if_statement "if ((int)local_a4 != 0) goto LAB_000155fb;" (if "if") (parenthesized_expression "((int)local_a4 != 0)" (( "(") (binary_expression "(int)local_a4 != 0" (cast_expression "(int)local_a4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_a4")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000155fb;" (goto "goto") (statement_identifier "LAB_000155fb") (; ";"))) (expression_statement "pcVar11 = local_98;" (assignment_expression "pcVar11 = local_98" (identifier "pcVar11") (= "=") (identifier "local_98")) (; ";")) (if_statement "if ((param_4 & 0x100) == 0) goto LAB_0001526d;" (if "if") (parenthesized_expression "((param_4 & 0x100) == 0)" (( "(") (binary_expression "(param_4 & 0x100) == 0" (parenthesized_expression "(param_4 & 0x100)" (( "(") (binary_expression "param_4 & 0x100" (identifier "param_4") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001526d;" (goto "goto") (statement_identifier "LAB_0001526d") (; ";"))) (} "}")))) (expression_statement "local_98 = pcVar11 + 1;" (assignment_expression "local_98 = pcVar11 + 1" (identifier "local_98") (= "=") (binary_expression "pcVar11 + 1" (identifier "pcVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*pcVar11 = 'B';" (assignment_expression "*pcVar11 = 'B'" (pointer_expression "*pcVar11" (* "*") (identifier "pcVar11")) (= "=") (char_literal "'B'" (' "'") (character "B") (' "'"))) (; ";")) (labeled_statement "LAB_0001526d:\n  *local_98 = '\0';" (statement_identifier "LAB_0001526d") (: ":") (expression_statement "*local_98 = '\0';" (assignment_expression "*local_98 = '\0'" (pointer_expression "*local_98" (* "*") (identifier "local_98")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";"))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return pcVar16;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return pcVar16;\n  }" ({ "{") (return_statement "return pcVar16;" (return "return") (identifier "pcVar16") (; ";")) (} "}"))) (expression_statement "FUN_0001c140();" (call_expression "FUN_0001c140()" (identifier "FUN_0001c140") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

char * function_1(type_1 var_36,char *var_10,int var_4,type_1 var_11,
                     type_1 to_block_size)

{
  type_2 var_27;
  type_2 var_24;
  int var_56;
  type_3 var_49;
  type_1 var_39;
  char var_42;
  bool bVar7;
  type_4 var_17;
  type_4 var_5;
  type_4 var_40;
  type_5 *plVar11;
  size_t var_9;
  char *var_55;
  size_t var_32;
  type_4 var_16;
  int var_45;
  type_4 var_14;
  type_4 var_15;
  char *var_35;
  type_4 var_18;
  int var_3;
  type_6 var_21;
  type_6 var_31;
  type_6 var_26;
  type_7 var_37;
  type_8 uVar24;
  type_7 var_41;
  type_3 *var_50;
  type_4 var_54;
  int var_30;
  char *var_33;
  type_9 local_94 [8];
  type_10 uStack_8c;
  char *var_43;
  type_4 var_8;
  char *var_44;
  type_4 var_20;
  type_8 *local_64;
  type_4 var_46;
  type_8 var_13;
  char var_52 [41];
  
  _local_94 = var_1(var_2(uStack_8c,var_11._4_4_),(type_4)var_11);
  var_56 = *(int *)(var_3 + 0x14);
  var_17 = var_4 & 3;
  var_5 = var_4 & 0x20;
  var_40 = (-(type_4)(var_5 == 0) & 0xffffffe8) + 0x400;
  plVar11 = var_6();
  var_44 = plVar11->decimal_point;
  var_8 = var_7(var_44);
  if (0xf < var_8 - 1) {
    var_8 = 1;
    var_44 = ".";
  }
  var_50 = (type_3 *)plVar11->grouping;
  var_35 = plVar11->thousands_sep;
  var_9 = var_7(var_35);
  var_55 = "";
  if (var_9 < 0x11) {
    var_55 = var_35;
  }
  var_33 = var_10 + 0x287;
  var_43 = var_33;
  if (var_11._4_4_ < to_block_size._4_4_ ||
      var_11._4_4_ - to_block_size._4_4_ <
      (type_4)((type_4)var_11 < (type_4)to_block_size)) {
    if (var_11 != 0) {
      uVar24 = var_12(to_block_size,var_11,&var_13);
      var_15 = (type_4)((type_2)uVar24 >> 0x20);
      if (var_13._4_4_ == 0 && (type_4)var_13 == 0) {
        var_41 = var_12(var_36,uVar24,&var_13);
        var_37 = (var_13 & 0xffffffff) * 10;
        var_20 = var_12((int)var_37,(int)((type_2)var_37 >> 0x20) + var_13._4_4_ * 10,
                                uVar24,&var_13);
        var_14 = var_13._4_4_ << 1 | (type_4)var_13 >> 0x1f;
        var_16 = (type_4)var_13 * 2;
        if (var_14 < var_15 || var_14 - var_15 < (type_4)(var_16 < (type_4)uVar24)) {
          var_18 = (type_4)(var_16 != 0 || var_14 != 0);
        }
        else {
          var_18 = 3;
          if (var_14 <= var_15 && (type_4)((type_4)uVar24 < var_16) <= var_15 - var_14) {
            var_18 = 2;
          }
        }
        if ((var_4 & 0x10U) != 0) goto LAB_000153b5;
LAB_0001578e:
        var_30 = -1;
LAB_00015796:
        if (var_17 != 1) goto LAB_000157a9;
        var_17 = (type_4)var_41 & 1;
        var_35 = var_33;
        var_37 = var_41;
        if (5 < (int)((var_17 + var_18 != 0 || var_19(var_17,var_18)) + var_20)) goto LAB_000157bb;
        goto LAB_000157f4;
      }
    }
LAB_00014fe8:
    var_21 = (type_6)(type_7)local_94;
    if ((type_7)var_11 < 0) {
      var_21 = var_21 + (type_6)DAT_0001e244;
    }
    if ((type_7)to_block_size < 0) {
      var_21 = var_21 / ((type_6)(type_7)to_block_size + (type_6)DAT_0001e244);
      if ((type_7)var_36 < 0) goto LAB_00015298;
LAB_00015026:
      var_21 = (type_6)(type_7)var_36 * var_21;
      if ((var_4 & 0x10U) != 0) goto LAB_00015036;
LAB_000151c8:
      var_26 = var_21;
      if ((var_17 != 1) && (var_21 < var_22)) {
        if ((type_6)DAT_0001e248 <= var_21) {
          var_24 = (type_2)var_23(var_21 - (type_6)DAT_0001e248);
          var_13._4_4_ = (int)(var_24 >> 0x20);
          var_13._0_4_ = (type_4)var_24;
          var_27 = var_25(var_13._4_4_ + -0x80000000,(type_4)var_13);
          var_13 = var_24;
        }
        else {
          var_27 = (type_2)var_23(var_21);
          var_13 = var_27;
        }
        var_26 = (type_6)(type_7)var_27;
        if ((type_7)var_27 < 0) {
          var_26 = var_26 + (type_6)DAT_0001e244;
        }
        if (((var_17 == 0) && (var_21 != var_26)) &&
           (var_26 = (type_6)(type_7)(var_27 + 1), (type_7)(var_27 + 1) < 0)) {
          var_26 = var_26 + (type_6)DAT_0001e244;
        }
      }
      var_28(var_10,1,0xffffffff,"%.0Lf",var_29(var_26,0),(int)((type_11)var_26 >> 0x20),
                    (short)((type_11)var_26 >> 0x40));
      var_32 = var_7(var_10);
      var_30 = -1;
      var_9 = var_32;
    }
    else {
      var_21 = var_21 / (type_6)(type_7)to_block_size;
      if (-1 < (type_7)var_36) goto LAB_00015026;
LAB_00015298:
      var_21 = ((type_6)(type_7)var_36 + (type_6)DAT_0001e244) * var_21;
      if ((var_4 & 0x10U) == 0) goto LAB_000151c8;
LAB_00015036:
      var_30 = 0;
      var_26 = (type_6)(int)var_40;
      do {
        var_31 = var_26;
        var_30 = var_30 + 1;
        var_26 = var_31 * (type_6)(int)var_40;
        if (var_21 < var_26) break;
      } while (var_30 != 8);
      var_21 = var_21 / var_31;
      var_15 = var_8 + 2 + (type_4)(var_5 == 0);
      if (var_17 == 1) {
        var_28(var_10,1,0xffffffff,"%.1Lf",var_29(var_21,0),(int)((type_11)var_21 >> 0x20),
                      (short)((type_11)var_21 >> 0x40));
        var_32 = var_7(var_10);
        if (var_32 <= var_15) goto LAB_00015830;
        var_21 = var_21 * (type_6)DAT_0001e24c;
      }
      else {
        var_26 = var_21;
        if (var_21 < var_22) {
          if ((type_6)DAT_0001e248 <= var_21) {
            var_24 = (type_2)var_23(var_21 - (type_6)DAT_0001e248);
            var_13._4_4_ = (int)(var_24 >> 0x20);
            var_13._0_4_ = (type_4)var_24;
            var_27 = var_25(var_13._4_4_ + -0x80000000,(type_4)var_13);
            var_13 = var_24;
          }
          else {
            var_27 = (type_2)var_23(var_21);
            var_13 = var_27;
          }
          var_26 = (type_6)(type_7)var_27;
          if ((type_7)var_27 < 0) {
            var_26 = var_26 + (type_6)DAT_0001e244;
          }
          if (((var_17 == 0) && (var_21 != var_26)) &&
             (var_26 = (type_6)(type_7)(var_27 + 1), (type_7)(var_27 + 1) < 0)) {
            var_26 = var_26 + (type_6)DAT_0001e244;
          }
        }
        var_28(var_10,1,0xffffffff,"%.1Lf",var_29(var_26,0),(int)((type_11)var_26 >> 0x20),
                      (short)((type_11)var_26 >> 0x40));
        var_32 = var_7(var_10);
        if (var_15 < var_32) {
          var_26 = var_21 * (type_6)DAT_0001e24c;
        }
        else {
LAB_00015830:
          if (((var_4 & 8U) == 0) || (var_10[var_32 - 1] != '0')) {
            var_9 = var_32 - (var_8 + 1);
            goto LAB_00015214;
          }
          var_21 = var_21 * (type_6)DAT_0001e24c;
          var_26 = var_21;
          if (var_17 == 1) goto LAB_00015192;
        }
        var_21 = var_26;
        if (var_26 < var_22) {
          if ((type_6)DAT_0001e248 <= var_26) {
            var_24 = (type_2)var_23(var_26 - (type_6)DAT_0001e248);
            var_13._4_4_ = (int)(var_24 >> 0x20);
            var_13._0_4_ = (type_4)var_24;
            var_27 = var_25(var_13._4_4_ + -0x80000000,(type_4)var_13);
            var_13 = var_24;
          }
          else {
            var_27 = (type_2)var_23(var_26);
            var_13 = var_27;
          }
          var_21 = (type_6)(type_7)var_27;
          if ((type_7)var_27 < 0) {
            var_21 = var_21 + (type_6)DAT_0001e244;
          }
          if (((var_17 == 0) && (var_26 != var_21)) &&
             (var_21 = (type_6)(type_7)(var_27 + 1), (type_7)(var_27 + 1) < 0)) {
            var_21 = var_21 + (type_6)DAT_0001e244;
          }
        }
      }
LAB_00015192:
      var_21 = var_21 / (type_6)DAT_0001e24c;
      var_28(var_10,1,0xffffffff,"%.0Lf",var_29(var_21,0),(int)((type_11)var_21 >> 0x20),
                    (short)((type_11)var_21 >> 0x40));
      var_32 = var_7(var_10);
      var_9 = var_32;
    }
LAB_00015214:
    var_35 = var_33 + -var_32;
    var_34(var_35,var_10,var_32);
    var_43 = var_35 + var_9;
  }
  else {
    var_37 = var_12(var_11,to_block_size,&var_13);
    if (var_13._4_4_ != 0 || (type_4)var_13 != 0) goto LAB_00014fe8;
    var_41 = var_36 * var_37;
    var_39 = var_38(var_41,(short)var_37,(int)((type_2)var_37 >> 0x20));
    if (var_36 != var_39) goto LAB_00014fe8;
    var_18 = 0;
    var_20 = 0;
    if ((var_4 & 0x10U) == 0) goto LAB_0001578e;
LAB_000153b5:
    local_64 = &var_13;
    var_30 = 0;
    if ((type_4)((type_2)var_41 >> 0x20) < (type_4)((type_4)var_41 < var_40)) goto LAB_00015796;
    while( true ) {
      var_41 = var_12(var_41,var_40,0,local_64);
      var_14 = (type_4)((type_2)var_41 >> 0x20);
      var_16 = (type_4)var_41;
      var_15 = var_20 + (type_4)var_13 * 10;
      var_27 = (type_2)var_15 / (type_2)var_40;
      var_20 = (type_4)var_27;
      var_15 = ((int)var_18 >> 1) + (var_15 % var_40) * 2;
      var_18 = var_18 + var_15;
      if (var_15 < var_40) {
        var_18 = (type_4)(var_18 != 0);
      }
      else {
        var_18 = (var_40 < var_18) + 2;
      }
      var_30 = var_30 + 1;
      if (var_14 < (var_16 < var_40)) break;
      if (var_30 == 8) goto LAB_00015796;
    }
    if (var_14 != 0 || -var_14 < (type_4)(9 < var_16)) goto LAB_00015796;
    if (var_17 == 1) {
      bVar7 = 2 < (var_20 & 1) + var_18;
    }
    else {
      bVar7 = var_18 != 0 && var_17 == 0;
    }
    var_42 = (char)var_27;
    if (bVar7) {
      if (var_20 == 9) {
        var_37 = var_41 + 1;
        var_41 = var_41 + 1;
        if ((int)((type_2)var_37 >> 0x20) != 0 || var_16 != 9) {
          var_18 = 0;
          goto LAB_00015ae9;
        }
        goto LAB_00015b39;
      }
      var_42 = var_42 + '1';
    }
    else if (var_20 == 0) {
LAB_00015ae9:
      if ((var_4 & 8U) != 0) goto LAB_00015b3b;
      var_42 = '0';
    }
    else {
      var_42 = var_42 + '0';
    }
    var_10[0x286] = var_42;
    var_43 = var_10 + (0x286 - var_8);
    if (var_8 < 4) {
      if ((var_8 != 0) && (*var_43 = *var_44, (var_8 & 2) != 0)) {
        *(type_10 *)(var_43 + (var_8 - 2)) = *(type_10 *)(var_44 + (var_8 - 2));
      }
    }
    else {
      *(type_12 *)var_43 = *(type_12 *)var_44;
      *(type_12 *)(var_10 + 0x282) = *(type_12 *)(var_44 + (var_8 - 4));
      var_45 = (int)var_43 - ((type_4)(var_43 + 4) & 0xfffffffc);
      var_15 = var_45 + var_8 & 0xfffffffc;
      if (3 < var_15) {
        var_16 = 0;
        do {
          *(type_12 *)(((type_4)(var_43 + 4) & 0xfffffffc) + var_16) =
               *(type_12 *)(var_44 + (var_16 - var_45));
          var_16 = var_16 + 4;
        } while (var_16 < var_15);
      }
    }
LAB_00015b39:
    var_18 = 0;
LAB_00015b3b:
    var_35 = var_43;
    var_37 = var_41;
    if (var_17 == 1) goto LAB_000157f4;
    var_20 = 0;
LAB_000157a9:
    var_35 = var_43;
    var_37 = var_41;
    if ((var_17 == 0) && (0 < (int)(var_20 + var_18))) {
LAB_000157bb:
      var_46 = var_4 & 0x10;
      var_35 = var_43;
      var_37 = var_41 + 1;
      if (((var_46 == 0) ||
          (var_37 = var_41 + 1,
          (int)((type_2)(var_41 + 1) >> 0x20) != 0 || var_40 != (type_4)(var_41 + 1))) ||
         (var_37 = var_41 + 1, var_30 == 8)) goto LAB_000157f4;
      var_30 = var_30 + 1;
      if ((var_4 & 8U) == 0) {
        var_43[-1] = '0';
        var_43 = var_43 + ~var_8;
        if (var_8 < 4) {
          if ((var_8 != 0) && (*var_43 = *var_44, (var_8 & 2) != 0)) {
            *(type_10 *)(var_43 + (var_8 - 2)) = *(type_10 *)(var_44 + (var_8 - 2));
          }
        }
        else {
          *(type_12 *)var_43 = *(type_12 *)var_44;
          *(type_12 *)(var_43 + (var_8 - 4)) = *(type_12 *)(var_44 + (var_8 - 4));
          var_45 = (int)var_43 - ((type_4)(var_43 + 4) & 0xfffffffc);
          var_17 = var_45 + var_8 & 0xfffffffc;
          if (3 < var_17) {
            var_15 = 0;
            do {
              *(type_12 *)(((type_4)(var_43 + 4) & 0xfffffffc) + var_15) =
                   *(type_12 *)(var_44 + (var_15 - var_45));
              var_15 = var_15 + 4;
            } while (var_15 < var_17);
          }
        }
      }
      var_35 = var_43 + -1;
      var_43[-1] = '1';
    }
    else {
LAB_000157f4:
      do {
        var_45 = (int)((type_2)var_37 >> 0x20);
        var_17 = (type_4)var_37;
        var_35 = var_35 + -1;
        var_42 = var_47(var_37,10,0);
        *var_35 = var_42 + '0';
        var_37 = var_38(var_37,10,0);
      } while (var_45 != 0 || (type_4)-var_45 < (type_4)(9 < var_17));
    }
  }
  if ((var_4 & 4U) != 0) {
    var_15 = (int)var_43 - (int)var_35;
    var_9 = var_7(var_55);
    var_48(var_52,var_35,(short)var_15,0x29);
    var_17 = 0xffffffff;
    while( true ) {
      var_49 = *var_50;
      if (var_49 != 0) {
        var_17 = (type_4)var_49;
        if (0x7e < var_49) {
          var_17 = var_15;
        }
        var_50 = var_50 + 1;
      }
      if (var_15 < var_17) break;
      var_15 = var_15 - var_17;
      var_35 = var_43 + -var_17;
      var_51(var_35,var_52 + var_15,var_17);
      if (var_15 == 0) goto LAB_00015240;
      var_43 = var_35 + -var_9;
      var_51(var_43,var_55,var_9);
    }
    var_35 = var_43 + -var_15;
    var_51(var_35,var_52,var_15);
  }
LAB_00015240:
  if ((var_4 & 0x80U) == 0) goto LAB_0001526d;
  if (var_30 == -1) {
    if (to_block_size._4_4_ == 0 && (type_4)(1 < (type_4)to_block_size) <= -to_block_size._4_4_) {
      var_30 = 0;
      goto LAB_00015255;
    }
    var_30 = 1;
    var_54 = 0;
    var_50 = (type_3 *)0x1;
    do {
      var_27 = var_53(var_50);
      var_50 = (type_3 *)(var_27 * var_40);
      var_54 = (int)(var_27 * var_40 >> 0x20) + var_54 * var_40;
      if (to_block_size._4_4_ <= var_54 &&
          (type_4)(var_50 < (type_4)to_block_size) <= var_54 - to_block_size._4_4_) break;
      var_30 = var_30 + 1;
    } while (var_30 != 8);
    if ((var_4 & 0x40U) != 0) goto LAB_000155da;
LAB_000155fb:
    if ((var_5 == 0) && (var_30 == 1)) {
      *var_33 = 'k';
      var_55 = var_33 + 1;
      if ((var_4 & 0x100U) == 0) {
LAB_00015a82:
        var_33 = var_33 + 1;
        goto LAB_0001526d;
      }
    }
    else {
      *var_33 = ""[var_30];
      if ((var_4 & 0x100U) == 0) goto LAB_00015a82;
      var_55 = var_33 + 1;
      if (var_5 != 0) {
        var_33[1] = 'i';
        var_55 = var_33 + 2;
      }
    }
  }
  else {
LAB_00015255:
    if (var_30 == 0 && (var_4 & 0x100U) == 0) goto LAB_0001526d;
    if ((var_4 & 0x40U) != 0) {
LAB_000155da:
      var_33 = var_10 + 0x288;
      var_10[0x287] = ' ';
    }
    if (var_30 != 0) goto LAB_000155fb;
    var_55 = var_33;
    if ((var_4 & 0x100U) == 0) goto LAB_0001526d;
  }
  var_33 = var_55 + 1;
  *var_55 = 'B';
LAB_0001526d:
  *var_33 = '\0';
  if (var_56 == *(int *)(var_3 + 0x14)) {
    return var_35;
  }
                    /* WARNING: Subroutine does not return */
  var_57();
}


(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: (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)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (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: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (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: (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: (field_expression argument: (identifier) field: (field_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (identifier) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))) right: (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier))))) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (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: (type_identifier)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) 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 (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (string_literal (string_content)) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (string_literal (string_content)) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) 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 (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (string_literal (string_content)) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (char_literal (character)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier))))) (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)) (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (identifier))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) 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)))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (string_literal (string_content)) (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (labeled_statement label: (statement_identifier) (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: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (identifier)))))) consequence: (goto_statement label: (statement_identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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: (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: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (unary_expression argument: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier))))))) 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: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) 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: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (char_literal (character)))))) 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: (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (char_literal (character))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (char_literal (character)))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (number_literal) 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (identifier))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))))) 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: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))) right: (number_literal)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))))) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (identifier))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (labeled_statement label: (statement_identifier) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (char_literal (character))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) 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: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (break_statement)) (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: (unary_expression argument: (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: (goto_statement label: (statement_identifier))) (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: (unary_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (number_literal) right: (identifier)))) right: (unary_expression argument: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))) right: (binary_expression left: (identifier) right: (identifier))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))) (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))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (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: (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)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (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)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (char_literal (character)))) (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: (primitive_type) 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: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

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

{
  ulonglong uVar1;
  ulonglong uVar2;
  byte bVar3;
  char cVar4;
  bool bVar5;
  uint uVar6;
  uint uVar7;
  uint uVar8;
  lconv *plVar9;
  size_t sVar10;
  char *pcVar11;
  size_t __n;
  uint uVar12;
  int iVar13;
  uint uVar14;
  uint uVar15;
  char *pcVar16;
  uint uVar17;
  int in_GS_OFFSET;
  longdouble lVar18;
  longdouble lVar19;
  longdouble lVar20;
  longlong lVar21;
  undefined8 uVar22;
  longlong lVar23;
  byte *local_bc;
  uint local_b8;
  undefined8 local_a4;
  char *local_98;
  undefined1 local_94 [8];
  undefined2 uStack_8c;
  char *local_7c;
  uint local_74;
  char *local_6c;
  uint local_68;
  undefined8 *local_64;
  uint local_5c;
  undefined8 local_54;
  undefined1 local_49 [41];
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x14e59;
  local_a4 = CONCAT44(param_2,param_1);
  _local_94 = CONCAT64(CONCAT24(uStack_8c,param_6),param_5);
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  uVar6 = param_4 & 3;
  uVar7 = param_4 & 0x20;
  uVar8 = (-(uint)(uVar7 == 0) & 0xffffffe8) + 0x400;
  plVar9 = localeconv();
  local_6c = plVar9->decimal_point;
  local_74 = strlen(local_6c);
  if (0xf < local_74 - 1) {
    local_74 = 1;
    local_6c = ".";
  }
  local_bc = (byte *)plVar9->grouping;
  pcVar16 = plVar9->thousands_sep;
  sVar10 = strlen(pcVar16);
  pcVar11 = "";
  if (sVar10 < 0x11) {
    pcVar11 = pcVar16;
  }
  local_98 = param_3 + 0x287;
  local_7c = local_98;
  if (param_6 < param_8 || param_6 - param_8 < (uint)(param_5 < param_7)) {
    if (param_6 != 0 || param_5 != 0) {
      uVar22 = FUN_0001bee0(param_7,param_8,param_5,param_6,&local_54);
      uVar15 = (uint)((ulonglong)uVar22 >> 0x20);
      if (local_54._4_4_ == 0 && (uint)local_54 == 0) {
        lVar23 = FUN_0001bee0(param_1,param_2,uVar22,&local_54);
        lVar21 = (local_54 & 0xffffffff) * 10;
        local_68 = FUN_0001bee0((int)lVar21,(int)((ulonglong)lVar21 >> 0x20) + local_54._4_4_ * 10,
                                uVar22,&local_54);
        uVar14 = local_54._4_4_ << 1 | (uint)local_54 >> 0x1f;
        uVar12 = (uint)local_54 * 2;
        if (uVar14 < uVar15 || uVar14 - uVar15 < (uint)(uVar12 < (uint)uVar22)) {
          uVar17 = (uint)(uVar12 != 0 || uVar14 != 0);
        }
        else {
          uVar17 = 3;
          if (uVar14 <= uVar15 && (uint)((uint)uVar22 < uVar12) <= uVar15 - uVar14) {
            uVar17 = 2;
          }
        }
        if ((param_4 & 0x10) != 0) goto LAB_000153b5;
LAB_0001578e:
        local_a4._0_4_ = -1;
LAB_00015796:
        if (uVar6 != 1) goto LAB_000157a9;
        uVar6 = (uint)lVar23 & 1;
        pcVar16 = local_98;
        if (5 < (int)((uVar6 + uVar17 != 0 || CARRY4(uVar6,uVar17)) + local_68)) goto LAB_000157bb;
        goto LAB_000157f4;
      }
    }
LAB_00014fe8:
    lVar18 = (longdouble)(longlong)local_94;
    if ((int)param_6 < 0) {
      lVar18 = lVar18 + (longdouble)DAT_0001e244;
    }
    local_94._4_4_ = param_8;
    local_94._0_4_ = param_7;
    if ((int)param_8 < 0) {
      lVar18 = lVar18 / ((longdouble)(longlong)local_94 + (longdouble)DAT_0001e244);
      if (param_2 < 0) goto LAB_00015298;
LAB_00015026:
      lVar18 = (longdouble)local_a4 * lVar18;
      if ((param_4 & 0x10) != 0) goto LAB_00015036;
LAB_000151c8:
      lVar20 = lVar18;
      if ((uVar6 != 1) && (lVar18 < _DAT_0001e250)) {
        if ((longdouble)DAT_0001e248 <= lVar18) {
          uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);
          local_54._4_4_ = (int)(uVar2 >> 0x20);
          local_54._0_4_ = (uint)uVar2;
          uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);
          local_54 = uVar2;
        }
        else {
          uVar1 = (ulonglong)ROUND(lVar18);
          local_54 = uVar1;
        }
        lVar20 = (longdouble)(longlong)uVar1;
        if ((longlong)uVar1 < 0) {
          lVar20 = lVar20 + (longdouble)DAT_0001e244;
        }
        if (((uVar6 == 0) && (lVar18 != lVar20)) &&
           (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {
          lVar20 = lVar20 + (longdouble)DAT_0001e244;
        }
      }
      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20),
                    (short)((unkuint10)lVar20 >> 0x40));
      __n = strlen(param_3);
      local_a4._0_4_ = -1;
      sVar10 = __n;
    }
    else {
      lVar18 = lVar18 / (longdouble)(longlong)local_94;
      if (-1 < param_2) goto LAB_00015026;
LAB_00015298:
      lVar18 = ((longdouble)local_a4 + (longdouble)DAT_0001e244) * lVar18;
      if ((param_4 & 0x10) == 0) goto LAB_000151c8;
LAB_00015036:
      local_a4._0_4_ = 0;
      lVar20 = (longdouble)(int)uVar8;
      do {
        lVar19 = lVar20;
        local_a4._0_4_ = (int)local_a4 + 1;
        lVar20 = lVar19 * (longdouble)(int)uVar8;
        if (lVar18 < lVar20) break;
      } while ((int)local_a4 != 8);
      lVar18 = lVar18 / lVar19;
      uVar15 = local_74 + 2 + (uint)(uVar7 == 0);
      if (uVar6 == 1) {
        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20)
                      ,(short)((unkuint10)lVar18 >> 0x40));
        __n = strlen(param_3);
        if (__n <= uVar15) goto LAB_00015830;
        lVar18 = lVar18 * (longdouble)DAT_0001e24c;
      }
      else {
        lVar20 = lVar18;
        if (lVar18 < _DAT_0001e250) {
          if ((longdouble)DAT_0001e248 <= lVar18) {
            uVar2 = (ulonglong)ROUND(lVar18 - (longdouble)DAT_0001e248);
            local_54._4_4_ = (int)(uVar2 >> 0x20);
            local_54._0_4_ = (uint)uVar2;
            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);
            local_54 = uVar2;
          }
          else {
            uVar1 = (ulonglong)ROUND(lVar18);
            local_54 = uVar1;
          }
          lVar20 = (longdouble)(longlong)uVar1;
          if ((longlong)uVar1 < 0) {
            lVar20 = lVar20 + (longdouble)DAT_0001e244;
          }
          if (((uVar6 == 0) && (lVar18 != lVar20)) &&
             (lVar20 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {
            lVar20 = lVar20 + (longdouble)DAT_0001e244;
          }
        }
        __sprintf_chk(param_3,1,0xffffffff,"%.1Lf",SUB104(lVar20,0),(int)((unkuint10)lVar20 >> 0x20)
                      ,(short)((unkuint10)lVar20 >> 0x40));
        __n = strlen(param_3);
        if (uVar15 < __n) {
          lVar20 = lVar18 * (longdouble)DAT_0001e24c;
        }
        else {
LAB_00015830:
          if (((param_4 & 8) == 0) || (param_3[__n - 1] != '0')) {
            sVar10 = __n - (local_74 + 1);
            goto LAB_00015214;
          }
          lVar18 = lVar18 * (longdouble)DAT_0001e24c;
          lVar20 = lVar18;
          if (uVar6 == 1) goto LAB_00015192;
        }
        lVar18 = lVar20;
        if (lVar20 < _DAT_0001e250) {
          if ((longdouble)DAT_0001e248 <= lVar20) {
            uVar2 = (ulonglong)ROUND(lVar20 - (longdouble)DAT_0001e248);
            local_54._4_4_ = (int)(uVar2 >> 0x20);
            local_54._0_4_ = (uint)uVar2;
            uVar1 = CONCAT44(local_54._4_4_ + -0x80000000,(uint)local_54);
            local_54 = uVar2;
          }
          else {
            uVar1 = (ulonglong)ROUND(lVar20);
            local_54 = uVar1;
          }
          lVar18 = (longdouble)(longlong)uVar1;
          if ((longlong)uVar1 < 0) {
            lVar18 = lVar18 + (longdouble)DAT_0001e244;
          }
          if (((uVar6 == 0) && (lVar20 != lVar18)) &&
             (lVar18 = (longdouble)(longlong)(uVar1 + 1), (longlong)(uVar1 + 1) < 0)) {
            lVar18 = lVar18 + (longdouble)DAT_0001e244;
          }
        }
      }
LAB_00015192:
      lVar18 = lVar18 / (longdouble)DAT_0001e24c;
      __sprintf_chk(param_3,1,0xffffffff,"%.0Lf",SUB104(lVar18,0),(int)((unkuint10)lVar18 >> 0x20),
                    (short)((unkuint10)lVar18 >> 0x40));
      __n = strlen(param_3);
      sVar10 = __n;
    }
LAB_00015214:
    pcVar16 = local_98 + -__n;
    memmove(pcVar16,param_3,__n);
    local_7c = pcVar16 + sVar10;
  }
  else {
    lVar21 = FUN_0001bee0(param_5,param_6,param_7,param_8,&local_54);
    if (local_54._4_4_ != 0 || (uint)local_54 != 0) goto LAB_00014fe8;
    lVar23 = lVar21 * local_a4;
    lVar21 = FUN_0001bc90(lVar23,(short)lVar21,(int)((ulonglong)lVar21 >> 0x20));
    if (lVar21 != local_a4) goto LAB_00014fe8;
    uVar17 = 0;
    local_68 = 0;
    if ((param_4 & 0x10) == 0) goto LAB_0001578e;
LAB_000153b5:
    local_64 = &local_54;
    local_a4._0_4_ = 0;
    if ((uint)((ulonglong)lVar23 >> 0x20) < (uint)((uint)lVar23 < uVar8)) goto LAB_00015796;
    while( true ) {
      lVar23 = FUN_0001bee0(lVar23,uVar8,0,local_64);
      uVar14 = (uint)((ulonglong)lVar23 >> 0x20);
      uVar12 = (uint)lVar23;
      uVar15 = local_68 + (uint)local_54 * 10;
      uVar1 = (ulonglong)uVar15 / (ulonglong)uVar8;
      local_68 = (uint)uVar1;
      uVar15 = ((int)uVar17 >> 1) + (uVar15 % uVar8) * 2;
      uVar17 = uVar17 + uVar15;
      if (uVar15 < uVar8) {
        uVar17 = (uint)(uVar17 != 0);
      }
      else {
        uVar17 = (uVar8 < uVar17) + 2;
      }
      local_a4._0_4_ = (int)local_a4 + 1;
      if (uVar14 < (uVar12 < uVar8)) break;
      if ((int)local_a4 == 8) goto LAB_00015796;
    }
    if (uVar14 != 0 || -uVar14 < (uint)(9 < uVar12)) goto LAB_00015796;
    if (uVar6 == 1) {
      bVar5 = 2 < (local_68 & 1) + uVar17;
    }
    else {
      bVar5 = uVar17 != 0 && uVar6 == 0;
    }
    cVar4 = (char)uVar1;
    if (bVar5) {
      if (local_68 == 9) {
        lVar21 = lVar23 + 1;
        lVar23 = lVar23 + 1;
        if ((int)((ulonglong)lVar21 >> 0x20) != 0 || uVar12 != 9) {
          uVar17 = 0;
          goto LAB_00015ae9;
        }
        goto LAB_00015b39;
      }
      cVar4 = cVar4 + '1';
    }
    else if (local_68 == 0) {
LAB_00015ae9:
      if ((param_4 & 8) != 0) goto LAB_00015b3b;
      cVar4 = '0';
    }
    else {
      cVar4 = cVar4 + '0';
    }
    param_3[0x286] = cVar4;
    local_7c = param_3 + (0x286 - local_74);
    if (local_74 < 4) {
      if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {
        *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));
      }
    }
    else {
      *(undefined4 *)local_7c = *(undefined4 *)local_6c;
      *(undefined4 *)(param_3 + 0x282) = *(undefined4 *)(local_6c + (local_74 - 4));
      iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);
      uVar15 = iVar13 + local_74 & 0xfffffffc;
      if (3 < uVar15) {
        uVar12 = 0;
        do {
          *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar12) =
               *(undefined4 *)(local_6c + (uVar12 - iVar13));
          uVar12 = uVar12 + 4;
        } while (uVar12 < uVar15);
      }
    }
LAB_00015b39:
    uVar17 = 0;
LAB_00015b3b:
    pcVar16 = local_7c;
    if (uVar6 == 1) goto LAB_000157f4;
    local_68 = 0;
LAB_000157a9:
    pcVar16 = local_7c;
    if ((uVar6 == 0) && (0 < (int)(local_68 + uVar17))) {
LAB_000157bb:
      local_5c = param_4 & 0x10;
      lVar23 = lVar23 + 1;
      pcVar16 = local_7c;
      if (((local_5c == 0) || ((int)((ulonglong)lVar23 >> 0x20) != 0 || uVar8 != (uint)lVar23)) ||
         ((int)local_a4 == 8)) goto LAB_000157f4;
      local_a4._0_4_ = (int)local_a4 + 1;
      if ((param_4 & 8) == 0) {
        local_7c[-1] = '0';
        local_7c = local_7c + ~local_74;
        if (local_74 < 4) {
          if ((local_74 != 0) && (*local_7c = *local_6c, (local_74 & 2) != 0)) {
            *(undefined2 *)(local_7c + (local_74 - 2)) = *(undefined2 *)(local_6c + (local_74 - 2));
          }
        }
        else {
          *(undefined4 *)local_7c = *(undefined4 *)local_6c;
          *(undefined4 *)(local_7c + (local_74 - 4)) = *(undefined4 *)(local_6c + (local_74 - 4));
          iVar13 = (int)local_7c - ((uint)(local_7c + 4) & 0xfffffffc);
          uVar6 = iVar13 + local_74 & 0xfffffffc;
          if (3 < uVar6) {
            uVar15 = 0;
            do {
              *(undefined4 *)(((uint)(local_7c + 4) & 0xfffffffc) + uVar15) =
                   *(undefined4 *)(local_6c + (uVar15 - iVar13));
              uVar15 = uVar15 + 4;
            } while (uVar15 < uVar6);
          }
        }
      }
      pcVar16 = local_7c + -1;
      local_7c[-1] = '1';
    }
    else {
LAB_000157f4:
      do {
        iVar13 = (int)((ulonglong)lVar23 >> 0x20);
        uVar6 = (uint)lVar23;
        pcVar16 = pcVar16 + -1;
        cVar4 = FUN_0001bda0(lVar23,10,0);
        *pcVar16 = cVar4 + '0';
        lVar23 = FUN_0001bc90(lVar23,10,0);
      } while (iVar13 != 0 || (uint)-iVar13 < (uint)(9 < uVar6));
    }
  }
  if ((param_4 & 4) != 0) {
    uVar15 = (int)local_7c - (int)pcVar16;
    sVar10 = strlen(pcVar11);
    __memcpy_chk(local_49,pcVar16,(short)uVar15,0x29);
    uVar6 = 0xffffffff;
    while( true ) {
      bVar3 = *local_bc;
      if (bVar3 != 0) {
        uVar6 = (uint)bVar3;
        if (0x7e < bVar3) {
          uVar6 = uVar15;
        }
        local_bc = local_bc + 1;
      }
      if (uVar15 < uVar6) break;
      uVar15 = uVar15 - uVar6;
      pcVar16 = local_7c + -uVar6;
      memcpy(pcVar16,local_49 + uVar15,uVar6);
      if (uVar15 == 0) goto LAB_00015240;
      local_7c = pcVar16 + -sVar10;
      memcpy(local_7c,pcVar11,sVar10);
    }
    pcVar16 = local_7c + -uVar15;
    memcpy(pcVar16,local_49,uVar15);
  }
LAB_00015240:
  if ((param_4 & 0x80) == 0) goto LAB_0001526d;
  if ((int)local_a4 == -1) {
    if (param_8 == 0 && (uint)(1 < param_7) <= -param_8) {
      local_a4._0_4_ = 0;
      goto LAB_00015255;
    }
    local_a4._0_4_ = 1;
    local_b8 = 0;
    local_bc = (byte *)0x1;
    do {
      uVar1 = ZEXT48(local_bc);
      local_bc = (byte *)(uVar1 * uVar8);
      local_b8 = (int)(uVar1 * uVar8 >> 0x20) + local_b8 * uVar8;
      if (param_8 <= local_b8 && (uint)(local_bc < param_7) <= local_b8 - param_8) break;
      local_a4._0_4_ = (int)local_a4 + 1;
    } while ((int)local_a4 != 8);
    if ((param_4 & 0x40) != 0) goto LAB_000155da;
LAB_000155fb:
    if ((uVar7 == 0) && ((int)local_a4 == 1)) {
      *local_98 = 'k';
      pcVar11 = local_98 + 1;
      if ((param_4 & 0x100) == 0) {
LAB_00015a82:
        local_98 = local_98 + 1;
        goto LAB_0001526d;
      }
    }
    else {
      *local_98 = (&UNK_0001e238)[(int)local_a4];
      if ((param_4 & 0x100) == 0) goto LAB_00015a82;
      pcVar11 = local_98 + 1;
      if (uVar7 != 0) {
        local_98[1] = 'i';
        pcVar11 = local_98 + 2;
      }
    }
  }
  else {
LAB_00015255:
    if ((int)local_a4 == 0 && (param_4 & 0x100) == 0) goto LAB_0001526d;
    if ((param_4 & 0x40) != 0) {
LAB_000155da:
      local_98 = param_3 + 0x288;
      param_3[0x287] = ' ';
    }
    if ((int)local_a4 != 0) goto LAB_000155fb;
    pcVar11 = local_98;
    if ((param_4 & 0x100) == 0) goto LAB_0001526d;
  }
  local_98 = pcVar11 + 1;
  *pcVar11 = 'B';
LAB_0001526d:
  *local_98 = '\0';
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return pcVar16;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0001c140();
}

